Feladat fejlesztése az Azure Databricksben a Databricks Asset Bundles használatával
A Databricks-eszközcsomagok, más néven csomagok tartalmazzák az üzembe helyezni kívánt összetevőket és az Azure Databricks-erőforrások beállításait, például a futtatni kívánt feladatokat, és lehetővé teszik azok 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 bemutatja, hogyan hozhat létre csomagokat a feladatok programozott kezeléséhez. Lásd: Munkafolyamatok ütemezése és vezénylálása. A csomag a Python Databricks Asset Bundles alapértelmezett csomagsablonjával jön létre, amely egy feladat definíciójával párosított jegyzetfüzetből áll. Ezután érvényesítheti, üzembe helyezheti és futtathatja az üzembe helyezett feladatot az Azure Databricks-munkaterületen.
Tipp.
Ha olyan meglévő feladatokkal rendelkezik, amelyeket az Azure Databricks Jobs felhasználói felületén vagy API-jában hoztak létre, amelyeket csomagba 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 feladatdefiníciókat, jegyzetfüzeteket és egyéb forrásokat is hozzáadhat a csomaghoz. Lásd: Meglévő feladatdefiníció hozzáadása 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 Databricks-munkaterületen engedélyezni kell a munkaterületfájlokat. Lásd: Mik azok a munkaterületfájlok?.
Csomag létrehozása projektsablon használatával
Először hozzon létre egy csomagot a Databricks Asset Bundles alapértelmezett Python-sablonnal. 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 inicializálá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
yes
és nyomja leEnter
a következőtInclude a stub (sample) notebook
:Válassza ki
no
és nyomja leEnter
a következőtInclude a stub (sample) DLT pipeline
: Ez arra utasítja a Databricks parancssori felületét, hogy ne definiáljon minta Delta Live Tables-folyamatot a csomagban.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 feladatdefinícióra, és megadja a cél-munkaterület beállításait.resources/<project-name>_job.yml
: Ez a fájl megadja a feladat beállításait, beleértve egy alapértelmezett jegyzetfüzet-feladatot is.src/notebook.ipynb
: Ez a fájl egy mintajegyzetfüzet, amely futtatáskor egyszerűen inicializál egy RDD-t, amely az 1–10-et tartalmazza.
A feladatok testreszabásához a feladatdeklarációban szereplő leképezések megfelelnek a FELADAT LÉTREHOZÁSA művelet yaML formátumban kifejezett hasznos adatainak, a POST /api/2.1/jobs/create rest API-referenciában dokumentált módon.
Tipp.
Az új feladatfürtök beállításait kötegekben definiálhatja, kombinálhatja és felülbírálhatja a Databricks-eszközcsomagok fürtbeállításainak felülbírálása című témakörben ismertetett technikákkal.
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 az Azure Databricks-feladatot 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 feladat létrejött-e: Az Azure Databricks-munkaterület oldalsávján kattintson a Munkafolyamatok elemre.
A Feladatok lapon kattintson a [dev
<your-username>
] elemre<project-name>_job
.Kattintson a Feladatok fülre. Egy feladatnak kell lennie: notebook_task.
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 az Azure Databricks-feladat 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>_job
Másolja ki a terminálban megjelenő értéket
Run URL
, és illessze be ezt az értéket a webböngészőbe az Azure Databricks-munkaterület megnyitásához. Databricks-eszközcsomaggal létrehozott feladat megtekintése és futtatásaAz Azure Databricks-munkaterületen, miután a feladat sikeresen befejeződött, és zöld címsort jelenít meg, kattintson a feladat tevékenységére az eredmények 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 feladatot 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 feladat 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ő feladatdefiníció hozzáadása csomaghoz
Egy meglévő feladat alapján definiálhat egy feladatot egy csomagkonfigurációs fájlban. Meglévő feladatdefiníció lekéréséhez manuálisan is lekérheti a felhasználói felületen, vagy a Databricks parancssori felületével programozott módon is létrehozhatja.
A csomagokban lévő feladatdefinícióval kapcsolatos információkért tekintse meg a feladatot.
Meglévő feladatdefiníció lekérése a felhasználói felületen
Meglévő feladatdefiní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 Feladatok lapon kattintson a feladat Név hivatkozására.
A Futtatás most gomb mellett kattintson a kebabra, majd a Kódváltás (YAML) gombra.
Adja hozzá a csomag fájljába
databricks.yml
másolt YAML-et, vagy hozzon létre egy konfigurációs fájlt a feladathoz aresources
csomagprojekt könyvtárában, és hivatkozzon rá adatabricks.yml
fájlból. Lásd: (/dev-tools/bundles/settings.md#resources).Töltse le és adja hozzá a meglévő feladatban hivatkozott Python-fájlokat és jegyzetfüzeteket a csomag projektforrásához. 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 feladatdefiní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: jobs: hello-job: name: hello-job tasks: - task_key: hello-task notebook_task: notebook_path: ../src/hello.ipynb
Meglévő feladatdefiníció létrehozása a Databricks parancssori felületével
Egy meglévő feladat csomagkonfigurációjának programozott létrehozása:
Kérje le a meglévő feladat azonosítóját a Feladat adatai oldalpanelről a Feladatok felhasználói felületén, vagy használja a Databricks CLI
databricks jobs list
parancsot.Futtassa a
bundle generate job
Databricks parancssori felületének parancsát, és állítsa be a feladatazonosítót:databricks bundle generate job --existing-job-id 6565621249
Ez a parancs létrehoz egy csomagkonfigurációs fájlt a feladathoz 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.
Kiszolgáló nélküli számítást használó feladat konfigurálása
Az alábbi példák a csomagkonfigurációkat szemléltetik egy kiszolgáló nélküli számítást használó feladat létrehozásához.
Ha kiszolgáló nélküli számítást szeretne használni egy jegyzetfüzet-feladatokat tartalmazó feladat futtatásához, hagyja ki a konfigurációt job_clusters
a csomagkonfigurációs fájlból.
# yaml-language-server: $schema=bundle_config_schema.json
bundle:
name: baby-names
resources:
jobs:
retrieve-filter-baby-names-job-serverless:
name: retrieve-filter-baby-names-job-serverless
tasks:
- task_key: retrieve-baby-names-task
notebook_task:
notebook_path: ./retrieve-baby-names.py
- task_key: filter-baby-names-task
depends_on:
- task_key: retrieve-baby-names-task
notebook_task:
notebook_path: ./filter-baby-names.py
targets:
development:
workspace:
host: <workspace-url>
Ha kiszolgáló nélküli számítást szeretne használni egy Python-feladatokat tartalmazó feladat futtatásához, adja meg a konfigurációt environments
.
# yaml-language-server: $schema=bundle_config_schema.json
bundle:
name: serverless-python-tasks
resources:
jobs:
serverless-python-job:
name: serverless-job-with-python-tasks
tasks:
- task_key: wheel-task-1
python_wheel_task:
entry_point: main
package_name: wheel_package
environment_key: Default
environments:
- environment_key: Default
spec:
client: "1"
dependencies:
- workflows_authoring_toolkit==0.0.1
targets:
development:
workspace:
host: <workspace-url>
Lásd: Azure Databricks-feladat futtatása kiszolgáló nélküli számítással munkafolyamatokhoz.