Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Antarmuka Python untuk pipeline Lakeflow didefinisikan dalam modul pyspark.pipelines, diimpor sebagai dp.
Modul ini menyediakan dekorator dan fungsi untuk mendefinisikan dataset, aliran, sink, dan ekspektasi kualitas data. Pipeline serverless menjalankan definisi ini tanpa mengharuskan Anda mengonfigurasi klaster.
- Untuk informasi konseptual dan gambaran umum penggunaan Python untuk alur, lihat Mengembangkan kode alur dengan Python.
- Untuk referensi SQL, lihat referensi bahasa Pipeline SQL.
- Untuk detail khusus untuk mengonfigurasi Auto Loader, lihat Apa itu Auto Loader?.
pipelines gambaran umum modul
Fungsi Python untuk pipeline Lakeflow didefinisikan di dalam modul pyspark.pipelines (diimpor sebagai dp). Alur Anda yang diimplementasikan dengan Python API harus mengimpor modul ini:
from pyspark import pipelines as dp
Nota
Sebagian besar modul pipelines hanya tersedia dalam konteks pipeline. Untuk informasi selengkapnya tentang mengedit kode alur, lihat Mengembangkan dan men-debug alur ETL dengan Editor Alur Lakeflow.
Anda juga dapat menerapkan @materialized_view dan @table di luar pipeline, di notebook pada komputasi umum tanpa server, untuk mendefinisikan tampilan materialisasi mandiri atau tabel streaming. Lihat Mendefinisikan tabel dengan dekorator pipeline.
Alur Apache Spark™
Apache Spark mencakup alur deklaratif yang dimulai di Spark 4.1, tersedia melalui pyspark.pipelines modul. Databricks Runtime memperluas kemampuan sumber terbuka ini dengan API dan integrasi tambahan untuk penggunaan produksi terkelola.
Kode yang ditulis dengan modul sumber pipelines terbuka berjalan tanpa modifikasi pada Azure Databricks. Fitur berikut bukan bagian dari Apache Spark:
dp.create_auto_cdc_flowdp.create_auto_cdc_from_snapshot_flow@dp.expect(...)
pipelines Modul sebelumnya dipanggil dlt di Azure Databricks. Untuk detail lebih lanjut, dan informasi selengkapnya tentang perbedaan dari Apache Spark, lihat Apa yang terjadi dengan @dlt?.
Fungsi untuk definisi himpunan data
Pipeline menggunakan dekorator Python untuk menentukan himpunan data seperti tampilan materialisasi dan tabel streaming. Lihat Fungsi untuk menentukan himpunan data.
Referensi Antarmuka Pemrograman Aplikasi (API)
- append_flow (fungsi menambahkan aliran)
- create_auto_cdc_flow
- create_auto_cdc_from_snapshot_flow
- create_table
- membuat_saluran
- buat_tabel_streaming
- Harapan
- foreach_batch_sink
- materialized_view
- replace_flow
- table
- temporary_view
- update_flow
Persyaratan pengkodian untuk alur Python
Berikut adalah persyaratan penting saat Anda mengimplementasikan pipeline dengan antarmuka Python:
- Sebuah pipeline mengevaluasi kode sumbernya beberapa kali selama perencanaan dan eksekusi. Fungsi Python yang menentukan himpunan data hanya boleh menyertakan kode yang diperlukan untuk menentukan tabel atau tampilan. Logika Python arbitrer yang disertakan dalam definisi himpunan data dapat menyebabkan perilaku yang tidak terduga.
- Jangan mencoba menerapkan logika pemantauan kustom dalam definisi himpunan data Anda. Lihat Menentukan pemantauan kustom alur dengan kait peristiwa.
- Fungsi yang digunakan untuk menentukan himpunan data harus mengembalikan Spark DataFrame. Jangan sertakan logika dalam definisi himpunan data Anda yang tidak terkait dengan DataFrame yang dikembalikan.
- Jangan pernah menggunakan metode yang menyimpan atau menulis ke file atau tabel sebagai bagian dari kode himpunan data alur Anda.
Contoh operasi Apache Spark yang tidak boleh digunakan dalam kode alur:
collect()count()toPandas()save()saveAsTable()start()toTable()
Apa yang terjadi dengan @dlt?
Sebelumnya, Azure Databricks menggunakan dlt modul untuk mendukung fungsionalitas alur. Modul dlt telah digantikan oleh pyspark.pipelines modul. Anda mungkin masih menggunakan dlt, tetapi Databricks merekomendasikan penggunaan pipelines.
Perbedaan antara alur DLT, Lakeflow, dan Alur Deklaratif Apache Spark
Tabel berikut menunjukkan perbedaan sintaksis dan fungsionalitas antara alur DLT, Lakeflow, dan Alur Deklaratif Apache Spark.
Untuk perbandingan pada tingkat fitur mengenai apa yang dimiliki bersama oleh pipeline Lakeflow dan apa yang ditambahkan pada Apache Spark Declarative Pipelines, lihat Pipeline Deklaratif Apache Spark.
Untuk pemetaan per properti dari konfigurasi pipeline ke spesifikasi proyek SDP, lihat Referensi properti pipeline.
Nota
Dalam dokumentasi Databricks, produk Databricks disebut Lakeflow pipelines, dan proyek Apache Spark yang diperluas oleh produk tersebut adalah Apache Spark™ Declarative Pipelines (SDP). Keduanya interoperabel tetapi berbeda dalam fiturnya. Misalnya, AUTO CDC API hanya tersedia di pipeline Lakeflow.
| Area | Sintaks DLT | Sintaks SDP (Lakeflow dan Apache, jika berlaku) | Tersedia di Apache Spark |
|---|---|---|---|
| Impor | import dlt |
from pyspark import pipelines (as dp, opsional) |
Yes |
| Tabel streaming |
@dlt.table dengan dataframe streaming |
@dp.table |
Yes |
| Tampilan Terwujud |
@dlt.table dengan kerangka data batch |
@dp.materialized_view |
Yes |
| Tampilkan | @dlt.view |
@dp.temporary_view |
Yes |
| Tambahkan alur | @dlt.append_flow |
@dp.append_flow |
Yes |
| Alur pembaruan | Unavailable | @dp.update_flow |
Tidak. |
| SQL – streaming | CREATE STREAMING TABLE ... |
CREATE STREAMING TABLE ... |
Yes |
| SQL – terwujud | CREATE MATERIALIZED VIEW ... |
CREATE MATERIALIZED VIEW ... |
Yes |
| SQL – aliran proses | CREATE FLOW ... |
CREATE FLOW ... |
Yes |
| Catatan peristiwa | spark.read.table("event_log") |
spark.read.table("event_log") |
Tidak. |
| Terapkan Perubahan (CDC) | dlt.apply_changes(...) |
dp.create_auto_cdc_flow(...) |
Tidak. |
| Expectations | @dlt.expect(...) |
dp.expect(...) |
Tidak. |
| Mode berkelanjutan | Konfigurasi pipa dengan pemicu berkesinambungan | (sama) | Tidak. |
| Wastafel | @dlt.create_sink(...) |
dp.create_sink(...) |
Yes |
| UntukSetiapBatch sink | Unavailable | @dp.foreach_batch_sink(...) |
Tidak. |