Feladat fejlesztése az Azure Databricksben a Databricks Asset Bundles használatával

A Databricks-eszközcsomagok, más néven csomagok lehetővé teszik az Azure Databricks-erőforrások, például a feladatok programozott érvényesítését, üzembe helyezését és futtatását. Csomagokkal programozott módon kezelheti a Delta Live Tables-folyamatokat, és együttműködhet az MLOps Stacks szolgáltatással. Lásd: Mik azok a Databricks-eszközcsomagok?.

Ez a cikk azokat a lépéseket ismerteti, amelyeket egy helyi fejlesztési beállítással elvégezhet egy feladat programozott kezelésére szolgáló csomag használatához. Lásd : Bevezetés az Azure Databricks-munkafolyamatok használatába.

Ha az Azure Databricks Workflows felhasználói felületén vagy API-jával létrehozott meglévő feladatok kötegekbe szeretné áthelyezni őket, akkor csomagkonfigurációs fájlként újra létre kell hoznia őket. Ehhez a Databricks azt javasolja, hogy először hozzon létre egy csomagot az alábbi lépésekkel, és ellenőrizze, hogy a csomag működik-e. Ezután hozzáadhat feladatdefiníciókat, jegyzetfüzeteket és más forrásokat a csomaghoz. Lásd: Meglévő feladatdefiníció hozzáadása csomaghoz.

A Databricks parancssori felületének használatával egy csomagban üzembe helyezett feladatot is futtathat, ezeket a feladatokat az Azure Databricks-feladatok felhasználói felületén is megtekintheti és futtathatja. Lásd : Databricks-eszközcsomaggal létrehozott feladat megtekintése és futtatása.

Követelmények

  • A Databricks CLI 0.218-es 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 munkaterületen engedélyezni kell a munkaterület fájljait. Lásd: Mik azok a munkaterületfájlok?.

Döntés: A csomag létrehozása sablonnal vagy manuálisan

Döntse el, hogy sablonnal vagy manuálisan szeretné-e létrehozni a csomagot:

A csomag létrehozása sablonnal

Ezekben a lépésekben a pythonhoz készült Azure Databricks alapértelmezett csomagsablonjával hozza létre a csomagot, amely egy jegyzetfüzetből vagy Python-kódból áll, és egy feladat definíciójával párosítva futtatja azt. Ezután érvényesítheti, üzembe helyezheti és futtathatja az üzembe helyezett feladatot az Azure Databricks-munkaterületen.

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 létrehozása

A csomag tartalmazza az üzembe helyezni kívánt összetevőket és a futtatni kívánt erőforrások beállításait.

  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 Dataricks 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. Ha azt szeretné, hogy a csomag tartalmazzon egy mintajegyzetfüzetet Include a stub (sample) notebook, akkor nyomja le az alapértelmezett értéket yesEnter. Ez létrehoz egy mintajegyzetfüzetet a src csomag könyvtárában.

  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, és nyissa meg ezt a könyvtárat az előnyben részesített IDE-vel, például a Visual Studio Code-tal. 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 határozza meg a feladat beállításait.
  • src/notebook.ipynb: Ez a fájl egy jegyzetfü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ón belüli leképezések megfelelnek a feladat-létrehozási művelet kérelem hasznos adatainak a POST /api/2.1/jobs/create rest API-referenciában meghatározott hasznos adatainak, YAML formátumban kifejezve.

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ó JSON-reprezentációjá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 futtatja az Azure Databricks-feladatot a munkaterületen.

  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.

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

Elérte a csomag sablonnal történő létrehozásának lépéseinek végét.

A csomag manuális létrehozása

Ezekben a lépésekben az alapoktól létre kell hoznia egy csomagot. Ez az egyszerű csomag két jegyzetfüzetből és egy Azure Databricks-feladat definícióból áll a jegyzetfüzetek futtatásához. Ezután érvényesítheti, üzembe helyezheti és futtathatja az üzembe helyezett jegyzetfüzeteket a feladatból az Azure Databricks-munkaterületen. Ezek a lépések automatizálják az első munkafolyamat létrehozása Azure Databricks-feladattal című rövid útmutatót.

1. lépés: A csomag létrehozása

A csomag tartalmazza az üzembe helyezni kívánt összetevőket és a futtatni kívánt erőforrások beállításait.

  1. Hozzon létre vagy azonosítsan egy üres könyvtárat a fejlesztői gépen.
  2. Váltson a terminál üres könyvtárára, vagy nyissa meg az üres könyvtárat az IDE-ben.

Tipp.

