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


Databricks Asset Bundles-erőforrások

A Databricks-eszközcsomagok lehetővé teszik a csomag által használt Azure Databricks-erőforrásokra vonatkozó információk megadását a csomagkonfiguráció resources leképezésében. Lásd: erőforrások leképezése és erőforrás-kulcs referencia.

Ez a cikk a csomagok támogatott erőforrástípusait ismerteti, és részletes információkat és példákat tartalmaz az egyes támogatott típusokhoz. További példákért lásd Csomagkonfigurációs példákat.

Borravaló

A YAML bármely meglévő erőforráshoz való létrehozásához használja a databricks bundle generate parancsot. Lásd: Csomagkonfigurációs fájl létrehozása.

támogatott erőforrások

Az alábbi táblázat a csomagok támogatott erőforrástípusait sorolja fel. Egyes erőforrások úgy hozhatók létre, hogy egy csomagban definiálják őket, és üzembe helyezik a csomagot, és egyes erőforrások csak egy meglévő erőforrásra hivatkoznak, amelyet belefoglalhatnak a csomagba.

Az erőforrásokat a Databricks REST API objektum létrehozási műveletének kérés adatainak törzse alapján definiáljuk, ahol az objektum által támogatott mezők, a YAML formátum szerint, az erőforrás támogatott tulajdonságai. Az egyes erőforrások megfelelő payloadjainak dokumentációjára mutató hivatkozások szerepelnek a táblázatban.

Borravaló

A databricks bundle validate parancs figyelmeztetéseket ad vissza, ha ismeretlen erőforrástulajdonságok találhatók a csomagkonfigurációs fájlokban.

Erőforrás Támogatás létrehozása Megfelelő REST API-objektum
alkalmazás alkalmazásobjektum
klaszter klaszter objektum
irányítópult irányítópult-objektum
kísérlet kísérletobjektum
feladat feladatobjektum
modell (örökölt) Modell (örökölt) objektum
modell_kiszolgáló_végpont végpontobjektumot kiszolgáló modell
csővezeték folyamatobjektum
minőség_ellenőrző Minőségfigyelő objektum
regisztrált_modell (Unity Katalógus) regisztrált modellobjektum
séma (Unity Catalog) séma-objektum
tárolóegység (Unity Catalog) Kötet objektum

alkalmazás

Az alkalmazáserőforrás definiál egy Databricks-alkalmazást. További információ a Databricks Appsről: Mi az a Databricks Apps?.

Borravaló

Streamlit Databricks-alkalmazással inicializálhat egy csomagot az alábbi paranccsal:

databricks bundle init https://github.com/databricks/bundle-examples --template-dir contrib/templates/streamlit-app

Alkalmazás hozzáadásához adja meg az alkalmazást meghatározó objektummezőket, valamint a következőket:

  • source_code_path – A Databricks alkalmazás forráskódjának ./app helyi elérési útja. Ez a mező kötelező.
  • config – Az alkalmazáskonfigurációs parancsok és a környezeti változók. Ezzel különböző alkalmazástelepítési célokat adhat meg.

Példa

Az alábbi példa egy my_app nevű alkalmazást hoz létre, amely kezeli a csomag által létrehozott feladatot:

resources:
  jobs:
    # Define a job in the bundle
    hello_world:
      name: hello_world
      tasks:
        - task_key: task
          spark_python_task:
            python_file: ../src/main.py
          environment_key: default

      environments:
        - environment_key: default
          spec:
            client: '1'

  # Define an app that manages the job in the bundle
  apps:
    job_manager:
      name: 'job_manager_app'
      description: 'An app which manages a job created by this bundle'

      # The location of the source code for the app
      source_code_path: ../src/app

      # The configuration for running the app
      config:
        command:
          - flask
          - --app
          - app
          - run
          - --debug
        env:
          - name: JOB_ID
            value: ${resources.jobs.hello_world.id}

      # The resources in the bundle which this app has access to. This binds the resource in the app with the DABs resource.
      resources:
        - name: 'app-job'
          job:
            id: ${resources.jobs.hello_world.id}
            permission: 'CAN_MANAGE_RUN'

A Databricks alkalmazás teljes példacsomagját a példacsomagok GitHub-adattárban találja.

klaszter

A klasztererőforrás egy minden célra használható klasztert határoz meg .

Példa

Az alábbi példa létrehoz egy my_cluster nevű fürtöt, és beállítja azt, mint a jegyzetfüzet futtatására használt fürtet a my_job-ben.

bundle:
  name: clusters

resources:
  clusters:
    my_cluster:
      num_workers: 2
      node_type_id: 'i3.xlarge'
      autoscale:
        min_workers: 2
        max_workers: 7
      spark_version: '13.3.x-scala2.12'
      spark_conf:
        'spark.executor.memory': '2g'

  jobs:
    my_job:
      tasks:
        - task_key: test_task
          notebook_task:
            notebook_path: './src/my_notebook.py'

