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.
Bu bölümde Lakeflow Spark Bildirimli İşlem Hatları (SDP) Python programlama arabiriminin ayrıntıları yer alır.
- Kavramsal bilgiler ve işlem hatları için Python kullanımına genel bakış için bkz. Python ile işlem hattı kodu geliştirme.
- SQL başvurusu için İşlem hattı SQL dil başvurusu bölümüne bakın.
- Otomatik Yükleyici'yi yapılandırmaya özgü ayrıntılar için bkz. Otomatik Yükleyici nedir?.
pipelines modüle genel bakış
Lakeflow Spark Bildirimli İşlem Hatları Python işlevleri modülde pyspark.pipelines tanımlanır (olarak dpiçeri aktarılır). Python API'si ile uygulanan işlem hatlarınızın şu modülü içeri aktarması gerekir:
from pyspark import pipelines as dp
Uyarı
İşlem hatları modülü yalnızca işlem hattı bağlamında kullanılabilir. İşlem hatlarının dışında çalışan Python'da kullanılamaz. İşlem hattı kodunu düzenleme hakkında daha fazla bilgi için bkz. Lakeflow Pipelines Düzenleyicisi ile ETL işlem hatları geliştirme ve hatalarını ayıklama.
Apache Spark™ işlem hatları
Apache Spark, modül aracılığıyla kullanılabilen Spark 4.1'de başlayan bildirim temelli işlem hatlarınıpyspark.pipelines içerir. Databricks Runtime, bu açık kaynak özelliklerini yönetilen üretim kullanımı için ek API'ler ve tümleştirmelerle genişletir.
Açık kaynak pipelines modülüyle yazılan kod, Azure Databricks'te değişiklik yapılmadan çalıştırılır. Aşağıdaki özellikler Apache Spark'ın bir parçası değildir:
dp.create_auto_cdc_flowdp.create_auto_cdc_from_snapshot_flow@dp.expect(...)@dp.temporary_view
Bu pipelines modülü daha önce Azure Databricks'te dlt olarak adlandırılıyordu. tr-TR: Detaylar ve Apache Spark ile olan farklar hakkında daha fazla bilgi için Ne oldu? @dlt bölümüne bakın.
Veri kümesi tanımları için işlevler
İşlem boru hatları, materyalize edilmiş görünümler ve akış tabloları gibi veri kümelerini tanımlamak için Python dekoratörlerini kullanır. Bkz. Veri kümelerini tanımlamak için işlevler.
API referansı
- append_flow
- create_auto_cdc_flow
- create_auto_cdc_from_snapshot_flow
- create_sink
- create_streaming_table
- Beklentiler
- materialized_view (maddileştirilmiş görünüm)
- table
- temporary_view
Python işlem hatları için kodlama gereksinimleri
Lakeflow Spark Bildirimli İşlem Hatları (SDP) Python arabirimiyle işlem hatları uygularken aşağıdaki önemli gereksinimler şunlardır:
- SDP, planlama ve işlem hattı çalıştırmaları sırasında işlem hattını birden çok kez tanımlayan kodu değerlendirir. Veri kümelerini tanımlayan Python işlevleri yalnızca tabloyu veya görünümü tanımlamak için gereken kodu içermelidir. Veri kümesi tanımlarına eklenen rastgele Python mantığı beklenmeyen davranışlara yol açabilir.
- Veri kümesi tanımlarınızda özel izleme mantığı uygulamayı denemeyin. Bkz. Olay kancalarıyla işlem hatlarının özel izlemesini tanımlama.
- Veri kümesini tanımlamak için kullanılan işlevin Spark DataFrame döndürmesi gerekir. Veri kümesi tanımlarınıza döndürülen Bir DataFrame ile ilgili olmayan mantık eklemeyin.
- İşlem hattı veri kümesi kodunuzun bir parçası olarak dosyaları veya tabloları kaydeden veya bu tablolara yazan yöntemleri asla kullanmayın.
İşlem hattı kodunda hiçbir zaman kullanılmaması gereken Apache Spark işlemleri örnekleri:
collect()count()toPandas()save()saveAsTable()start()toTable()
Ne oldu?@dlt
Daha önce Azure Databricks, işlem hattı işlevselliğini desteklemek için modülünü dlt kullanıyordu. Modülün dlt yerini modül almıştır pyspark.pipelines . kullanmaya devam dltedebilirsiniz, ancak Databricks kullanılmasını pipelinesönerir.
DLT, SDP ve Apache Spark arasındaki farklar
Aşağıdaki tabloda DLT, Lakeflow Spark Bildirimli İşlem Hatları ve Apache Spark Bildirimli İşlem Hatları arasındaki söz dizimi ve işlevsellik farklılıkları gösterilmektedir.
| Area | DLT söz dizimi | SDP Söz Dizimi (Lakeflow ve Apache, uygun olduğunda) | Apache Spark'ta kullanılabilir |
|---|---|---|---|
| İçeri aktarmalar | import dlt |
from pyspark import pipelines (as dpisteğe bağlı olarak) |
Yes |
| Akış tablosu |
@dlt.table akış veri çerçevesi ile |
@dp.table |
Yes |
| Gerçekleştirilmiş görünüm |
@dlt.table toplu veri çerçevesi ile |
@dp.materialized_view |
Yes |
| View | @dlt.view |
@dp.temporary_view |
Yes |
| Veri ekleme akışı | @dlt.append_flow |
@dp.append_flow |
Yes |
| SQL – akış | CREATE STREAMING TABLE ... |
CREATE STREAMING TABLE ... |
Yes |
| SQL – maddileştirilmiş | CREATE MATERIALIZED VIEW ... |
CREATE MATERIALIZED VIEW ... |
Yes |
| SQL – veri akışı | CREATE FLOW ... |
CREATE FLOW ... |
Yes |
| Olay günlüğü | spark.read.table("event_log") |
spark.read.table("event_log") |
Hayı |
| Değişiklikleri Uygula (CDC) | dlt.apply_changes(...) |
dp.create_auto_cdc_flow(...) |
Hayı |
| Expectations | @dlt.expect(...) |
dp.expect(...) |
Hayı |
| Sürekli mod | Sürekli tetikleyicili işlem hattı konfigürasyonu | (aynı) | Hayı |
| Lavabo | @dlt.create_sink(...) |
dp.create_sink(...) |
Yes |