Delta Live Tables-folyamatok fejlesztése Databricks-eszközcsomagokkal
A Databricks-eszközcsomagok, más néven csomagok lehetővé teszik az Azure Databricks-erőforrások, például a Delta Live Tables-folyamatok programozott érvényesítését, üzembe helyezését és futtatását. Lásd: Mik azok a Databricks-eszközcsomagok?.
Ez a cikk azt ismerteti, hogyan hozhat létre csomagot egy folyamat programozott kezeléséhez. Lásd : Mi az a Delta Live Tables?. A csomag a Python Databricks Asset Bundles alapértelmezett csomagsablonjával jön létre, amely egy folyamat definíciójával és a futtatáshoz szükséges feladattal párosított jegyzetfüzetből áll. Ezután érvényesítheti, üzembe helyezheti és futtathatja az üzembe helyezett folyamatot az Azure Databricks-munkaterületen.
Tipp.
Ha olyan meglévő folyamatokkal rendelkezik, amelyeket az Azure Databricks felhasználói felületével vagy API-jával hoztak létre, amelyeket csomagokba szeretne áthelyezni, meg kell határoznia őket egy csomag konfigurációs fájljaiban. A Databricks azt javasolja, hogy először hozzon létre egy csomagot az alábbi lépésekkel, majd ellenőrizze, hogy a csomag működik-e. Ezután további definíciókat, jegyzetfüzeteket és egyéb forrásokat is hozzáadhat a csomaghoz. Lásd: Meglévő folyamatdefiníció hozzáadása egy csomaghoz.
Követelmények
- A Databricks CLI 0.218.0-s vagy újabb verziója. A Databricks parancssori felület telepített verziójának ellenőrzéséhez futtassa a parancsot
databricks -v
. A Databricks parancssori felületének telepítéséhez lásd a Databricks parancssori felület telepítését vagy frissítését. - A távoli munkaterületen engedélyezni kell a munkaterület fájljait. Lásd: Mik azok a munkaterületfájlok?.
(Nem kötelező) Python-modul telepítése a helyi folyamatok fejlesztésének támogatásához
A Databricks egy Python-modult biztosít a Delta Live Tables folyamatkódjának helyi fejlesztéséhez szintaxis-ellenőrzéssel, automatikus kiegészítéssel és adattípus-ellenőrzéssel, amikor kódot ír az IDE-ben.
A helyi fejlesztéshez használható Python-modul a PyPi-on érhető el. A modul telepítéséhez tekintse meg a Python-csonkot a Delta Live Tableshez.
Csomag létrehozása projektsablon használatával
Hozza létre a csomagot a Python azure Databricks alapértelmezett csomagsablonjának használatával. Ez a sablon egy olyan jegyzetfüzetből áll, amely egy Delta Live Tables-folyamatot definiál, amely az eredeti adatkészletből szűri az adatokat. A csomagsablonokról további információt a Databricks Asset Bundle projektsablonjaiban talál.
Ha teljesen új csomagot szeretne létrehozni, olvassa el a Csomag létrehozása manuálisan című témakört.
1. lépés: Hitelesítés beállítása
Ebben a lépésben beállítja a hitelesítést a fejlesztői gépen található Databricks parancssori felület és az Azure Databricks-munkaterület között. Ez a cikk feltételezi, hogy OAuth felhasználó–gép (U2M) hitelesítést és egy hitelesítéshez elnevezett DEFAULT
Azure Databricks-konfigurációs profilt szeretne használni.
Feljegyzés
A U2M-hitelesítés megfelelő ezeknek a lépéseknek a valós idejű kipróbálásához. A teljes mértékben automatizált munkafolyamatok esetében a Databricks azt javasolja, hogy inkább OAuth machine-to-machine (M2M) hitelesítést használjon. Tekintse meg az M2M-hitelesítés beállítási utasításait a hitelesítésben.
Az OAuth-jogkivonatok helyi felügyeletének elindításához használja a Databricks parancssori felületét az alábbi parancs futtatásával minden cél-munkaterületen.
Az alábbi parancsban cserélje le
<workspace-url>
például az Azure Databricks munkaterületenkénti URL-címéthttps://adb-1234567890123456.7.azuredatabricks.net
.databricks auth login --host <workspace-url>
A Databricks parancssori felülete kéri, hogy mentse az Azure Databricks konfigurációs profiljaként megadott adatokat. Nyomja le
Enter
a javasolt profilnevet, vagy adja meg egy új vagy meglévő profil nevét. Az azonos nevű meglévő profilokat felülírja a megadott adatokkal. Profilok használatával gyorsan válthat a hitelesítési környezetre több munkaterületen.A meglévő profilok listájának lekéréséhez egy külön terminálban vagy parancssorban futtassa a Parancsot
databricks auth profiles
a Databricks parancssori felületével. Egy adott profil meglévő beállításainak megtekintéséhez futtassa a parancsotdatabricks auth env --profile <profile-name>
.A webböngészőben végezze el a képernyőn megjelenő utasításokat az Azure Databricks-munkaterületre való bejelentkezéshez.
A profil aktuális OAuth-tokenértékének és a jogkivonat közelgő lejárati időbélyegének megtekintéséhez futtassa az alábbi parancsok egyikét:
databricks auth token --host <workspace-url>
databricks auth token -p <profile-name>
databricks auth token --host <workspace-url> -p <profile-name>
Ha több azonos értékű profillal rendelkezik
--host
, előfordulhat, hogy együtt kell megadnia azokat és-p
a--host
beállításokat, hogy a Databricks parancssori felülete megkeresse a megfelelő OAuth-jogkivonat-információkat.
2. lépés: A csomag létrehozása
Csomag inicializálása az alapértelmezett Python-csomag projektsablonnal.
A terminál vagy a parancssor használatával váltson egy könyvtárra a helyi fejlesztőgépen, amely tartalmazza a sablon által létrehozott csomagot.
A Parancs futtatásához használja a Databricks parancssori felületét
bundle init
:databricks bundle init
A beállításnál
Template to use
hagyja meg az alapértelmezett értéketdefault-python
a billentyű lenyomásávalEnter
.Ehhez
Unique name for this project
hagyja meg az alapértelmezett értéketmy_project
, vagy írjon be egy másik értéket, majd nyomja le a billentyűtEnter
. Ez határozza meg a csomag gyökérkönyvtárának nevét. Ez a gyökérkönyvtár az aktuális munkakönyvtárban jön létre.Válassza ki
no
és nyomja leEnter
a következőtInclude a stub (sample) notebook
: Ez arra utasítja a Databricks parancssori felületét, hogy jelenleg ne adjon hozzá mintajegyzetfüzetet, mivel a beállításhoz társított mintajegyzetfüzetben nincs Delta Live Tables-kód.A beállításnál
Include a stub (sample) DLT pipeline
hagyja meg az alapértelmezett értéketyes
a billentyű lenyomásávalEnter
. Ez arra utasítja a Databricks parancssori felületét, hogy vegyen fel egy delta live tables kódot tartalmazó mintajegyzetfüzetet.Válassza ki
no
és nyomja leEnter
a következőtInclude a stub (sample) Python package
: Ez arra utasítja a Databricks parancssori felületét, hogy ne adjon hozzá Python-mintacsomagfájlokat vagy kapcsolódó buildelési utasításokat a csomaghoz.
3. lépés: A csomag felfedezése
A sablon által létrehozott fájlok megtekintéséhez váltson az újonnan létrehozott csomag gyökérkönyvtárára. A különösen fontos fájlok közé tartoznak a következők:
databricks.yml
: Ez a fájl megadja a csomag programozott nevét, hivatkozik a folyamatdefinícióra, és megadja a cél-munkaterület beállításait.resources/<project-name>_job.yml
ésresources/<project-name>_pipeline.yml
: Ezek a fájlok határozzák meg a folyamatfrissítési feladatot tartalmazó feladatot és a folyamat beállításait.src/dlt_pipeline.ipynb
: Ez a fájl egy jegyzetfüzet, amely futtatáskor végrehajtja a folyamatot.
A folyamatok testreszabásához a folyamatdeklaráción belüli leképezések megfelelnek a FOLYAMAT-művelet kérelem hasznos adatainak a REST API-referencia POST /api/2.0/folyamataiban meghatározott hasznos adatainak, YAML formátumban kifejezve.
4. lépés: A projekt csomagkonfigurációs fájljának ellenőrzése
Ebben a lépésben ellenőrzi, hogy a csomagkonfiguráció érvényes-e.
A gyökérkönyvtárból a Databricks parancssori felületével futtassa a parancsot az
bundle validate
alábbiak szerint:databricks bundle validate
Ha a csomagkonfiguráció összegzését adja vissza, az ellenőrzés sikeres volt. Ha bármilyen hibát ad vissza, javítsa ki a hibákat, majd ismételje meg ezt a lépést.
Ha a lépés után módosítja a csomagot, ismételje meg ezt a lépést annak ellenőrzéséhez, hogy a csomagkonfiguráció továbbra is érvényes-e.
5. lépés: A helyi projekt üzembe helyezése a távoli munkaterületen
Ebben a lépésben üzembe helyezi a helyi jegyzetfüzetet a távoli Azure Databricks-munkaterületen, és létrehozza a Delta Live Tables-folyamatot a munkaterületen belül.
A csomag gyökérkönyvtárában a Databricks parancssori felületével futtassa a parancsot az
bundle deploy
alábbiak szerint:databricks bundle deploy -t dev
Ellenőrizze, hogy a helyi jegyzetfüzet üzembe lett-e helyezve: Az Azure Databricks-munkaterület oldalsávján kattintson a Munkaterület gombra.
Kattintson a Users>
<your-username>
> .bundle ><project-name>
> dev > files > src mappába. A jegyzetfüzetnek ebben a mappában kell lennie.Ellenőrizze, hogy a folyamat létrejött-e: Az Azure Databricks-munkaterület oldalsávján kattintson a Delta Live Tables elemre.
A Delta Live Tables lapon kattintson a [dev
<your-username>
]<project-name>
_pipeline elemre.
Ha a lépés után módosítja a csomagot, ismételje meg a 4–5. lépést annak ellenőrzéséhez, hogy a csomagkonfiguráció továbbra is érvényes-e, majd telepítse újra a projektet.
6. lépés: Az üzembe helyezett projekt futtatása
Ebben a lépésben elindítja a Delta Live Tables folyamat futtatását a munkaterületen a parancssorból.
A gyökérkönyvtárból a Databricks parancssori felülettel futtassa a
bundle run
parancsot az alábbiak szerint, a 2. lépésben a projekt nevére cserélve<project-name>
:databricks bundle run -t dev <project-name>_pipeline
Másolja ki a terminálban megjelenő értéket
Update URL
, és illessze be ezt az értéket a webböngészőbe az Azure Databricks-munkaterület megnyitásához.Az Azure Databricks-munkaterületen a folyamat sikeres befejezése után kattintson a taxi_raw nézetre és a filtered_taxis materializált nézetre a részletek megtekintéséhez.
Ha a lépés után módosítja a csomagot, ismételje meg a 4–6. lépést annak ellenőrzéséhez, hogy a csomagkonfiguráció továbbra is érvényes-e, telepítse újra a projektet, és futtassa az újra üzembe helyezési projektet.
7. lépés: Törlés
Ebben a lépésben törli az üzembe helyezett jegyzetfüzetet és a folyamatot a munkaterületről.
A gyökérkönyvtárból a Databricks parancssori felületével futtassa a parancsot az
bundle destroy
alábbiak szerint:databricks bundle destroy -t dev
Erősítse meg a folyamat törlésére vonatkozó kérést: Amikor a rendszer arra kéri, hogy véglegesen pusztítsa el az erőforrásokat, írja be
y
és nyomja le a következőtEnter
:Erősítse meg a jegyzetfüzet törlésére vonatkozó kérést: Amikor a rendszer arra kéri, hogy véglegesen megsemmisítse a korábban üzembe helyezett mappát és annak összes fájlját, írja be
y
és nyomja leEnter
.Ha a csomagot a fejlesztői gépről is törölni szeretné, a 2. lépésben törölheti a helyi könyvtárat.
Meglévő folyamatdefiníció hozzáadása egy csomaghoz
Egy meglévő Delta Live Tables-folyamatdefiníció alapján definiálhat egy új folyamatot egy csomagkonfigurációs fájlban. Meglévő folyamatdefiníció lekéréséhez manuálisan is lekérheti a felhasználói felületen, vagy programozott módon is létrehozhatja a Databricks parancssori felületével.
Meglévő folyamatdefiníció lekérése a felhasználói felületen
Meglévő folyamatdefiníció YAML-ábrázolásának lekérése az Azure Databricks-munkaterület felhasználói felületéről:
Az Azure Databricks-munkaterület oldalsávján kattintson a Munkafolyamatok elemre.
A Delta Live Tables lapon kattintson a folyamat Név hivatkozására.
A Fejlesztés gomb mellett kattintson a kebabra, majd a Beállítások megtekintése YAML parancsra.
Másolja a folyamatdefiníció YAML-jét a Folyamatbeállítások YAML párbeszédpanelén a helyi vágólapra a másolás ikonra kattintva.
Adja hozzá a csomag fájljába
databricks.yml
másolt YAML-et, vagy hozzon létre egy konfigurációs fájlt a folyamathoz aresources
kötegprojekt mappájában, és hivatkozzon rá adatabricks.yml
fájlból. Tekintse meg az erőforrásokat.Töltse le és adja hozzá a csomag projektforrására hivatkozott Python-fájlokat és jegyzetfüzeteket. A kötegösszetevők általában egy
src
csomag könyvtárában találhatók.Tipp.
Az Azure Databricks-munkaterületről exportálhat egy meglévő jegyzetfüzetet a formátumba,
.ipynb
ha az Azure Databricks-jegyzetfüzet felhasználói felületéről a Fájlexportálás > > IPython-jegyzetfüzetre kattint.Miután hozzáadta a jegyzetfüzeteket, Python-fájlokat és egyéb összetevőket a csomaghoz, győződjön meg arról, hogy a folyamatdefiníció megfelelően hivatkozik rájuk. Például a köteg könyvtárában található
src/
jegyzetfüzethello.ipynb
esetében:resources: pipelines: hello-pipeline: name: hello-pipeline libraries: - notebook: path: ../src/hello.ipynb
Meglévő folyamatdefiníció létrehozása a Databricks parancssori felületével
Egy meglévő folyamat csomagkonfigurációjának programozott létrehozása:
Kérje le a meglévő folyamat azonosítóját a folyamat folyamatadatok oldalpaneljéről a felhasználói felületen, vagy használja a Databricks CLI
databricks pipelines list-pipelines
parancsot.Futtassa a
bundle generate pipeline
Databricks parancssori felületének parancsát, és állítsa be a folyamatazonosítót:databricks bundle generate pipeline --existing-pipeline-id 6565621249
Ez a parancs létrehoz egy csomagkonfigurációs fájlt a folyamathoz a csomag mappájában
resources
, és letölti a hivatkozott összetevőket asrc
mappába.Tipp.
Ha először egy kötegben lévő erőforrást a munkaterület egyikéhez köt
bundle deployment bind
, a munkaterületen lévő erőforrás a következőbundle deploy
után kötött csomagban meghatározott konfiguráció alapján frissül. További információ:bundle deployment bind
Kötegerőforrások kötése.