Az üres könyvtár egy Git-szolgáltató által felügyelt klónozott adattárhoz társítható. Ez lehetővé teszi, hogy külső verziókövetéssel kezelje a csomagot, és könnyebben együttműködjön más fejlesztőkkel és informatikai szakemberekkel a projektben. A bemutató egyszerűsítése érdekében azonban itt nem használ klónozott adattárat.

Ha úgy dönt, hogy klónozza az adattárat ehhez a bemutatóhoz, a Databricks azt javasolja, hogy az adattár üres legyen, vagy csak alapszintű fájlokat tartalmaz, például README és .gitignore. Ellenkező esetben előfordulhat, hogy az adattárban lévő meglévő fájlok szükségtelenül szinkronizálódnak az Azure Databricks-munkaterülettel.

2. lépés: Jegyzetfüzetek hozzáadása a projekthez

Ebben a lépésben két jegyzetfüzetet ad hozzá a projekthez. Az első jegyzetfüzet 2007 óta lekéri a népszerű babaneveket a New York-i Egészségügyi Minisztérium nyilvános adatforrásaiból. Lásd : Baby Names: Trending by Name: Beginning 2007 on the department's website. Ez az első jegyzetfüzet ezután menti ezeket az adatokat az Azure Databricks-munkaterület mappájába FileStore a DBFS-ben. A második jegyzetfüzet lekérdezi a mentett adatokat, és megjeleníti a babanevek összesített számát utónév és nem szerint 2014-ben.

  1. A könyvtár gyökeréből hozza létre az első jegyzetfüzetet, egy nevű fájlt retrieve-baby-names.py.

  2. Adja a következő kódot a retrieve-baby-names.py fájlhoz:

    # Databricks notebook source
    import requests
    
    response = requests.get('http://health.data.ny.gov/api/views/myeu-hzra/rows.csv')
    csvfile = response.content.decode('utf-8')
    dbutils.fs.put("dbfs:/FileStore/babynames.csv", csvfile, True)
    
  3. Hozza létre a második jegyzetfüzetet, egy fájlt filter-baby-names.pyugyanabban a könyvtárban.

  4. Adja a következő kódot a filter-baby-names.py fájlhoz:

    # Databricks notebook source
    babynames = spark.read.format("csv").option("header", "true").option("inferSchema", "true").load("dbfs:/FileStore/babynames.csv")
    babynames.createOrReplaceTempView("babynames_table")
    years = spark.sql("select distinct(Year) from babynames_table").rdd.map(lambda row : row[0]).collect()
    years.sort()
    dbutils.widgets.dropdown("year", "2014", [str(x) for x in years])
    display(babynames.filter(babynames.Year == dbutils.widgets.get("year")))
    

3. lépés: Csomagkonfigurációs sémafájl hozzáadása a projekthez

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, az IDE használatával nem csak a csomagkonfigurációs sémafájlt hozhatja létre, hanem ellenőrizheti a projekt csomagkonfigurációs fájlszintaxisát és formázását, valamint a kódkiegészítési tippeket, Következőképpen. Vegye figyelembe, hogy bár az 5. lépésben később létrehozott csomagkonfigurációs fájl YAML-alapú, az ebben a lépésben található csomagkonfigurációs sémafájl JSON-alapú.

Visual Studio-kód

  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. Vegye figyelembe, hogy az 5. lépésben a következő megjegyzést fogja hozzáadni a csomagkonfigurációs fájl elejéhez, amely a csomagkonfigurációs fájlt a megadott JSON-sémafájlhoz társítja:

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

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. Vegye figyelembe, hogy az 5. lépés későbbi részében a PyCharm használatával fog létrehozni vagy megnyitni egy csomagkonfigurációs fájlt. Konvenció szerint ez a fájl neve databricks.yml.

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. Vegye figyelembe, hogy az 5. lépés későbbi részében az IntelliJ IDEA használatával fog létrehozni vagy megnyitni egy csomagkonfigurációs fájlt. Konvenció szerint ez a fájl neve databricks.yml.

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

5. lépés: Csomagkonfigurációs fájl hozzáadása a projekthez

