Mengembangkan jalur DLT
Mengembangkan dan menguji kode alur berbeda dari beban kerja Apache Spark lainnya. Artikel ini memberikan gambaran umum tentang fungsionalitas, praktik terbaik, dan pertimbangan yang didukung saat mengembangkan kode alur. Untuk rekomendasi dan praktik terbaik lainnya, lihat Menerapkan pengembangan perangkat lunak & praktik terbaik DevOps ke alur DLT.
Nota
Anda harus menambahkan kode sumber ke konfigurasi alur untuk memvalidasi kode atau menjalankan pembaruan. Lihat Mengonfigurasi alur DLT.
File apa yang valid untuk kode sumber alur?
Kode alur DLT dapat berupa Python atau SQL. Anda dapat memiliki campuran file kode sumber Python dan SQL yang mendukung satu alur, tetapi setiap file hanya dapat berisi satu bahasa. Lihat Mengembangkan kode alur dengan Python dan Mengembangkan kode alur dengan SQL.
Anda bisa menggunakan buku catatan dan file ruang kerja saat menentukan kode sumber untuk alur. File ruang kerja mewakili skrip Python atau SQL yang ditulis di IDE pilihan Anda atau editor file Databricks. Lihat Apa itu berkas ruang kerja?.
Jika Anda mengembangkan kode Python sebagai modul atau pustaka, Anda harus menginstal dan mengimpor kode lalu memanggil metode dari buku catatan Python atau file ruang kerja yang dikonfigurasi sebagai kode sumber. Lihat Mengelola dependensi Python untuk alur DLT.
Nota
Jika Anda perlu menggunakan perintah SQL arbitrer dalam notebook Python, Anda dapat menggunakan pola sintaks spark.sql("<QUERY>")
untuk menjalankan SQL sebagai kode Python.
Fungsi Katalog Unity memungkinkan Anda mendaftarkan fungsi yang ditentukan pengguna Python arbitrer untuk digunakan dalam SQL. Lihat Fungsi buatan pengguna (UDF) di Unity Catalog.
Gambaran umum fitur pengembangan DLT
DLT memperluas dan memanfaatkan banyak fitur Azure Databricks, dan memperkenalkan fitur dan konsep baru. Tabel berikut ini memberikan gambaran singkat tentang konsep dan fitur yang mendukung pengembangan kode alur:
Fitur | Deskripsi |
---|---|
Mode pengembangan | Alur baru dikonfigurasi untuk berjalan dalam mode pengembangan secara default. Databricks merekomendasikan penggunaan mode pengembangan untuk pengembangan dan pengujian interaktif. Lihat mode Pengembangan dan produksi . |
Memvalidasi | Pembaruan Validate memverifikasi kebenaran kode sumber alur tanpa menjalankan pembaruan pada tabel apa pun. Lihat Periksa alur untuk kesalahan tanpa menunggu tabel diperbarui. |
Notebook | Notebook yang dikonfigurasi sebagai kode sumber untuk alur DLT menyediakan opsi interaktif untuk memvalidasi kode dan menjalankan pembaruan. Lihat Mengembangkan dan men-debug alur DLT di notebook. |
Parameter | Manfaatkan parameter dalam kode sumber dan konfigurasi alur untuk menyederhanakan pengujian dan ekstensibilitas. Lihat Gunakan parameter dengan alur DLT. |
Bundel Aset Databricks | Bundel Aset Databricks memungkinkan Anda memindahkan konfigurasi alur dan kode sumber antar ruang kerja. Lihat Mengonversi alur DLT menjadi proyek Bundel Aset Databricks. |
Membuat himpunan data sampel untuk pengembangan dan pengujian
Databricks merekomendasikan pembuatan himpunan data pengembangan dan pengujian untuk menguji logika alur dengan data yang diharapkan dan catatan yang berpotensi cacat atau rusak. Ada beberapa cara untuk membuat himpunan data yang dapat berguna untuk pengembangan dan pengujian, termasuk yang berikut ini:
- Pilih subkumpulan data dari himpunan data produksi.
- Gunakan data yang dibuat secara anonim atau buatan untuk sumber yang berisi PII.
- Buat data pengujian dengan hasil yang ditentukan dengan baik berdasarkan logika transformasi hilir.
- Mengantisipasi potensi kerusakan data, rekaman cacat, dan perubahan data hulu dengan membuat rekaman yang memutus ekspektasi skema data.
Misalnya, jika Anda memiliki notebook yang menentukan himpunan data menggunakan kode berikut:
CREATE OR REFRESH STREAMING TABLE input_data
AS SELECT * FROM STREAM read_files(
"/production/data",
format => "json")
Anda dapat membuat himpunan data sampel yang berisi rekaman tertentu menggunakan kueri seperti berikut ini:
CREATE OR REFRESH MATERIALIZED VIEW input_data AS
SELECT "2021/09/04" AS date, 22.4 as sensor_reading UNION ALL
SELECT "2021/09/05" AS date, 21.5 as sensor_reading
Contoh berikut menunjukkan pemfilteran data yang diterbitkan untuk membuat subset data produksi untuk pengembangan atau pengujian:
CREATE OR REFRESH MATERIALIZED VIEW input_data AS SELECT * FROM prod.input_data WHERE date > current_date() - INTERVAL 1 DAY
Untuk menggunakan himpunan data yang berbeda ini, buat beberapa alur dengan notebook yang mengimplementasikan logika transformasi. Setiap pipeline dapat membaca data dari himpunan data input_data
tetapi dikonfigurasi untuk menyertakan buku catatan yang membuat himpunan data yang spesifik untuk lingkungan tersebut.