irányítópult

Az irányítópult-erőforrás lehetővé teszi AI/BI-irányítópultok csomagban kezelését. Az AI/BI-irányítópultokról további információt Irányítópultokcímű témakörben talál.

Példa

Az alábbi példa bemutatja, hogyan lehet a NYC Taxi Trip Analysis irányítópultot telepíteni a Databricks munkaterületre.

resources:
  dashboards:
    nyc_taxi_trip_analysis:
      display_name: 'NYC Taxi Trip Analysis'
      file_path: ../src/nyc_taxi_trip_analysis.lvdash.json
      warehouse_id: ${var.warehouse_id}

Ha a felhasználói felületen módosítja az irányítópultot, a felhasználói felületen végrehajtott módosítások nem lesznek alkalmazva az irányítópult JSON-fájljára a helyi csomagban, kivéve, ha explicit módon frissíti azt a bundle generatehasználatával. A --watch lehetőséggel folyamatos lekérdezéseket végezhet és frissítheti az irányítópult módosításait. Lásd: Csomagkonfigurációs fájl létrehozása.

Ezenkívül, ha olyan csomagot próbál üzembe helyezni, amely egy olyan irányítópult JSON-fájlt tartalmaz, amely eltér a távoli munkaterületen találhatótól, hiba történik. Ha a távoli munkaterületen a helyivel szeretné kényszeríteni az irányítópult üzembe helyezését és felülírását, használja a --force lehetőséget. Lásd a csomagüzembe helyezését.

kísérlet

A kísérleterőforrás lehetővé teszi, hogy MLflow-kísérleteket egy csomagban definiáljon. További információ az MLflow-kísérletekről: Betanítási futtatások rendszerezése MLflow-kísérletekkel.

Példa

Az alábbi példa egy olyan kísérletet határoz meg, amelyet minden felhasználó megtekinthet:

resources:
  experiments:
    experiment:
      name: my_ml_experiment
      permissions:
        - level: CAN_READ
          group_name: users
      description: MLflow experiment used to track runs

feladat

A munkaforrás lehetővé teszi, hogy munkákat és azok hozzátartozó feladatait a csomagban definiálja. További információ a feladatokról: A Databricksvezénylésének áttekintése. A Databricks Asset Bundles-sablont a feladat létrehozásához használó oktatóanyagért lásd: Feladat fejlesztése az Azure Databricksben a Databricks Asset Bundleshasználatával.

Példa

Az alábbi példa meghatároz egy munkát az hello-job erőforrás kulcsával, amely egy jegyzetfüzet-feladatot tartalmaz:

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

A feladattevékenységek meghatározásáról és a feladatbeállítások felülbírálásáról további információt a Feladatok hozzáadása a Databricks Asset Bundles, a Databricks Asset Bundles feladatbeállításainak felülbírálása, valamint a Databricks Asset Bundles fürtbeállításainak felülbírálásaszakaszban talál.

modell (örökölt)

A modellerőforrás lehetővé teszi, hogy örökölt modelleket kötegekben definiálja. A Databricks inkább azt javasolja, hogy a Unity Catalog által regisztrált modelleket használja.

modellszolgáltatási végpont

A model_serving_endpoint erőforrás lehetővé teszi modellek kiszolgálási végpontjainak definiálását. Lásd: Végpontokat kiszolgáló modell kezelése.

Példa

Az alábbi példa egy végpontot kiszolgáló Unity Catalog-modellt határoz meg:

resources:
  model_serving_endpoints:
    uc_model_serving_endpoint:
      name: 'uc-model-endpoint'
      config:
        served_entities:
          - entity_name: 'myCatalog.mySchema.my-ads-model'
            entity_version: '10'
            workload_size: 'Small'
            scale_to_zero_enabled: 'true'
        traffic_config:
          routes:
            - served_model_name: 'my-ads-model-10'
              traffic_percentage: '100'
      tags:
        - key: 'team'
          value: 'data science'

quality_monitor (Unity Catalog)

A quality_monitor erőforrás lehetővé teszi egy Unity Catalog táblamonitormeghatározását. A monitorokról további információt a Modell minőségének és a végpont állapotának figyelésecímű témakörben talál.

Példa

Az alábbi példa egy minőségi monitorozást határoz meg:

resources:
  quality_monitors:
    my_quality_monitor:
      table_name: dev.mlops_schema.predictions
      output_schema_name: ${bundle.target}.mlops_schema
      assets_dir: /Users/${workspace.current_user.userName}/databricks_lakehouse_monitoring
      inference_log:
        granularities: [1 day]
        model_id_col: model_id
        prediction_col: prediction
        label_col: price
        problem_type: PROBLEM_TYPE_REGRESSION
        timestamp_col: timestamp
      schedule:
        quartz_cron_expression: 0 0 8 * * ? # Run Every day at 8am
        timezone_id: UTC

