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


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.

  1. 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>
    
  2. 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 profilesa Databricks parancssori felületével. Egy adott profil meglévő beállításainak megtekintéséhez futtassa a parancsot databricks auth env --profile <profile-name>.

  3. A webböngészőben végezze el a képernyőn megjelenő utasításokat az Azure Databricks-munkaterületre való bejelentkezéshez.

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

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

  2. A Parancs futtatásához használja a Databricks parancssori felületét bundle init :

    databricks bundle init
    
  3. A beállításnál Template to usehagyja meg az alapértelmezett értéket default-python a billentyű lenyomásával Enter.

  4. Ehhez Unique name for this projecthagyja meg az alapértelmezett értéket my_project, vagy írjon be egy másik értéket, majd nyomja le a billentyűt Enter. 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.

  5. Válassza ki yes és nyomja le Entera következőtInclude a stub (sample) notebook:

  6. Válassza ki no és nyomja le Entera 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.

  7. Válassza ki no és nyomja le Entera 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.

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

  1. 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
    
  2. Ellenőrizze, hogy a helyi jegyzetfüzet üzembe lett-e helyezve: Az Azure Databricks-munkaterület oldalsávján kattintson a Munkaterület gombra.

  3. Kattintson a Users><your-username>> .bundle ><project-name>> dev > files > src mappába. A jegyzetfüzetnek ebben a mappában kell lennie.

  4. Ellenőrizze, hogy a feladat létrejött-e: Az Azure Databricks-munkaterület oldalsávján kattintson a Munkafolyamatok elemre.

  5. A Feladatok lapon kattintson a [dev<your-username>] elemre<project-name>_job.

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

  1. 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
    
  2. 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ása

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

  1. 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
    
  2. 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őt Enter:

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

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

  1. Az Azure Databricks-munkaterület oldalsávján kattintson a Munkafolyamatok elemre.

  2. A Feladatok lapon kattintson a feladat Név hivatkozására.

  3. A Futtatás most gomb mellett kattintson a kebabra, majd a Kódváltás (YAML) gombra.

  4. 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 a resources csomagprojekt könyvtárában, és hivatkozzon rá a databricks.yml fájlból. Lásd: (/dev-tools/bundles/settings.md#resources).

  5. 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üzet hello.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:

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

  2. 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 a src 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 deployután kötött csomagban meghatározott konfiguráció alapján frissül. További információ: bundle deployment bindKö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.