Ebben a lépésben meghatározza, hogyan szeretné üzembe helyezni és futtatni a két jegyzetfüzetet. Ebben a bemutatóban egy Azure Databricks-feladat használatával szeretné futtatni az első, majd a második jegyzetfüzetet. Mivel az első jegyzetfüzet menti az adatokat, és a második jegyzetfüzet lekérdezi a mentett adatokat, azt szeretné, hogy az első jegyzetfüzet futtassa a második jegyzetfüzet elindítása előtt. Ezeket a célkitűzéseket egy csomagkonfigurációs fájlban modellezheti a projektben.

  1. A címtár gyökeréből hozza létre a csomagkonfigurációs fájlt, egy nevű databricks.ymlfájlt.
  2. Adja hozzá a következő kódot a databricks.yml fájlhoz, és cserélje le <workspace-url> például https://adb-1234567890123456.7.azuredatabricks.neta munkaterületenkénti URL-címet. Ennek az URL-címnek meg kell egyeznie a .databrickscfg fájlban lévő url-címével:

Tipp.

Az első sor csak akkor szükséges, # yaml-language-serverha az IDE támogatja azt. Részletekért lásd a 3. lépést.

# yaml-language-server: $schema=bundle_config_schema.json
bundle:
  name: baby-names

resources:
  jobs:
    retrieve-filter-baby-names-job:
      name: retrieve-filter-baby-names-job
      job_clusters:
        - job_cluster_key: common-cluster
          new_cluster:
            spark_version: 12.2.x-scala2.12
            node_type_id: Standard_DS3_v2
            num_workers: 1
      tasks:
        - task_key: retrieve-baby-names-task
          job_cluster_key: common-cluster
          notebook_task:
            notebook_path: ./retrieve-baby-names.py
        - task_key: filter-baby-names-task
          depends_on:
            - task_key: retrieve-baby-names-task
          job_cluster_key: common-cluster
          notebook_task:
            notebook_path: ./filter-baby-names.py

targets:
  development:
    workspace:
      host: <workspace-url>

A feladatok testreszabásához a feladatdeklaráción belüli leképezések megfelelnek a feladat-létrehozási művelet kérelem hasznos adatainak a POST /api/2.1/jobs/create rest API-referenciában meghatározott hasznos adatainak, YAML formátumban kifejezve.

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.

6. 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 Parancs futtatásához használja a Databricks parancssori felületét az bundle validate alábbiak szerint:

    databricks bundle validate
    
  2. Ha a csomagkonfiguráció JSON-reprezentációjá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.

7. lépés: A helyi projekt üzembe helyezése a távoli munkaterületen

Ebben a lépésben üzembe helyezi a két helyi jegyzetfüzetet a távoli Azure Databricks-munkaterületen, és létrehozza az Azure Databricks-feladatot a munkaterületen belül.

  1. A Databricks parancssori felületével futtassa a parancsot az bundle deploy alábbiak szerint:

    databricks bundle deploy -t development
    
  2. Ellenőrizze, hogy a két 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 > baby-names > development > files mappába. A két 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 retrieve-filter-baby-names-job elemre.

  6. Kattintson a Feladatok fülre. Két feladatnak kell lennie: retrieve-baby-names-task és filter-baby-names-task.

Ha a lépés után módosítja a csomagot, ismételje meg a 6–7. lépést annak ellenőrzéséhez, hogy a csomagkonfiguráció továbbra is érvényes-e, majd helyezze újra üzembe a projektet.

8. lépés: Az üzembe helyezett projekt futtatása

Ebben a lépésben futtatja az Azure Databricks-feladatot a munkaterületen.

  1. A Parancs futtatásához használja a Databricks parancssori felületét az bundle run alábbiak szerint:

    databricks bundle run -t development retrieve-filter-baby-names-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.

  3. Az Azure Databricks-munkaterületen a két feladat sikeres végrehajtása és zöld címsorok megjelenítése után kattintson a filter-baby-names-task tevékenységre a lekérdezés eredményeinek megtekintéséhez.

Ha a lépés után módosítja a csomagot, ismételje meg a 6–8. lépést annak ellenőrzéséhez, hogy a csomagkonfiguráció továbbra is érvényes-e, újra üzembe helyezi a projektet, és futtassa az újra üzembe helyezési projektet.

9. lépés: Tisztítás

Ebben a lépésben törli a két üzembe helyezett jegyzetfüzetet és a feladatot a munkaterületről.

  1. A Parancs futtatásához használja a Databricks parancssori felületét az bundle destroy alábbiak szerint:

    databricks bundle destroy
    
  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üzetek törlési kérelmét: 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.

