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


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.

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

  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 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á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. Konvenció szerint ez a fájl neve 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 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á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. 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

  1. 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á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. 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 developmentdeklará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 developmentdeklará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 dbxprojektbeá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 dbxesetben 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:

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)
  • dbxJinja funkciók
  • Névalapú tulajdonságok