Migrálás dbx-ről csomagokra
Fontos
A Databricks azt javasolja, hogy a Databricks Labs helyett dbx
a Databricks-eszközcsomagokat használja. A kapcsolódó cikkek dbx
ki lettek állítva, és előfordulhat, hogy nem frissülnek.
Ez a cikk bemutatja, hogyan migrálhatja a dbx
Databricks Labs projektjeit a Databricks Eszközcsomagjaiba. Tekintse meg a Databricks Labs és a Databricks Asset Bundles által készített dbx bemutatása című témakört.
A migrálás előtt jegyezze fel a Databricks Labs és a Databricks-eszközcsomagok közötti alábbi korlátozásokat és funkciók összehasonlítását dbx
.
Korlátozások
A Databricks Labs által támogatott dbx
alábbi funkciók korlátozottak, nem léteznek, vagy kerülő megoldásokat igényelnek a Databricks-eszközcsomagokban.
- A JAR-összetevők létrehozása csomagokban nem támogatott.
- A munkaterület elérési útjaihoz tartozó FUSE-jelölés nem támogatott csomagokban (például
/Workspace/<path>/<filename>
). A kötegeket azonban arra utasíthatja, hogy FUSE-stílusú munkaterület-útvonalakat hozzanak létre az üzemelő példányok során olyan jelölések használatával, mint a/Workspace/${bundle.file_path}/<filename>
.
Funkció-összehasonlítások
A migrálás előtt vegye figyelembe, hogy a Databricks Labs alábbi funkciói dbx
hogyan implementálódnak a Databricks-eszközcsomagokban.
Sablonok és projektek
dbx
támogatást nyújt a Jinja-templatinghoz. Jinja-sablonokat is felvehet az üzembehelyezési konfigurációba, és környezeti változókat adhat át beágyazott vagy változófájlon keresztül. Bár nem ajánlott, dbx
az egyéni felhasználói függvények kísérleti támogatását is biztosítja.
A csomagok támogatják a Go-sablonokat a konfiguráció újrafelhasználása érdekében. A felhasználók előre összeállított sablonok alapján hozhatnak létre csomagokat. Az egyéni felhasználói függvények kivételével szinte teljes paritás áll rendelkezésre a csábításhoz.
Buildkezelés
dbx
buildtámogatást biztosít a Vers és a Flit segítségével pip wheel
. A felhasználók megadhatják a buildelési lehetőséget a build
projekt fájljának szakaszában deployment.yml
.
A csomagok lehetővé teszik a felhasználók számára a Python-kerékfájlok összeállítását, üzembe helyezését és futtatását. A felhasználók használhatják a csomag databricks.yml
fájljában lévő beépített whl
bejegyzést.
Kód szinkronizálása, üzembe helyezése és futtatása
dbx
lehetővé teszi a kód feltöltését a munkaterületi erőforrások, például az Azure Databricks-feladatok generálásától függetlenül.
A csomagok mindig feltöltik a kódot, és egyszerre hoznak létre vagy frissítenek munkaterületi erőforrásokat . Ez leegyszerűsíti az üzembe helyezéseket, és elkerüli a már folyamatban lévő feladatok feltételeinek blokkolását.
Dbx-projekt migrálása csomagba
Miután megfigyelte a Databricks Labs és a Databricks-eszközcsomagok közötti korábbi korlátozásokat és funkciók összehasonlítását dbx
, készen áll a csomagok közötti dbx
migrálásra.
A Databricks azt javasolja, hogy a projekt áttelepítésének megkezdéséhez dbx
tartsa a projektet az dbx
eredeti mappájában, és hogy legyen egy külön, üres mappája, amelybe az eredeti dbx
projekt tartalmát másolja. Ez a különálló mappa lesz az új csomag. Váratlan problémákat tapasztalhat, ha elkezdi dbx
az eredeti mappában lévő projektet csomaggá alakítani, majd hibákat követ el, vagy az elejétől kezdve újra szeretné kezdeni a projektet.
1. lépés: A Databricks parancssori felület telepítése és beállítása
A Databricks Asset Bundles általában a Databricks CLI 0.218.0-s és újabb verziójában érhető el. Ha már telepítette és beállította a Databricks CLI 0.218.0-s vagy újabb verzióját, ugorjon tovább a 2. lépésre.
Feljegyzés
A csomagok nem kompatibilisek a Databricks CLI 0.18-s és újabb verzióival.
- Telepítse vagy frissítse a Databricks CLI 0.218.0-s vagy újabb verzióját. Lásd: A Databricks parancssori felület telepítése vagy frissítése.
- Állítsa be a Databricks parancssori felületét a cél Azure Databricks-munkaterületekkel való hitelesítéshez, például az Azure Databricks személyes hozzáférési jogkivonat-hitelesítésével. Egyéb Azure Databricks-hitelesítési típusok esetén lásd a Databricks parancssori felület hitelesítését.
2. lépés: A csomagkonfigurációs fájl létrehozása
Ha olyan IDE-t használ, mint a Visual Studio Code, a PyCharm Professional vagy az IntelliJ IDEA Ultimate , amely támogatja a YAML-fájlokat és a JSON-sémafájlokat, akkor az IDE-vel nem csak a csomagkonfigurációs fájlt hozhatja létre, hanem ellenőrizheti a fájl szintaxisát és formázását, és az alábbiak szerint kódkiegészítési tippeket adhat meg.
Visual Studio Code
A YAML nyelvi kiszolgáló támogatásának hozzáadása a Visual Studio Code-hoz, például a YAML-bővítmény a Visual Studio Code Marketplace-ről való telepítésével.
Hozza létre a Databricks Asset Bundle konfigurációs JSON-sémafájlját a Databricks parancssori felületével a
bundle schema
parancs futtatásához és a kimenet JSON-fájlba való átirányításához. Hozzon létre például egy fájltbundle_config_schema.json
az aktuális könyvtárban az alábbiak szerint:databricks bundle schema > bundle_config_schema.json
A Visual Studio Code használatával hozzon létre vagy nyisson meg egy csomagkonfigurációs fájlt az aktuális könyvtárban. Konvenció szerint ez a fájl neve
databricks.yml
.Adja hozzá a következő megjegyzést a csomagkonfigurációs fájl elejéhez:
# yaml-language-server: $schema=bundle_config_schema.json
Feljegyzés
Az előző megjegyzésben, ha a Databricks Asset Bundle konfigurációs JSON-sémafájlja egy másik elérési úton található, cserélje le
bundle_config_schema.json
a sémafájl teljes elérési útját.Használja a korábban hozzáadott YAML nyelvi kiszolgálói funkciókat. További információkért tekintse meg a YAML nyelvi kiszolgáló dokumentációját.
PyCharm Professional
Hozza létre a Databricks Asset Bundle konfigurációs JSON-sémafájlját a Databricks parancssori felületével a
bundle schema
parancs futtatásához és a kimenet JSON-fájlba való átirányításához. Hozzon létre például egy fájltbundle_config_schema.json
az aktuális könyvtárban az alábbiak szerint:databricks bundle schema > bundle_config_schema.json
Konfigurálja a PyCharmot a csomagkonfiguráció JSON-sémafájljának felismeréséhez, majd végezze el a JSON-sémaleképezést az egyéni JSON-séma konfigurálása című témakörben leírtak szerint.
Csomagkonfigurációs fájl létrehozása vagy megnyitása a PyCharm használatával. Konvenció szerint ez a fájl neve
databricks.yml
. Gépelés közben a PyCharm ellenőrzi a JSON-séma szintaxisát és formázását, és kódkiegészítési tippeket ad.
IntelliJ IDEA Ultimate
Hozza létre a Databricks Asset Bundle konfigurációs JSON-sémafájlját a Databricks parancssori felületével a
bundle schema
parancs futtatásához és a kimenet JSON-fájlba való átirányításához. Hozzon létre például egy fájltbundle_config_schema.json
az aktuális könyvtárban az alábbiak szerint:databricks bundle schema > bundle_config_schema.json
Konfigurálja az IntelliJ IDEA-t a csomagkonfigurációs JSON-sémafájl felismeréséhez, majd végezze el a JSON-sémaleképezést az egyéni JSON-séma konfigurálása című témakörben leírtak szerint.
Csomagkonfigurációs fájl létrehozásához vagy megnyitásához használja az IntelliJ IDEA-t. Konvenció szerint ez a fájl neve
databricks.yml
. Gépelés közben az IntelliJ IDEA ellenőrzi a JSON-séma szintaxisát és formázását, és kódkiegészítési tippeket ad.
3. lépés: Dbx-projektbeállítások átalakítása databricks.yml
Alakítsa át a dbx
projekt fájljában .dbx/project.json
lévő beállításokat a csomag fájljának databricks.yml
megfelelő beállításaivá. További információ: Dbx-projektbeállítások átalakítása databricks.yml.
4. lépés: A dbx üzembehelyezési beállításainak átalakítása databricks.yml
Konvertálja a projekt mappájában conf
lévő dbx
beállításokat a csomag fájljának databricks.yml
megfelelő beállításaivá. További információ: A DBX üzembehelyezési beállításainak átalakítása databricks.yml.
5. lépés: A csomag ellenőrzése
Mielőtt telepítené az összetevőket, vagy futtatna egy Azure Databricks-feladatot, egy Delta Live Tables-folyamatot vagy egy MLOps-folyamatot, győződjön meg arról, hogy a csomagkonfigurációs fájl szintaktikailag helyes. Ehhez futtassa a parancsot a bundle validate
csomag gyökeréből:
databricks bundle validate
További információ bundle validate
: Csomag érvényesítése.
6. lépés: A csomag üzembe helyezése
Ha a megadott helyi összetevőket a távoli munkaterületen szeretné üzembe helyezni, futtassa a bundle deploy
parancsot a csomaggyökérből. Ha nincsenek megadva parancsbeállítások, a rendszer a csomagkonfigurációs fájlban deklarált alapértelmezett célt használja:
databricks bundle deploy
Ha az összetevőket egy adott cél kontextusában szeretné üzembe helyezni, adja meg a -t
(vagy --target
) lehetőséget a csomagkonfigurációs fájlban deklarált cél nevével együtt. Például a következő névvel development
deklarált célhoz:
databricks bundle deploy -t development
További információ bundle deploy
: Csomag üzembe helyezése.
Tipp.
Az Azure Databricks-munkaterületen lévő meglévő feladatokhoz és folyamatokhoz kötheti a csomagban definiált feladatokat és folyamatokat, hogy szinkronban tarthassa őket. Lásd: Kötegerőforrások kötése.
7. lépés: A csomag futtatása
Egy adott feladat vagy folyamat futtatásához futtassa a bundle run
parancsot a csomag gyökeréből. Meg kell adnia a csomagkonfigurációs fájlban deklarált feladatot vagy folyamatot. Ha a -t
beállítás nincs megadva, a csomagkonfigurációs fájlban deklarált alapértelmezett cél lesz használva. Például egy, az alapértelmezett cél kontextusában elnevezett hello_job
feladat futtatásához:
databricks bundle run hello_job
Egy cél környezetében elnevezett hello_job
feladat futtatása a következő néven development
deklarálva:
databricks bundle run -t development hello_job
További információ bundle run
: Csomag futtatása.
(Nem kötelező) 8. lépés: A CI/CD csomagjának konfigurálása a GitHub használatával
Ha a GitHubot CI/CD-hez használja, a GitHub Actions használatával automatikusan futtathatja azokat és databricks bundle run
a databricks bundle deploy
parancsokat adott GitHub-munkafolyamat-események és egyéb feltételek alapján. Lásd: CI/CD-munkafolyamat futtatása Databricks-eszközcsomaggal és GitHub-műveletekkel.
Dbx-projektbeállítások átalakítása databricks.yml
A dbx
projektbeállítások alapértelmezés szerint a projekt .dbx
mappájában található project.json
fájlban vannak. Lásd: Project-fájlhivatkozás.
A csomagok esetében a csomagkonfigurációk alapértelmezés szerint a csomag gyökérmappájában található databricks.yml
fájlban vannak. Lásd a Databricks Asset Bundle konfigurációit.
conf/project.json
Az alábbi példatartalommal rendelkező fájlok esetében:
{
"environments": {
"default": {
"profile": "charming-aurora",
"storage_type": "mlflow",
"properties": {
"workspace_directory": "/Shared/dbx/charming_aurora",
"artifact_location": "/Shared/dbx/projects/charming_aurora"
}
}
},
"inplace_jinja_support": true
}
A megfelelő databricks.yml
fájl a következő:
bundle:
name: <some-unique-bundle-name>
targets:
default:
workspace:
profile: charming-aurora
root_path: /Shared/dbx/charming_aurora
artifact_path: /Shared/dbx/projects/charming_aurora
resources:
# See an example "resources" mapping in the following section.
A példa előző conf/project.json
fájljának alábbi objektumai nem támogatottak a fájlokban databricks.yml
, és nem rendelkeznek megkerülő megoldásokkal:
inplace_jinja_support
storage_type
A fájlokban az conf/project.json
alábbi további engedélyezett objektumok nem támogatottak a fájlokban databricks.yml
, és nem rendelkeznek megkerülő megoldásokkal:
enable-context-based-upload-for-execute
enable-failsafe-cluster-reuse-with-assets
A dbx üzembehelyezési beállításainak átalakítása databricks.yml
Ebben az dbx
esetben az üzembehelyezési beállítások alapértelmezés szerint a projekt mappájában conf
lévő fájlban találhatók. Lásd az üzembehelyezési fájlra vonatkozó hivatkozást. Az üzembehelyezési beállítások fájl alapértelmezés szerint az alábbi fájlnevek egyikével rendelkezik:
deployment.yml
deployment.yaml
deployment.json
deployment.yml.j2
deployment.yaml.j2
deployment.json.j2
A csomagok esetében az üzembehelyezési beállítások alapértelmezés szerint a csomag gyökérmappájában található databricks.yml
fájlban találhatók. Lásd a Databricks Asset Bundle konfigurációit.
conf/deployment.yml
Az alábbi példatartalommal rendelkező fájlok esetében:
build:
python: "pip"
environments:
default:
workflows:
- name: "workflow1"
tasks:
- task_key: "task1"
python_wheel_task:
package_name: "some-pkg"
entry_point: "some-ep"
A megfelelő databricks.yml
fájl a következő:
bundle:
name: <some-unique-bundle-name>
targets:
default:
workspace:
# See an example "workspace" mapping in the preceding section.
resources:
jobs:
workflow1:
tasks:
- task_key: task1
python_wheel_task:
package_name: some-pkg
entry_point: some-ep
A példa előző conf/deployment.yml
fájljának alábbi objektuma nem támogatott a fájlokban databricks.yml
, és nincs áthidaló megoldásuk:
build
(bár lásd: Python-kerekes fájl fejlesztése a Databricks Asset Bundles használatával)
A fájlokban conf/deployment.yml
az alábbi további engedélyezett objektumok és funkciók nem támogatottak a fájlokban databricks.yml
, és nem rendelkeznek megkerülő megoldásokkal, hacsak másként nem rendelkezik:
access_control_list
custom
(ehelyett használjon szabványos YAML-horgonyokat)deployment_config
- Munkafolyamatok az Azure Databricks Jobs 2.0-s formátumában (helyette a Jobs 2.1 formátumot használja)
dbx
Jinja funkciók- Névalapú tulajdonságok
Visszajelzés
https://aka.ms/ContentUserFeedback.
Hamarosan elérhető: 2024-ben fokozatosan kivezetjük a GitHub-problémákat a tartalom visszajelzési mechanizmusaként, és lecseréljük egy új visszajelzési rendszerre. További információ:Visszajelzés küldése és megtekintése a következőhöz: