Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Lakeflow işlem hatları, toplu işlem hatlarını ve akış işlem hatlarını tanımlamak için hem SQL hem de Python arabirimlerini destekler. Her iki arabirim de aynı temel veri akışı grafiğini oluşturur, bu nedenle çoğu veri işleme için eşdeğer işlevler sağlar. Esneklik, erişilebilirlik ve özellik kapsamı açısından farklılık gösterir.
Hangi arabirimin kullanılacağına karar vermek için bu kılavuzu kullanın:
- Mantığınızı SQL'de ifade edebilirseniz SQL kullanın.
- Programlı denetime veya yalnızca Python bir özelliğe ihtiyacınız varsa Python kullanın.
- Python konusunda daha rahatsanız Python kullanın. Uçtan uca işlem hattının tüm özelliklerini kapsar; bu nedenle, ona aşina olmak tek başına yeterli bir gerekçedir. Aynı durum tersten de geçerli değildir: SQL her özelliği kapsamaz, bu nedenle yalnızca tanıdık bir şekilde seçmeyin.
Ayrıca her iki arabirimi de aynı işlem hattında birleştirebilirsiniz. Bkz. SQL ve Python karıştırma.
SQL ne zaman kullanılır?
SQL, istediğiniz zaman uygundur:
- Okunabilir, bildirimsel tanımlar: Veri mühendislerinin ve analistlerin sürdürebileceği açık mantık.
- Standart tablo türleri: Çoğunlukla akış tabloları ve somutlaştırılmış görünümlerden oluşan işlem hatları.
- Doğrusal dönüşüm zincirleri: Prosedürel mantık içermeyen, bronzdan gümüşe, ardından altına uzanan akış gibi doğrudan veri alımı ve dönüştürme.
- Tek başına tablolar: SQL'de oluşturduğunuz tek başına akış tabloları veya gerçekleştirilmiş görünümler.
SQL'de işlem hatları geliştirmeye genel bakış için bkz. SQL ile Lakeflow işlem hatları kodu geliştirme.
Python ne zaman kullanılır?
Python ihtiyacınız olduğunda uygundur:
- Programlı denetim: İşlem hattı tanımlarını dinamik olarak oluşturmak için döngüler, koşullular ve meta programlama.
-
Dış kitaplıklar: veya
fakergibiboto3Python paketleri. Bkz. İşlem hatları için Python bağımlılıklarını yönetme. - Kullanıcı tanımlı işlevler (UDF): UDF'leri Python tanımlarsınız ve bunları hem Python hem de SQL kaynak dosyalarından çağırabilirsiniz. Bkz. Python skaler kullanıcı tanımlı işlevler (UDF).
-
Yalnızca Python özellikler:
-
create_auto_cdc_from_snapshot_flow()veritabanı anlık görüntüsünden değişiklik veri yakalaması uygulamak için. -
create_sink()veforeach_batch_sink(), harici olay akışına veya Delta hedeflerine yazmak için.
-
Python'da işlem hattı geliştirmeye genel bakış için bkz. Python ile işlem hattı kodu geliştirme.
SQL ve Python'ı birleştirin
Tek bir işlem hattı SQL ve Python tanımlarını birleştirebilir, ancak her dil ayrı bir kaynak dosyada olmalıdır. Örneğin, bronz ve gümüş tablolarınızı Python ve altın tablolarınızı SQL'de tanımlayabilirsiniz.
Özellik kullanılabilirliği
Aşağıdaki tablo, her arabirimin ortak işlem hattı özelliklerini nasıl desteklediğini karşılaştırır:
| Özellik | SQL | Python |
|---|---|---|
| akış tablosu | CREATE STREAMING TABLE |
create_streaming_table(), table() |
| maddileştirilmiş görünüm | CREATE MATERIALIZED VIEW |
materialized_view() |
| Apache Iceberg uyumlu somutlaştırılmış görünüm (Genel Önizleme) |
CREATE MATERIALIZED VIEW ... USING ICEBERG. Bkz. harici Iceberg okuyucularıyla uyumlu bir somutlaştırılmış görünüm oluşturma. |
Desteklenmiyor |
| Geçici görünüm | CREATE TEMPORARY VIEW |
temporary_view() |
| Özel tablo |
CREATE PRIVATE STREAMING TABLE, CREATE PRIVATE MATERIALIZED VIEW |
table(private=True) |
| Otomatik CDC | AUTO CDC ... INTO |
create_auto_cdc_flow() |
| Anlık görüntüden otomatik CDC | Desteklenmiyor | create_auto_cdc_from_snapshot_flow() |
| Flow | CREATE FLOW |
append_flow() |
| Sink | Desteklenmiyor |
create_sink(), foreach_batch_sink() |
| Expectations | CONSTRAINT ... EXPECT |
expect(), expect_or_drop(), expect_or_fail()ve expect_all varyantları |
Karar özeti
Gerekirse...
| Goal | Önerilen arabirim |
|---|---|
| Basitlik ve okunabilirlik | SQL |
| Hızlı deklaratif kurulum | SQL |
| Bağımsız akış tablosu veya somutlaştırılmış görünüm | SQL |
| Koşullu veya döngü mantığı | Python |
| UDF'ler veya dış Python kitaplıkları | Python |
| Anlık görüntüden veya havuzlardan otomatik CDC | Python |
| Tam programlı kontrol ve modülerlik | Python |