regisztrált_modell (Unity Catalog)

A regisztrált modellerőforrás lehetővé teszi modellek meghatározását a Unity Catalogban. További információ a Unity Catalog regisztrált modellekrőla "A modell életciklusának kezelése a Unity Katalógusban"című témakörben található.

Példa

Az alábbi példa egy regisztrált modellt határoz meg a Unity Catalogban:

resources:
  registered_models:
    model:
      name: my_model
      catalog_name: ${bundle.target}
      schema_name: mlops_schema
      comment: Registered model in Unity Catalog for ${bundle.target} deployment target
      grants:
        - privileges:
            - EXECUTE
          principal: account users

adatfolyam

A pipeline erőforrás lehetővé teszi DLT-csővezetékeklétrehozását. További információ a csővezetékekről: lásd Mi az a DLT?. A Databricks-eszközcsomagok sablont folyamat létrehozásához használó oktatóanyagért tekintse meg DLT-folyamatok fejlesztése Databricks-eszközcsomagokkal.

Példa

Az alábbi példa egy pipeline-t határoz meg az erőforráskulcs hello-pipelinesegítségével.

resources:
  pipelines:
    hello-pipeline:
      name: hello-pipeline
      clusters:
        - label: default
          num_workers: 1
      development: true
      continuous: false
      channel: CURRENT
      edition: CORE
      photon: false
      libraries:
        - notebook:
            path: ./pipeline.py

séma (Unity Catalog)

A sémaerőforrás-típus lehetővé teszi, hogy a Unity Catalog sémáit meghatározza a táblákhoz és egyéb erőforrásokhoz a csomag részeként létrehozott munkafolyamatok és adatcsővezetétek során. A más erőforrástípusoktól eltérő sémákra a következő korlátozások vonatkoznak:

  • A sémaerőforrás tulajdonosa mindig az üzembe helyezés felhasználója, és nem módosítható. Ha a csomagban run_as van megadva, azt a séma műveletei figyelmen kívül hagyják.
  • Csak azok a mezők érhetők el a séma erőforráshoz, amelyeket a megfelelő Sémaobjektum létrehozó API támogat. A enable_predictive_optimization például nem támogatott, mivel csak a frissítési API-érhető el.

Példák

Az alábbi példa egy my_pipeline erőforráskulccsal rendelkező folyamatot határoz meg, amely létrehoz egy Unity Catalog sémát my_schema kulccsal, mint célt.

resources:
  pipelines:
    my_pipeline:
      name: test-pipeline-{{.unique_id}}
      libraries:
        - notebook:
            path: ./nb.sql
      development: true
      catalog: main
      target: ${resources.schemas.my_schema.id}

  schemas:
    my_schema:
      name: test-schema-{{.unique_id}}
      catalog_name: main
      comment: This schema was created by DABs.

A Databricks-eszközcsomagok nem támogatják a legfelső szintű vissza nem térítendő támogatásokat, ezért ha egy sémához szeretne támogatást beállítani, adja meg a sémához tartozó támogatásokat a schemas leképezésen belül. További információ a támogatásokról: Jogosultságok megjelenítése, megadása és visszavonása.

Az alábbi példa egy Unity Catalog-sémát határoz meg támogatásokkal:

resources:
  schemas:
    my_schema:
      name: test-schema
      grants:
        - principal: users
          privileges:
            - SELECT
        - principal: my_team
          privileges:
            - CAN_MANAGE
      catalog_name: main

kötet (Unity Catalog)

A kötet erőforrástípusa lehetővé teszi a Unity Catalog kötetek definiálását és létrehozását csomag részeként. Amikor egy kötettel rendelkező csomagot helyez üzembe, vegye figyelembe, hogy:

  • Addig nem lehet hivatkozni egy kötetre a artifact_path csomagban, amíg az a munkaterületen nem létezik. Ezért ha a Databricks Asset Bundles segítségével szeretné létrehozni a kötetet, először meg kell határoznia a kötetet a csomagban, telepítenie kell, hogy létrehozza a kötetet, majd hivatkoznia kell rá a artifact_path a későbbi telepítések során.
  • A csomagban lévő kötetek nincsenek dev_${workspace.current_user.short_name} előtaggal ellátva, ha a telepítési célpont mode: development konfigurálva van. Ezt az előtagot azonban manuálisan is konfigurálhatja. Lásd: Egyéni beállítások.

Példa

Az alábbi példa egy Unity Catalog-kötetet hoz létre a my_volumekulccsal:

resources:
  volumes:
    my_volume:
      catalog_name: main
      name: my_volume
      schema_name: my_schema

A Unity Catalog-kötetben egy fájlba író feladatot futtató példacsomagért tekintse meg a csomagpéldák GitHub-adattárát.