Folyamatkód fejlesztése a helyi fejlesztési környezetben

Létrehozhat Python folyamat forráskódját az előnyben részesített integrált fejlesztési környezetben (IDE), futtathatja helyileg tesztelésre, majd ellenőrizheti, üzembe helyezheti és futtathatja a frissítéseket a Azure Databricks munkaterületen anélkül, hogy elhagyná a helyi környezetet.

A Lakeflow-folyamatok az Apache Spark™ deklaratív folyamatainak szuperhalmazai. A csak Apache Spark Deklaratív folyamatok API-kat használó kód helyileg és Azure Databricks is fut, de a Lakeflow-folyamatokra egyedi funkciókat, például AUTO CDC és elvárásokat használó kód csak Azure Databricks fut. A funkcióbeli különbségekért tekintse meg a Lakeflow-folyamatok Python nyelvi referenciát.

A Azure Databricks munkaterület interaktív fejlesztéséhez és teszteléséhez használja a Lakeflow Pipelines-szerkesztőt. Lásd : ETL-folyamatok fejlesztése és hibakeresése a Lakeflow Pipelines-szerkesztővel.

Folyamatkód írása IDE-támogatással

Írjon pipeline-kódot a pyspark.pipelines modul használatával, amelyet dp néven importált.

from pyspark import pipelines as dp

Mivel a modul az Apache Spark része, az IDE szintaxis-ellenőrzést, automatikus kiegészítést és típusellenőrzést biztosít írás közben. Az Apache Spark Deklaratív folyamatok kódja általában módosítás nélkül fut a Azure Databricks. Ugyanazt az importálási parancsot egy Lakeflow-folyamatban futtatva importálja a Azure Databricks verziójátpipelines. A teljes Lakeflow-folyamatok Python hivatkozásért lásd a Lakeflow-folyamatok Python nyelvi referenciát.

Külön transzformációs logika helyi teszteléshez

A leghatékonyabb módja annak, hogy a pipeline kódot helyben teszteljük, ha a transzformációs logikát egyszerű PySpark függvényekben tartod, külön a dp dekorátoroktól. Egy olyan függvény, amely egy DataFrame-et vesz és visszaad egy DataFrame-t, nem függ a Lakeflow pipelines futási idejétől, így egységtesztelheted pytest vele a helyi gépeden, akárcsak bármely más Apache Spark kód. Tartsák vékonyan a díszített függvényeket, hogy importálják a logikát és így nevezzék:

# transformations/clean.py — pure PySpark, unit-testable on its own
def clean_orders(df):
    return df.filter("quantity > 0").withColumn("amount_usd", df.amount.cast("double"))

# pipeline file — a thin dp wrapper that imports and calls the logic
from pyspark import pipelines as dp
from transformations.clean import clean_orders

@dp.table(name="orders_silver")
def orders_silver():
    return clean_orders(spark.readStream.table("orders_bronze"))

A megosztott logikát csomagolhatod kerékként, hogy újrahasznosítsd a pipeline-ok között. Az egységtesztek írásának és futtatásának teljes áttekintéséért lásd: Unit testing for pipelines.

Folyamatok helyben történő futtatása teszteléshez

A folyamatokat helyben is futtathatja a kód fejlesztéséhez és teszteléséhez, mielőtt azokat az Azure Databricksben futtatná. A parancssori spark-pipelines felületen inicializálhat, érvényesíthet és futtathat egy folyamatot a helyi Apache Spark használatával. Tekintse meg a Spark Deklaratív folyamatok programozási útmutatóját az Apache Spark dokumentációjában.

Egy teljes csővezeték három kiegészítő tesztelési réteget használ, amelyek közül kettőt helyben is alkalmazhatsz:

  • Egységtesztek az átalakítási logikához, pytest használatával, a fent leírt egyszerű PySpark-függvényeken futtatva. Ezek nem igényelnek vezeték-futásidőt. Lásd a adatfeldolgozási folyamatok egységtesztelését.
  • A pipeline gráf, a forráskód és az adatkészlet-hivatkozások ellenőrzése (próbafuttatás) a(z) spark-pipelines helyi, illetve a(z) databricks pipelines dry-run a munkaterület ellen történő használatával — adatírás nélkül.
  • Várakozások, amelyek minden futás minden sorában értékelik az adatminőségi szabályokat. Mivel ezek a Lakeflow pipelines futási idejű funkciói, csak Azure Databricks-en futnak, nem helyben. Lásd Az adatminőség kezelése folyamatelvárásokkal.

Nem futtathat és nem tesztelhet olyan funkciókat, amelyek helyileg a Lakeflow-folyamatokra vonatkoznak. Ez magában foglalja az elvárásokat és a AUTO CDC funkciókat.

Folyamatok futtatása az Azure Databricksben a helyi környezetéből

A parancscsoport használatával közvetlenül a databricks pipelines terminálból ellenőrizheti, helyezheti üzembe és futtathatja a folyamatfrissítéseket a munkaterületen:

databricks pipelines init      # scaffold a pipeline project
databricks pipelines dry-run   # validate the pipeline graph without publishing data
databricks pipelines deploy    # deploy the project to your workspace
databricks pipelines run       # run an update

A folyamatfrissítések a Azure Databricks munkaterületen futnak, nem a helyi gépen, a folyamathoz konfigurált számítással. Ezek a parancsok együttműködnek a Deklaratív Automation Bundles bundle parancsokkal, így egy egyszerű projekttel kezdhet, és a növekedés közben csomagkonfigurációt és CI/CD-eljárásokat alkalmazhat. A parancssori felület telepítéséhez és konfigurálásához lásd : A Databricks parancssori felület telepítése vagy frissítése. A teljes parancshivatkozásért tekintse meg pipelines a parancscsoportot. Részletes útmutató: Folyamatok fejlesztése deklaratív automation-kötegekkel.

Folyamatkód szinkronizálása az IDE-ből egy munkaterületre

Az alábbi táblázat összefoglalja a folyamat forráskódjának a helyi IDE és egy Azure Databricks munkaterület közötti szinkronizálásának lehetőségeit:

Eszköz vagy minta Részletek
Databricks CLI (pipelines parancscsoport) databricks pipelines A parancsokkal üzembe helyezhet és futtathat egy folyamatprojektet a helyi környezetből. Lásd apipelines parancscsoportot.
Deklaratív automatizálási csomagok A Deklaratív Automation-csomagok használatával összetett folyamategységeket helyezhet üzembe egyetlen forráskódfájltól kezdve több folyamat, feladat és forráskódfájl konfigurációiig. Lásd : Folyamat átalakítása csomagprojektté.
Databricks IDE kiterjesztés Azure Databricks integrációt biztosít a Visual Studio Code, amely magában foglalja a helyi IDE és a munkaterület fájljai közötti egyszerű szinkronizálást. Ez a bővítmény eszközöket is biztosít a deklaratív automatizálási csomagok használatához a folyamat-eszközök üzembe helyezésére. Lásd Databricks IDE kiterjesztést.
Munkaterület fájljai A Databricks-munkaterület fájljaival feltöltheti a folyamat forráskódját a Databricks-munkaterületre, majd importálhatja a kódot egy folyamatba. Lásd: Mik azok a munkaterületfájlok?.
Git-mappák A Git-mappák lehetővé teszik a kód szinkronizálását a helyi környezet és Azure Databricks munkaterület között egy Git-adattár használatával közvetítőként. Lásd: Azure Databricks Git-mappák.