Lakeflow işlem hatları için Python dil başvurusu

Lakeflow pipeline’larının Python arabirimi, pyspark.pipelines modülünde tanımlanır ve dp olarak içe aktarılır.

pipelines modüle genel bakış

Lakeflow işlem hattı Python fonksiyonları, pyspark.pipelines modülünde tanımlanır (dp olarak içe 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_flow
  • dp.create_auto_cdc_from_snapshot_flow
  • @dp.expect(...)

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ı

Python işlem hatları için kodlama gereksinimleri

Lakeflow işlem hatları Python arabirimiyle işlem hatlarını uygularken aşağıdaki önemli gereksinimler şunlardır:

  • Lakeflow işlem hatları, planlama ve işlem hattı çalıştırmaları sırasında bir 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, Lakeflow işlem hatları ve Apache Spark Bildirimli İşlem Hatları arasındaki farklar

Aşağıdaki tabloda DLT, Lakeflow işlem hatları ve Apache Spark Bildirimli İşlem Hatları arasındaki söz dizimi ve işlevsellik farklılıkları gösterilmektedir.

Lakeflow işlem hatlarının Apache Spark Bildirimli İşlem Hatları ile ortak yönlerinin ve buna ek olarak sunduklarının özellik düzeyindeki karşılaştırması için bkz. Apache Spark Bildirimli İşlem Hatları.

İşlem hattı yapılandırmasının SDP proje spesifikasyonuyla özellik bazında eşleştirilmesi için bkz: İşlem hattı özellikleri başvurusu.

Uyarı

Databricks belgelerinde Databricks ürününe Lakeflow işlem hatları ve genişletilen açık kaynak çerçevesi ise Apache Spark™ Bildirimli İşlem Hatları (SDP) olarak adlandırılır. bu ikisi birlikte çalışabilir ancak özellikler bakımından AUTO CDC farklıdır; örneğin, API'ler yalnızca Lakeflow işlem hatlarında kullanılabilir.

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
Akışı güncelle Unavailable @dp.update_flow Hayı
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
ForEachBatch havuzu Unavailable @dp.foreach_batch_sink(...) Hayı