Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Tato část obsahuje podrobnosti o programovacím rozhraní Pythonu pro Lakeflow Spark Deklarativní Potrubí (SDP).
- Koncepční informace a přehled použití Pythonu pro kanály najdete v tématu Vývoj kódu kanálu pomocí Pythonu.
- Referenční informace k jazyku SQL najdete v referenční dokumentaci Pipeline SQL.
- Podrobnosti týkající se konfigurace Auto Loaderu najdete v tématu Co je Auto Loader?.
pipelines přehled modulu
Funkce Pythonu deklarativních kanálů Sparku Lakeflow jsou definované v pyspark.pipelines modulu (importované jako dp). Vaše kanály implementované pomocí rozhraní Python API musí importovat tento modul:
from pyspark import pipelines as dp
Poznámka:
Modul Pipelines je k dispozici pouze v kontextu kanálu. Není k dispozici v Pythonu spuštěném mimo datové toky. Další informace o úpravě kódu kanálu najdete v tématu Vývoj a ladění kanálů ETL pomocí Editoru kanálů Lakeflow.
Datové toky Apache Spark™
Apache Spark zahrnuje deklarativní kanály začínající ve Sparku pyspark.pipelines 4.1, které jsou dostupné prostřednictvím modulu. Databricks Runtime rozšiřuje tyto opensourcové funkce s dalšími rozhraními API a integracemi pro spravované produkční použití.
Kód napsaný pomocí opensourcového pipelines modulu běží bez úprav v Azure Databricks. Následující funkce nejsou součástí Apache Sparku:
dp.create_auto_cdc_flowdp.create_auto_cdc_from_snapshot_flow@dp.expect(...)@dp.temporary_view
Modul pipelines byl dříve nazýván dlt v Azure Databricks. Podrobnosti a další informace o rozdílech od Apache Sparku najdete v tématu Co se stalo @dlts ?.
Funkce pro definice datových sad
Pipelines používají dekorátory v Pythonu k definování datových sad, jako jsou materializovaná zobrazení a streamované tabulky. Viz Funkce pro definování datových sad.
Referenční informace k rozhraní API
- append_flow
- create_auto_cdc_flow
- create_auto_cdc_from_snapshot_flow
- vytvoř_sink
- create_streaming_table (vytvořit tabulku pro streamování)
- Očekávání
- materiálizovaný pohled
- table
- temporary_view
Důležité informace o kanálech Pythonu
Při implementaci kanálů pomocí rozhraní Pythonu SDP (Lakeflow Spark Declarative Pipelines) jsou důležité důležité aspekty:
- SDP několikrát vyhodnocuje kód, který definuje kanál, během plánování a běhů kanálu. Funkce Pythonu, které definují datové sady, by měly obsahovat pouze kód potřebný k definování tabulky nebo zobrazení. Libovolná logika Pythonu zahrnutá v definicích datových sad může vést k neočekávanému chování.
- Nepokoušejte se implementovat vlastní logiku monitorování v definicích datové sady. Viz Definování vlastního monitorování datových toků pomocí událostních hooků.
- Funkce použitá k definování datové sady musí vrátit datový rámec Sparku. Do definic datové sady nezahrnujte logiku, která nesouvisí s vráceným datovým rámcem.
- Nikdy nepoužívejte metody, které ukládají nebo zapisují do souborů nebo tabulek jako součást kódu datové sady pipeline.
Příklady operací Apache Sparku, které by se nikdy neměly používat v kódu zpracovatelského řetězce:
collect()count()toPandas()save()saveAsTable()start()toTable()
Co se stalo @dlt?
Dříve služba Azure Databricks používala modul dlt k podpoře funkcionality pipeline. Modul dlt byl nahrazen modulem pyspark.pipelines . Stále můžete používat dlt, ale Databricks doporučuje používat pipelines.
Rozdíly mezi DLT, SDP a Apache Sparkem
Následující tabulka ukazuje rozdíly v syntaxi a funkcích mezi deklarativními kanály DLT, Lakeflow Spark a deklarativními kanály Apache Sparku.
| Area | Syntaxe DLT | Syntaxe SDP (Lakeflow a Apache, kde je to použitelné) | K dispozici v Apache Sparku |
|---|---|---|---|
| Importy | import dlt |
from pyspark import pipelines (as dpvolitelně) |
Ano |
| Tabulka pro streamování |
@dlt.table se streamovaným datovým rámcem |
@dp.table |
Ano |
| Materializované zobrazení |
@dlt.table pomocí dávkového datového rámce |
@dp.materialized_view |
Ano |
| Zobrazit | @dlt.view |
@dp.temporary_view |
Ano |
| Připojit tok | @dlt.append_flow |
@dp.append_flow |
Ano |
| SQL – streamování | CREATE STREAMING TABLE ... |
CREATE STREAMING TABLE ... |
Ano |
| SQL – materializované | CREATE MATERIALIZED VIEW ... |
CREATE MATERIALIZED VIEW ... |
Ano |
| SQL – tok | CREATE FLOW ... |
CREATE FLOW ... |
Ano |
| Protokol událostí | spark.read.table("event_log") |
spark.read.table("event_log") |
Ne |
| Použít změny (CDC) | dlt.apply_changes(...) |
dp.create_auto_cdc_flow(...) |
Ne |
| Expectations | @dlt.expect(...) |
dp.expect(...) |
Ne |
| Nepřetržitý režim | Konfigurace pipeline s průběžným spouštěčem | (stejné) | Ne |
| Dřez | @dlt.create_sink(...) |
dp.create_sink(...) |
Ano |