Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Ez a szakasz a Lakeflow Spark Deklaratív folyamatok (SDP) Python programozási felületének részleteit tartalmazza.
- Elméleti információkért és a Python folyamatokhoz való használatának áttekintéséért lásd: Folyamatkód fejlesztése a Pythonnal.
- Sql-referenciaként tekintse meg a Pipeline SQL nyelvi referenciát.
- Az automatikus betöltő konfigurálásával kapcsolatos részletekért lásd: Mi az automatikus betöltő?
pipelines modul áttekintése
A Lakeflow Spark deklaratív folyamatok Python-függvényei a pyspark.pipelines modulban vannak definiálva. Ezek dp néven importálhatók. A Python API-val implementált folyamatoknak importálnia kell ezt a modult:
from pyspark import pipelines as dp
Megjegyzés:
A folyamatmodul csak egy folyamat kontextusában érhető el. Csővezetéken kívül futó Pythonban nem érhető el. További információ a folyamatkód szerkesztéséről: ETL-folyamatok fejlesztése és hibakeresése a Lakeflow Pipelines-szerkesztővel.
Apache Spark™ csővezetékek
Az Apache Spark deklaratív folyamatokat tartalmaz a Spark 4.1-ben, amely a pyspark.pipelines modulon keresztül érhető el. A Databricks Runtime további API-kkal és integrációkkal bővíti ezeket a nyílt forráskódú képességeket a felügyelt éles használathoz.
A nyílt forráskódú pipelines modullal írt kód módosítás nélkül fut az Azure Databricksben. A következő funkciók nem részei az Apache Sparknak:
dp.create_auto_cdc_flowdp.create_auto_cdc_from_snapshot_flow@dp.expect(...)@dp.temporary_view
A pipelines modult korábban az Azure Databricksben hívták dlt meg. A részletekért és az Apache Spark különbségeiről további információt a Mi történt @dlt? című témakörben talál.
Függvények adathalmaz-definíciókhoz
A csővezetékek Python-dekorátorokat használnak adathalmazok, például materializált nézetek és folyamatos táblák definiálására. Az adathalmazok definiálásához lásd a Functionst.
API-referencia
- append_flow
- create_auto_cdc_flow
- create_auto_cdc_from_snapshot_flow
- create_sink
- create_streaming_table
- Elvárások
- materializált_nézet
- table
- temporary_view
A Python-folyamatok szempontjai
A folyamatok Lakeflow Spark Deklaratív folyamatok (SDP) Python-felülettel történő implementálása során az alábbiakat érdemes figyelembe venni:
- Az SDP kiértékeli azt a kódot, amely többször definiál egy folyamatot a tervezés és a folyamatfuttatások során. Az adathalmazokat definiáló Python-függvényeknek csak a tábla vagy nézet definiálásához szükséges kódot kell tartalmazniuk. Az adathalmaz-definíciókban szereplő tetszőleges Python-logika váratlan viselkedéshez vezethet.
- Ne próbáljon egyéni monitorozási logikát implementálni az adathalmaz-definíciókban. Lásd: Folyamatok egyéni monitorozásának definiálása eseményhookokkal.
- Az adathalmaz meghatározásához használt függvénynek Spark DataFrame-et kell visszaadnia. Ne tartalmazzon olyan logikát az adathalmaz-definíciókban, amelyek nem kapcsolódnak visszaadott DataFrame-hez.
- Soha ne használjon olyan metódusokat, amelyek a folyamatadatkészlet kódjának részeként fájlokat vagy táblákat mentenek vagy írnak.
Példák olyan Apache Spark-műveletekre, amelyeket soha nem szabad használni a folyamatkódban:
collect()count()toPandas()save()saveAsTable()start()toTable()
Mi történt?@dlt
Az Azure Databricks korábban a modult használta a dlt folyamatfunkciók támogatásához. A dlt modul helyébe a pyspark.pipelines modul lépett. Továbbra is használhatja dlt, de a Databricks a használatát pipelinesjavasolja.
Különbségek a DLT, az SDP és az Apache Spark között
Az alábbi táblázat a DLT, a Lakeflow Spark Deklaratív folyamatok és az Apache Spark Deklaratív folyamatok szintaxisa és funkciói közötti különbségeket mutatja be.
| Area | DLT szintaxis | SDP-szintaxis (Lakeflow és Apache, ahol alkalmazható) | Elérhető az Apache Sparkban |
|---|---|---|---|
| Importálások | import dlt |
from pyspark import pipelines (as dpopcionálisan) |
Igen |
| Adatfolyam tábla |
@dlt.table streamelési adatkerettel |
@dp.table |
Igen |
| Materializált nézet |
@dlt.table kötegelt adatkerettel |
@dp.materialized_view |
Igen |
| View | @dlt.view |
@dp.temporary_view |
Igen |
| Hozzáfűzési munkafolyamat | @dlt.append_flow |
@dp.append_flow |
Igen |
| SQL – adatfolyamkezelés | CREATE STREAMING TABLE ... |
CREATE STREAMING TABLE ... |
Igen |
| SQL – materializált | CREATE MATERIALIZED VIEW ... |
CREATE MATERIALIZED VIEW ... |
Igen |
| SQL – folyamat | CREATE FLOW ... |
CREATE FLOW ... |
Igen |
| Eseménynapló | spark.read.table("event_log") |
spark.read.table("event_log") |
Nem |
| Módosítások alkalmazása (CDC) | dlt.apply_changes(...) |
dp.create_auto_cdc_flow(...) |
Nem |
| Expectations | @dlt.expect(...) |
dp.expect(...) |
Nem |
| Folyamatos üzemmód | Folyamatkonfiguráció folyamatos eseményindítóval | (ugyanaz) | Nem |
| Sink | @dlt.create_sink(...) |
dp.create_sink(...) |
Igen |