A bundle destroy parancs futtatása csak az üzembe helyezett feladatot és a két üzembe helyezett jegyzetfüzetet tartalmazó mappát törli. Ez a parancs nem töröl semmilyen mellékhatást, például az babynames.csv első jegyzetfüzet által létrehozott fájlt. A fájl törléséhez babybnames.csv tegye a következőket:

  1. Az Azure Databricks-munkaterület oldalsávjában kattintson a Katalógus elemre.
  2. Kattintson a Tallózás a DBFS-ben elemre.
  3. Kattintson a FileStore mappára.
  4. Kattintson a babynames.csv melletti legördülő nyílra, majd a Törlés gombra.
  5. Ha a csomagot is törölni szeretné a fejlesztői gépről, akkor most már törölheti a helyi könyvtárat az 1. lépésből.

Meglévő feladatdefiníció hozzáadása csomaghoz

A meglévő feladatdefiníciók alapján definiálhat egy új feladatot egy csomagkonfigurációs fájlban. Ehhez hajtsa végre az alábbi műveleteket.

Feljegyzés

Az alábbi lépések egy olyan új feladatot hoznak létre, amelynek a beállításai megegyeznek a meglévő feladat beállításaival. Az új feladat azonban más feladatazonosítóval rendelkezik, mint a meglévő feladat. Meglévő feladatazonosítót nem importálhat automatikusan egy csomagba.

1. lépés: A meglévő feladatdefiníció lekérése YAML formátumban

Ebben a lépésben az Azure Databricks-munkaterület felhasználói felületével szerezze be a meglévő feladatdefiníció YAML-ábrázolását.

  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 három pontra, majd a YAML megtekintése parancsra.
  4. A Létrehozás lapon másolja a feladatdefiníció YAML-jét a helyi vágólapra a Másolás gombra kattintva.

2. lépés: A feladatdefiníció YAML-jének hozzáadása egy csomagkonfigurációs fájlhoz

A csomagkonfigurációs fájlban adja hozzá az előző lépésből kimásolt YAML-et a csomagkonfigurációs fájlokban megjelölt <job-yaml-can-go-here> alábbi helyek egyikéhez az alábbiak szerint:

resources:
  jobs:
    <some-unique-programmatic-identifier-for-this-job>:
      <job-yaml-can-go-here>

targets:
  <some-unique-programmatic-identifier-for-this-target>:
    resources:
      jobs:
        <some-unique-programmatic-identifier-for-this-job>:
          <job-yaml-can-go-here>

3. lépés: Jegyzetfüzetek, Python-fájlok és egyéb összetevők hozzáadása a csomaghoz

A meglévő feladatban hivatkozott Python-fájlokat és jegyzetfüzeteket át kell helyezni a csomag forrásaiba.

A csomagok jobb kompatibilitása érdekében a jegyzetfüzeteknek az IPython notebook formátumot (.ipynb) kell használniuk. Ha helyileg fejleszti a csomagot, exportálhat egy meglévő jegyzetfüzetet egy Azure Databricks-munkaterületről 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. Konvenció szerint ezután a letöltött jegyzetfüzetet a csomag könyvtárába src/ kell helyeznie.

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ó hivatkozik rájuk. Például egy olyan jegyzetfüzet esetében, amelynek fájlneve hello.ipynb egy src/ könyvtárban található, és a src/ könyvtár ugyanabban a mappában van, mint a címtárra hivatkozó src/ csomagkonfigurációs fájl, a feladatdefiníció a következőképpen fejezhető ki:

resources:
  jobs:
    hello-job:
      name: hello-job
      tasks:
      - task_key: hello-task
        notebook_task:
          notebook_path: ./src/hello.ipynb

4. lépés: Az új feladat ellenőrzése, üzembe helyezése és futtatása

  1. Ellenőrizze, hogy a csomag konfigurációs fájljai szintaktikailag helyesek-e a következő parancs futtatásával:

    databricks bundle validate
    
  2. Telepítse a csomagot az alábbi parancs futtatásával. Ebben a parancsban cserélje le <target-identifier> a cél egyedi programozott azonosítóját a csomagkonfigurációból:

    databricks bundle deploy -t <target-identifier>
    
  3. Futtassa a feladatot a következő paranccsal.

    databricks bundle run -t <target-identifier> <job-identifier>
    
    • Cserélje le <target-identifier> a cél egyedi programozott azonosítóját a csomagkonfigurációból.
    • Cserélje le <job-identifier> a feladat egyedi programozott azonosítóját a csomagkonfigurációból.

Kiszolgáló nélküli számítást használó feladat konfigurálása

Fontos

A munkafolyamatok kiszolgáló nélküli számítása nyilvános előzetes verzióban érhető el. A jogosultságról és az engedélyezésről további információt a kiszolgáló nélküli számítási nyilvános előzetes verzió engedélyezése című témakörben talál.

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.