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.
Alur Lakeflow mendukung antarmuka SQL dan Python untuk menentukan alur batch dan streaming. Kedua antarmuka menghasilkan grafik aliran data yang mendasar yang sama, sehingga menyediakan fungsionalitas yang setara untuk sebagian besar pemrosesan data. Mereka berbeda dalam fleksibilitas, aksesibilitas, dan cakupan fitur.
Gunakan panduan ini untuk memutuskan antarmuka mana yang akan digunakan:
- Jika Anda dapat mengekspresikan logika Anda di SQL, gunakan SQL.
- Jika Anda memerlukan kontrol terprogram atau fitur khusus Python, gunakan Python.
- Jika Anda lebih nyaman dengan Python, gunakan Python. Ini mencakup seluruh rangkaian fitur pipeline, jadi fakta bahwa Anda sudah familier dengannya saja sudah cukup menjadi alasan. Hal yang sama tidak berlaku secara terbalik: SQL tidak mencakup setiap fitur, jadi jangan memilihnya pada keakraban saja.
Anda juga dapat menggabungkan kedua antarmuka dalam alur yang sama. Lihat Mencampur SQL dan Python.
Kapan menggunakan SQL
SQL cocok jika Anda ingin:
- Definisi deklaratif yang dapat dibaca: Logika yang jelas yang dapat dipertahankan oleh teknisi dan analis data.
- Jenis tabel standar: Alur yang sebagian besar dibangun dari tabel streaming dan tampilan materialisasi.
- Rantai transformasi linier: Penyerapan dan transformasi langsung, seperti aliran perunggu ke perak ke emas, tanpa logika prosedural.
- Tabel mandiri: Tabel streaming mandiri atau tampilan materialisasi, yang Anda buat di SQL.
Untuk gambaran umum pengembangan alur di SQL, lihat Mengembangkan kode alur Lakeflow dengan SQL.
Kapan menggunakan Python
Python cocok ketika Anda membutuhkan:
- Kontrol terprogram: Perulangan, kondisional, dan metaprogram untuk menghasilkan definisi alur secara dinamis.
-
Pustaka eksternal: paket Python seperti
fakeratauboto3. Lihat Mengelola dependensi Python untuk alur. - Fungsi yang ditentukan pengguna (UDF): Anda menentukan UDF di Python dan dapat memanggilnya dari file sumber Python dan SQL. Lihat fungsi skalar Python yang ditentukan pengguna (UDF).
-
fitur khusus Python:
-
create_auto_cdc_from_snapshot_flow()untuk menerapkan perubahan pengambilan data dari rekam jepret database. -
create_sink()danforeach_batch_sink()untuk menulis ke tujuan streaming peristiwa eksternal atau tujuan Delta.
-
Untuk gambaran umum pengembangan alur di Python, lihat Mengembangkan kode alur dengan Python.
Mencampur SQL dan Python
Satu alur dapat menggabungkan definisi SQL dan Python, tetapi setiap bahasa harus dalam file sumber terpisah. Misalnya, Anda dapat mendefinisikan tabel bronze dan silver Anda di Python, serta tabel gold Anda di SQL.
Ketersediaan fitur
Tabel berikut membandingkan bagaimana setiap antarmuka mendukung fitur alur umum:
| Fitur | SQL | Python |
|---|---|---|
| tabel streaming | CREATE STREAMING TABLE |
create_streaming_table(), table() |
| tampilan terwujud | CREATE MATERIALIZED VIEW |
materialized_view() |
| Tampilan materialisasi yang kompatibel dengan Iceberg (Pratinjau Umum) |
CREATE MATERIALIZED VIEW ... USING ICEBERG. Lihat Membuat tampilan termaterialisasi yang kompatibel dengan pembaca Iceberg eksternal. |
Tidak didukung |
| Tampilan sementara | CREATE TEMPORARY VIEW |
temporary_view() |
| Tabel pribadi |
CREATE PRIVATE STREAMING TABLE, CREATE PRIVATE MATERIALIZED VIEW |
table(private=True) |
| CDC Otomatis | AUTO CDC ... INTO |
create_auto_cdc_flow() |
| CDC Otomatis dari rekam jepret | Tidak didukung | create_auto_cdc_from_snapshot_flow() |
| Flow | CREATE FLOW |
append_flow() |
| Sink | Tidak didukung |
create_sink(), foreach_batch_sink() |
| Expectations | CONSTRAINT ... EXPECT |
expect(), expect_or_drop(), expect_or_fail(), dan expect_all varian |
Ringkasan keputusan
Jika Anda membutuhkan...
| Maksud | Antarmuka yang direkomendasikan |
|---|---|
| Kesederhanaan dan keterbacaan | SQL |
| Penyiapan deklaratif cepat | SQL |
| Tabel streaming mandiri atau tampilan materialisasi | SQL |
| Logika kondisi atau perulangan | Python |
| UDF atau pustaka Python eksternal | Python |
| CDC otomatis dari rekam jepret atau sink | Python |
| Kontrol dan modularitas terprogram penuh | Python |