Megosztás a következőn keresztül:


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:

  1. A csomagváz egy projekt alapján jön létre .
  2. 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.
  3. 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.
  4. 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.
  5. Az üzembe helyezett csomagban definiált munkafolyamat-erőforrások futtathatók. Futtathat például egy feladatot.
  6. 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:

  1. Használja az alapértelmezett csomagsablont.
  2. Használjon egyéni csomagsablont.
  3. 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

  1. 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.

  2. 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ájlt bundle_config_schema.json az aktuális könyvtárban az alábbiak szerint:

    databricks bundle schema > bundle_config_schema.json
    
  3. 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.

  4. 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.

  5. 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

  1. 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ájlt bundle_config_schema.json az aktuális könyvtárban az alábbiak szerint:

    databricks bundle schema > bundle_config_schema.json
    
  2. 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.

  3. 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

  1. 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ájlt bundle_config_schema.json az aktuális könyvtárban az alábbiak szerint:

    databricks bundle schema > bundle_config_schema.json
    
  2. 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.

  3. 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 devdeklará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.