A Databricks Asset Bundles fejlesztése
Ez a cikk egy Databricks-eszközcsomag fejlesztését és életciklusát ismerteti. A Databricks-eszközcsomagokkal kapcsolatos általános információkért lásd : Mik azok a Databricks-eszközcsomagok?.
Csomag életciklusa
A csomagok hatékony használatának megértéséhez ismernie kell a csomagok alapvető életciklusát:
- A csomagváz egy projekt alapján jön létre .
- A csomagprojekt helyi fejlesztésű . A csomag olyan konfigurációs fájlokat tartalmaz, amelyek meghatározzák az infrastruktúrát és a munkaterület beállításait, például az üzembehelyezési célokat, a Databricks-erőforrások beállításait, például a feladatokat és a folyamatokat, valamint a forrásfájlokat és egyéb összetevőket.
- A csomagprojekt érvényesítve van. Az ellenőrzés ellenőrzi a csomagkonfiguráció beállításait és erőforrásdefinícióit a megfelelő objektumsémákon, hogy a csomag üzembe helyezhető legyen a Databricksben.
- A csomag egy cél-munkaterületen van üzembe helyezve . A csomagokat leggyakrabban először egy felhasználó személyes fejlesztői munkaterületén helyezik üzembe tesztelés céljából. A csomag tesztelésének befejezése után a csomag üzembe helyezhető az előkészítésre, majd az éles célokra.
- Az üzembe helyezett csomagban definiált munkafolyamat-erőforrások futtathatók. Futtathat például egy feladatot.
- Ha a csomagot már nem használják, véglegesen megsemmisíthető.
A Databricks CLI-csomagparancsokkal kötegeket hozhat létre, érvényesíthet, helyezhet üzembe, futtathat és megsemmisíthet a következő szakaszokban leírtak szerint.
1. lépés: Csomag létrehozása
A csomag létrehozásának három módja van:
- Használja az alapértelmezett csomagsablont.
- Használjon egyéni csomagsablont.
- Hozzon létre manuálisan egy csomagot.
Alapértelmezett csomagsablon használata
Ha azure Databricks alapértelmezett csomagsablont szeretne használni egy kezdőcsomag létrehozásához, amelyet később testre szabhat, a Databricks CLI 0.218.0-s vagy újabb verziójával futtassa a bundle init
parancsot, amely lehetővé teszi az elérhető sablonok listájának kiválasztását. Lásd: Csomag létrehozása projektsablonból.
databricks bundle init
Az alapértelmezett csomagsablonok forrását a databricks/cli és a databricks/mlops-stacks Github nyilvános adattáraiban tekintheti meg.
Ugorjon a 2. lépésre : Töltse ki a csomagkonfigurációs fájlokat.
Egyéni csomagsablon használata
Az Alapértelmezett Azure Databricks-sablontól eltérő csomagsablon használatához ismernie kell a távoli csomagsablon helyének helyi elérési útját vagy URL-címét. A Databricks CLI 0.218.0-s vagy újabb verziójával futtassa a parancsot az bundle init
alábbiak szerint:
databricks bundle init <project-template-local-path-or-url>
A parancsról további információt a Databricks Asset Bundle projektsablonjaiban talál. Egy adott csomagsablonról a csomagsablon-szolgáltató dokumentációjában talál további információt.
Ugorjon a 2. lépésre : Töltse ki a csomagkonfigurációs fájlokat.
Csomag manuális létrehozása
Ha kötegsablon helyett manuálisan szeretne létrehozni egy csomagot, hozzon létre egy projektkönyvtárat a helyi gépen, vagy egy üres adattárat egy külső Git-szolgáltatóval.
A címtárban vagy az adattárban hozzon létre egy vagy több csomagkonfigurációs fájlt bemenetként. Ezek a fájlok YAML formátumban vannak kifejezve. Legalább egy (és csak egy) csomagkonfigurációs fájlnak kell lennie.databricks.yml
A fájl leképezésében include
databricks.yml
további csomagkonfigurációs fájlokra kell hivatkozni.
A Databricks Asset Bundle konfigurációs szintaxisának megfelelő YAML-fájlok egyszerűbb és gyorsabb létrehozásához használhat olyan eszközt, 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, az alábbiak szerint:
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 CLI 0.218.0-s vagy újabb verziójával 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. Ezt a fájlt el kell nevezni
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 CLI 0.218.0-s vagy újabb verziójával 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. Ezt a fájlt el kell nevezni
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 CLI 0.218.0-s vagy újabb verziójával 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. Ezt a fájlt el kell nevezni
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.
2. lépés: A csomagkonfigurációs fájlok feltöltése
A csomagkonfigurációs fájlok olyan beállítások megadásával határozzák meg az Azure Databricks-munkafolyamatokat, mint a munkaterület részletei, az összetevők nevei, a fájlhelyek, a feladatok részletei és a folyamat részletei. A csomagkonfiguráció általában fejlesztési, előkészítési és éles üzembe helyezési célokat is tartalmaz. A csomagkonfigurációs fájlokról további információt a Databricks Asset Bundle konfigurációja című témakörben talál.
A bundle generate
parancs használatával automatikusan létrehozhat csomagkonfigurációt egy meglévő erőforráshoz a munkaterületen, majd a bundle deployment bind
kötegkonfigurációt a munkaterület erőforrásához csatolhatja, hogy azok szinkronban maradjanak. Lásd: Csomagkonfigurációs fájl létrehozása és kötegerőforrások kötése.
3. lépés: A csomagkonfigurációs fájlok ellenőrzése
Mielőtt telepítené az összetevőket, vagy futtatna egy feladatot vagy folyamatot, ellenőrizze, hogy a csomagkonfigurációs fájlok definíciói érvényesek-e. Ehhez futtassa a parancsot a bundle validate
csomagprojekt gyökérkönyvtárából. Lásd: Csomag érvényesítése.
databricks bundle validate
Ha az érvényesítés sikeres, a csomag identitásának összegzése és egy megerősítést kérő üzenet lesz visszaadva. A séma kimenetéhez használja a databricks bundle schema
parancsot. Lásd : A csomagkonfigurációs séma megjelenítése.
4. lépés: A csomag üzembe helyezése
A csomag üzembe helyezése előtt győződjön meg arról, hogy a távoli munkaterületen engedélyezve vannak a munkaterületfájlok. Lásd: Mik azok a munkaterületfájlok?.
Ha egy csomagot távoli munkaterületen szeretne üzembe helyezni, futtassa a parancsot a bundle deploy
csomag gyökérkönyvtárából a csomag üzembe helyezése című szakaszban leírtak szerint. A Databricks parancssori felület a csomagkonfigurációs fájlokban deklarált cél-munkaterületen lesz üzembe helyezve. Lásd a célokat.
databricks bundle deploy
A csomag egyedi identitását a telepítő neve, célja és identitása határozza meg. Ha ezek az attribútumok különböző csomagokban azonosak, a csomagok üzembe helyezése zavarja egymást. További részletekért tekintse meg a csomag üzembe helyezését ismertető cikket.
Tipp.
A környezeti változó beállításával BUNDLE_ROOT
a csomag gyökerén kívül is futtathat databricks bundle
parancsokat. Ha ez a környezeti változó nincs beállítva, databricks bundle
a parancsok az aktuális munkakönyvtárban való kereséssel próbálják megkeresni a csomag gyökerét.
5. lépés: A csomag futtatása
Egy adott feladat vagy folyamat futtatásához futtassa a parancsot a bundle run
csomag gyökérkönyvtárából, és adja meg a csomagkonfigurációs fájlokban deklarált feladatot vagy folyamatkulcsot a Csomag futtatása című cikkben leírtak szerint. Az erőforráskulcs az erőforrás YAML-blokkjának legfelső szintű eleme. Ha nem ad meg feladat- vagy folyamatkulcsot, a rendszer kérni fogja, hogy válasszon ki egy erőforrást, amelyet futtatni szeretne az elérhető erőforrások listájából. Ha a -t
beállítás nincs megadva, a csomagkonfigurációs fájlokban deklarált alapértelmezett cél lesz használva. Például egy feladat futtatásához a kulccsal hello_job
az alapértelmezett cél kontextusában:
databricks bundle run hello_job
Feladat futtatása kulccsal hello_job
egy cél kontextusában a következő néven dev
deklarált célhoz:
databricks bundle run -t dev hello_job
6. lépés: A csomag megsemmisítése
Ha végzett a csomaggal, és törölni szeretné a korábban üzembe helyezett feladatokat, folyamatokat és összetevőket, futtassa a parancsot a bundle destroy
csomag gyökérkönyvtárából. Ez a parancs törli a csomagkonfigurációs fájlokban definiált összes korábban üzembe helyezett feladatot, folyamatot és összetevőt. Lásd: Csomag megsemmisítése.
databricks bundle destroy
Alapértelmezés szerint a rendszer kérni fogja a korábban üzembe helyezett feladatok, folyamatok és összetevők végleges törlésének megerősítését. Ha ki szeretné hagyni ezeket a kéréseket, és automatikus végleges törlést szeretne végrehajtani, adja hozzá a --auto-approve
bundle destroy
parancsot.