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


Databricks-eszközcsomag konfigurációja

Ez a cikk a Databricks-eszközcsomag konfigurációs fájljainak szintaxisát ismerteti, amelyek a Databricks-eszközcsomagokat határozzák meg. Mik azok a Databricks-eszközcsomagok?

A csomagok létrehozásához és használatához lásd a Databricks Asset Bundles fejlesztés témakörét.

Áttekintés

A csomagkonfigurációs fájlt YAML formátumban kell kifejezni, és legalább a legfelső szintű csomagleképezést kell tartalmaznia . Minden csomagnak legalább egy (és csak egy) nevű csomagkonfigurációs fájlt databricks.ymlkell tartalmaznia. Ha több csomagkonfigurációs fájl is létezik, a fájlnak hivatkoznia kell rájuk a databricks.ymlinclude leképezés használatával.

Az egyes legfelső szintű leképezésekről további információt a Leképezésekcímű témakörben talál.

A YAML-ről további információt a YAML hivatalos specifikációjában és oktatóanyagában talál.

Előírás

Az alábbi YAML-specifikáció a Databricks-eszközcsomagok legfelső szintű konfigurációs kulcsait tartalmazza. Konfigurációs referencia: Konfigurációs referencia.

# This is the default bundle configuration if not otherwise overridden in
# the "targets" top-level mapping.
bundle: # Required.
  name: string # Required.
  databricks_cli_version: string
  cluster_id: string
  git:
    origin_url: string
    branch: string

# These are for any custom variables for use throughout the bundle.
variables:
  <some-unique-variable-name>:
    description: string
    default: string or complex

# These are the default workspace settings if not otherwise overridden in
# the following "targets" top-level mapping.
workspace:
  artifact_path: string
  auth_type: string
  azure_client_id: string # For Azure Databricks only.
  azure_environment: string # For Azure Databricks only.
  azure_login_app_id: string # For Azure Databricks only. Non-operational and reserved for future use.
  azure_tenant_id: string # For Azure Databricks only.
  azure_use_msi: true | false # For Azure Databricks only.
  azure_workspace_resource_id: string # For Azure Databricks only.
  client_id: string # For Databricks on AWS only.
  file_path: string
  google_service_account: string # For Databricks on Google Cloud only.
  host: string
  profile: string
  root_path: string
  state_path: string

# These are the permissions to apply to experiments, jobs, models, and pipelines defined
# in the "resources" mapping.
permissions:
  - level: <permission-level>
    group_name: <unique-group-name>
  - level: <permission-level>
    user_name: <unique-user-name>
  - level: <permission-level>
    service_principal_name: <unique-principal-name>

# These are the default artifact settings if not otherwise overridden in
# the following "targets" top-level mapping.
artifacts:
  <some-unique-artifact-identifier>:
    build: string
    files:
      - source: string
    path: string
    type: string

# These are any additional configuration files to include.
include:
  - "<some-file-or-path-glob-to-include>"
  - "<another-file-or-path-glob-to-include>"

# This is the identity to use to run the bundle
run_as:
  - user_name: <user-name>
  - service_principal_name: <service-principal-name>

# These are the default job and pipeline settings if not otherwise overridden in
# the following "targets" top-level mapping.
resources:
  clusters:
    <some-unique-programmatic-identifier-for-this-cluster>:
      # See the REST API create request payload reference for clusters.
  dashboards:
    <some-unique-programmatic-identifier-for-this-dashboard>:
      # See the REST API create request payload reference for dashboards.
  experiments:
    <some-unique-programmatic-identifier-for-this-experiment>:
      # See the REST API create request payload reference for experiments.
  jobs:
    <some-unique-programmatic-identifier-for-this-job>:
      # See REST API create request payload reference for jobs.
  models:
    <some-unique-programmatic-identifier-for-this-model>:
      # See the REST API create request payload reference for models.
  pipelines:
    <some-unique-programmatic-identifier-for-this-pipeline>:
      # See the REST API create request payload reference for Delta Live Tables (pipelines).
  schemas:
    <some-unique-programmatic-identifier-for-this-schema>:
      # See the Unity Catalog schema request payload reference.
  volumes:
    <some-unique-programmatic-identifier-for-this-volume>:
    # See the Unity Catalog volume request payload reference.

# These are any additional files or paths to include or exclude.
sync:
  include:
    - "<some-file-or-path-glob-to-include>"
    - "<another-file-or-path-glob-to-include>"
  exclude:
    - "<some-file-or-path-glob-to-exclude>"
    - "<another-file-or-path-glob-to-exclude>"
  paths:
    - "<some-file-or-path-to-synchronize>"

# These are the targets to use for deployments and workflow runs. One and only one of these
# targets can be set to "default: true".
targets:
  <some-unique-programmatic-identifier-for-this-target>:
    artifacts:
      # See the preceding "artifacts" syntax.
    bundle:
      # See the preceding "bundle" syntax.
    cluster_id: string
    default: true | false
    mode: development
    presets:
      <preset>: <value>
    resources:
      # See the preceding "resources" syntax.
    sync:
      # See the preceding "sync" syntax.
    variables:
      <preceding-unique-variable-name>: <non-default-value>
    workspace:
      # See the preceding "workspace" syntax.
    run_as:
      # See the preceding "run_as" syntax.

Példák

Feljegyzés

A csomagfunkciókat és a csomaghasználati eseteket bemutató konfigurációs példákért tekintse meg a Csomagkonfigurációs példákat és a Csomagpéldák adattárat a GitHubon.

Az alábbi példacsomag-konfiguráció egy helyi fájlt hello.py határoz meg, amely ugyanabban a könyvtárban található, mint a helyi csomagkonfigurációs fájl neve databricks.yml. Ezt a jegyzetfüzetet feladatként futtatja a megadott fürtazonosítóval rendelkező távoli fürt használatával. A távoli munkaterület URL-címe és a munkaterület hitelesítési hitelesítő adatai a hívó DEFAULTnevű helyi konfigurációs profiljából lesznek beolvasva.

A Databricks azt javasolja, hogy a host leképezés helyett default a leképezést használja, ahol csak lehetséges, mivel ez hordozhatóbbá teszi a csomagkonfigurációs fájlokat. A host leképezés beállítása arra utasítja a Databricks parancssori felületét, hogy keressen egy megfelelő profilt a .databrickscfg fájlban, majd a profil mezőivel állapítsa meg, hogy melyik Databricks-hitelesítési típust használja. Ha a fájlban több, egyező mezővel rendelkező host profil is található .databrickscfg , akkor a profile databricks parancssori felületének segítségével meg kell adnia, hogy melyik profilt szeretné használni. Például tekintse meg a prod céldeklarációt a szakasz későbbi részében.

Ez a technika lehetővé teszi a blokkon belüli feladatdefiníciók és beállítások újbóli felhasználását és felülbírálását resources :

bundle:
  name: hello-bundle

resources:
  jobs:
    hello-job:
      name: hello-job
      tasks:
        - task_key: hello-task
          existing_cluster_id: 1234-567890-abcde123
          notebook_task:
            notebook_path: ./hello.py

targets:
  dev:
    default: true

Bár a következő csomagkonfigurációs fájl funkcionálisan egyenértékű, nem modularizált, ami nem teszi lehetővé a jó újrafelhasználást. Ez a deklaráció egy feladatot is hozzáfűz a feladathoz a meglévő feladat felülbírálása helyett:

bundle:
  name: hello-bundle

targets:
  dev:
    default: true
    resources:
      jobs:
        hello-job:
          name: hello-job
          tasks:
            - task_key: hello-task
              existing_cluster_id: 1234-567890-abcde123
              notebook_task:
                notebook_path: ./hello.py

Az alábbi példa egy célhelyet ad hozzá a prod nevű célhoz, amely egy másik távoli munkaterület URL-címét és munkaterület-hitelesítési hitelesítő adatait használja, amelyeket a hívó .databrickscfg fájljának egyező host bejegyzéséből olvas be a megadott munkaterület URL-címével. Ez a feladat ugyanazt a jegyzetfüzetet futtatja, de egy másik távoli fürtöt használ a megadott fürtazonosítóval. Figyelje meg, hogy nem kell deklarálnia a notebook_task megfeleltetést a prod leképezésen belül, mivel az visszaesik a notebook_task legfelső szintű resources leképezésen belüli leképezés használatára, ha a notebook_task megfeleltetés nincs explicit módon felülírva a prod leképezésen belül.

bundle:
  name: hello-bundle

resources:
  jobs:
    hello-job:
      name: hello-job
      tasks:
        - task_key: hello-task
          existing_cluster_id: 1234-567890-abcde123
          notebook_task:
            notebook_path: ./hello.py

targets:
  dev:
    default: true
  prod:
    workspace:
      host: https://<production-workspace-url>
    resources:
      jobs:
        hello-job:
          name: hello-job
          tasks:
            - task_key: hello-task
              existing_cluster_id: 2345-678901-fabcd456

A feladat ellenőrzése, üzembe helyezése és futtatása a célon dev belül:

# Because the "dev" target is set to "default: true",
# you do not need to specify "-t dev":
databricks bundle validate
databricks bundle deploy
databricks bundle run hello_job

# But you can still explicitly specify it, if you want or need to:
databricks bundle validate
databricks bundle deploy -t dev
databricks bundle run -t dev hello_job

A feladat érvényesítése, üzembe helyezése és futtatása a prod célon belül:

# You must specify "-t prod", because the "dev" target
# is already set to "default: true":
databricks bundle validate
databricks bundle deploy -t prod
databricks bundle run -t prod hello_job

Az alábbi példa az előző, de felosztott összetevő fájlok még több modularizálás és jobb újrafelhasználása több csomag konfigurációs fájlok. Ez a technika lehetővé teszi, hogy ne csak a különböző definíciókat és beállításokat használja újra, hanem az ilyen fájlokat más fájlokkal is felcserélheti, amelyek teljesen eltérő deklarációkat biztosítanak:

databricks.yml:

bundle:
  name: hello-bundle

include:
  - "bundle*.yml"

bundle.resources.yml:

resources:
  jobs:
    hello-job:
      name: hello-job
      tasks:
        - task_key: hello-task
          existing_cluster_id: 1234-567890-abcde123
          notebook_task:
            notebook_path: ./hello.py

bundle.targets.yml:

targets:
  dev:
    default: true
  prod:
    workspace:
      host: https://<production-workspace-url>
    resources:
      jobs:
        hello-job:
          name: hello-job
          tasks:
            - task_key: hello-task
              existing_cluster_id: 2345-678901-fabcd456

Hozzárendelések

A következő szakaszok a csomagkonfigurációs fájl szintaxisát írják le legfelső szintű leképezéssel.

csomag

A csomagkonfigurációs fájlnak csak egy legfelső szintű bundle leképezést kell tartalmaznia, amely a csomag tartalmát és az Azure Databricks-munkaterület beállításait társítja.

Ennek a bundle leképezésnek tartalmaznia kell egy leképezést name , amely a köteg programozott (vagy logikai) nevét adja meg. Az alábbi példa egy programozott (vagy logikai) névvel hello-bundlerendelkező csomagot deklarál.

bundle:
  name: hello-bundle

A bundle leképezés a legfelső szintű célok leképezésében szereplő egy vagy több cél gyermekének is lehet. Ezek a gyermekleképezések bundle minden nem alapértelmezett felülbírálást meghatároznak a célszinten. A legfelső szintű bundle leképezés name értéke azonban nem bírálható felül a célszinten.

cluster_id

A bundle leképezés gyermekleképezéssel cluster_id is rendelkezhet. Ez a leképezés lehetővé teszi egy fürt azonosítójának megadását felülbírálásként a csomagkonfigurációs fájlban máshol definiált fürtök esetében. A fürt azonosítójának lekéréséről további információt a fürt URL-címével és azonosítójával kapcsolatban talál.

A cluster_id felülbírálás csak fejlesztési forgatókönyvekhez készült, és csak azon cél esetében támogatott, amelynek mode leképezési beállítása development. A leképezésről további információt a target célokat ismertető cikkben talál.

compute_id

Feljegyzés

Ez a beállítás elavult. Használja inkább a cluster_id .

A bundle leképezés gyermekleképezéssel compute_id is rendelkezhet. Ez a leképezés lehetővé teszi egy fürt azonosítójának megadását felülbírálásként a csomagkonfigurációs fájlban máshol definiált fürtök esetében.

Git

Lekérheti és felülbírálhatja a csomaghoz társított Git-verziókövetési adatokat. Ez hasznos az üzembe helyezett erőforrások megjegyzéséhez. Előfordulhat például, hogy a telepített gépi tanulási modell leírásába bele szeretné foglalni az adattár forrás URL-címét.

Amikor olyan parancsot bundle futtat, mint validatepéldául az , deploy vagy run, a bundle parancs feltölti a parancs konfigurációs fáját az alábbi alapértelmezett beállításokkal:

  • bundle.git.origin_url, amely az adattár forrás URL-címét jelöli. Ez ugyanaz az érték, amelyet akkor kapna, ha a klónozott adattárból futtatná a git config --get remote.origin.url parancsot. A helyettesítések használatával hivatkozhat erre az értékre a csomagkonfigurációs fájlokkal, például${bundle.git.origin_url}.
  • bundle.git.branch, amely az adattár aktuális ágát jelöli. Ez ugyanaz az érték, amelyet akkor kapna, ha a klónozott adattárból futtatná a git branch --show-current parancsot. A helyettesítések használatával hivatkozhat erre az értékre a csomagkonfigurációs fájlokkal, például${bundle.git.branch}.

A Git-beállítások lekéréséhez vagy felülbírálásához a csomagnak egy Git-adattárhoz társított könyvtárban kell lennie, például egy helyi könyvtárban, amelyet a git clone parancs futtatásával inicializál. Ha a könyvtár nincs Git-adattárhoz társítva, ezek a Git-beállítások üresek.

Szükség esetén felülbírálhatja a origin_urlbranchgit legfelső szintű bundle leképezés leképezésén belüli beállításokat, az alábbiak szerint:

bundle:
  git:
    origin_url: <some-non-default-origin-url>
    branch: <some-non-current-branch-name>

databricks_cli_version

A bundle leképezés tartalmazhat olyan leképezést databricks_cli_version , amely korlátozza a csomag által igényelt Databricks CLI-verziót. Ez megakadályozhatja a Databricks parancssori felület egy bizonyos verziójában nem támogatott leképezések használatával kapcsolatos problémákat.

A Databricks CLI verziója megfelel a szemantikai verziószámozásnak, és a leképezés támogatja a databricks_cli_version verziókorlátozások megadását. Ha az aktuális databricks --version érték nem a köteg databricks_cli_version leképezésében megadott korlátokon belül van, hiba történik a kötegen történő végrehajtáskor databricks bundle validate . Az alábbi példák néhány gyakori verziókorlátozási szintaxist mutatnak be:

bundle:
  name: hello-bundle
  databricks_cli_version: "0.218.0" # require Databricks CLI 0.218.0
bundle:
  name: hello-bundle
  databricks_cli_version: "0.218.*" # allow all patch versions of Databricks CLI 0.218
bundle:
  name: my-bundle
  databricks_cli_version: ">= 0.218.0" # allow any version of Databricks CLI 0.218.0 or higher
bundle:
  name: my-bundle
  databricks_cli_version: ">= 0.218.0, <= 1.0.0" # allow any Databricks CLI version between 0.218.0 and 1.0.0, inclusive

Változók

A kötegek beállításfájlja egy legfelső szintű variables leképezést tartalmazhat, ahol egyéni változók vannak definiálva. Minden változóhoz állítson be egy opcionális leírást, alapértelmezett értéket, hogy az egyéni változó összetett típus-e, vagy keressen rá egy azonosító értékének lekéréséhez az alábbi formátum használatával:

variables:
  <variable-name>:
    description: <variable-description>
    default: <optional-default-value>
    type: <optional-type-value> # "complex" is the only valid value
    lookup:
      <optional-object-type>: <optional-object-name>

Feljegyzés

A változók stringtípusúaknak tekintendők, hacsak type nincs beállítva complex-re. Lásd: Összetett változó definiálása.

Ha egyéni változóra szeretne hivatkozni a csomagkonfiguráción belül, használja a helyettesítést ${var.<variable_name>}.

Az egyéni változókról és helyettesítésekről további információt a Databricks-eszközcsomagok helyettesítései és változói című témakörben talál.

Munkaterület

A csomagkonfigurációs fájl csak egy legfelső szintű workspace leképezést tartalmazhat a nem alapértelmezett Azure Databricks-munkaterületi beállítások megadásához.

Fontos

A Databricks-munkaterület érvényes elérési útjai vagy /Workspace/Volumesa . Az egyéni munkaterület elérési útjai automatikusan előtaggal /Workspacevannak elnevezve, így ha az egyéni elérési úton bármilyen munkaterület-helyettesítést használ, például ${workspace.file_path}, akkor nem kell előre felerősítenie /Workspace az elérési utat.

root_path

Ez a workspace megfeleltetés tartalmazhat egy olyan leképezést root_path , amely egy nem alapértelmezett gyökérelérési útvonalat határoz meg, amelyet a munkaterületen az üzembe helyezésekhez és a munkafolyamat-futtatásokhoz is használni kell, például:

workspace:
  root_path: /Workspace/Users/${workspace.current_user.userName}/.bundle/${bundle.name}/my-envs/${bundle.target}

Alapértelmezés szerint root_path a Databricks PARANCSSOR az alapértelmezett elérési utat /Workspace/Users/${workspace.current_user.userName}/.bundle/${bundle.name}/${bundle.target}használja, amely helyettesítéseket használ.

artifact_path

Ez a workspace leképezés olyan leképezést artifact_path is tartalmazhat, amely egy nem alapértelmezett összetevő elérési útját adja meg, amelyet a munkaterületen az üzembe helyezésekhez és a munkafolyamat-futtatásokhoz is használni kell, például:

workspace:
  artifact_path: /Workspace/Users/${workspace.current_user.userName}/.bundle/${bundle.name}/my-envs/${bundle.target}/artifacts

Alapértelmezés szerint artifact_path a Databricks PARANCSSOR az alapértelmezett elérési utat ${workspace.root}/artifactshasználja, amely helyettesítéseket használ.

Feljegyzés

A artifact_path leképezés nem támogatja a Databricks Fájlrendszer (DBFS) elérési útját.

file_path

Ez a workspace megfeleltetés olyan leképezést file_path is tartalmazhat, amely egy nem alapértelmezett fájlelérési útvonalat határoz meg, amelyet a munkaterületen az üzembe helyezésekhez és a munkafolyamat-futtatásokhoz is használni kell, például:

workspace:
  file_path: /Workspace/Users/${workspace.current_user.userName}/.bundle/${bundle.name}/my-envs/${bundle.target}/files

Alapértelmezés szerint file_path a Databricks PARANCSSOR az alapértelmezett elérési utat ${workspace.root}/fileshasználja, amely helyettesítéseket használ.

state_path

A state_path leképezés alapértelmezés szerint a munkaterület alapértelmezett elérési útjának ${workspace.root}/state felel meg, és a munkaterületen belül a Terraform állapotinformációinak tárolására szolgál az üzemelő példányokról.

Egyéb munkaterület-leképezések

A workspace leképezés a következő választható leképezéseket is tartalmazhat a használni kívánt Azure Databricks hitelesítési mechanizmus megadásához. Ha nincsenek megadva ezen workspace a leképezésen belül, a leképezésben workspace meg kell adni őket a legfelső szintű célok leképezésének egy vagy több példányának gyermekeként.

Fontos

Az Azure Databricks-hitelesítéshez a következő workspace leképezésekhez szigorú kódértékeket kell megadnia. Például a szintaxissal nem adhatja meg ${var.*} ezek értékeihez.

  • A profile leképezés (vagy a --profile-p köteg futtatásakor a csomag ellenőrzése, üzembe helyezése, futtatása és megsemmisítése a Databricks parancssori felülettel) megadja a munkaterülethez az Azure Databricks-hitelesítéshez használandó konfigurációs profil nevét. Ez a konfigurációs profil megfelel a Databricks parancssori felület beállításakor létrehozott profilnak.

    Feljegyzés

    A Databricks azt javasolja, hogy a leképezés helyett a leképezés helyett host a --profile leképezést (vagy -p a profile csomag ellenőrzése, üzembe helyezése, futtatása és megsemmisítése parancsok futtatásakor a beállításokat vagy beállításokat) használja, mivel ez hordozhatóbbá teszi a csomagkonfigurációs fájlokat. A host leképezés beállítása arra utasítja a Databricks parancssori felületét, hogy keressen egy megfelelő profilt a .databrickscfg fájlban, majd a profil mezőivel állapítsa meg, hogy melyik Databricks-hitelesítési típust használja. Ha a fájlban több, egyező mezővel rendelkező host profil található.databrickscfg, akkor a profile leképezéssel (vagy --profile a -p parancssori beállításokkal) meg kell adnia a Databricks parancssori felületének, hogy melyik profilt használja. Példaként tekintse meg a prod példában szereplő céldeklarációt.

  • A host leképezés megadja az Azure Databricks-munkaterület URL-címét. Lásd a munkaterületenkénti URL-címet.

  • Az OAuth machine-to-machine (M2M) hitelesítéshez a leképezést client_id használja a rendszer. Másik lehetőségként beállíthatja ezt az értéket a helyi környezeti változóban DATABRICKS_CLIENT_ID. Létrehozhat egy konfigurációs profilt az client_id értékkel, majd megadhatja a profil nevét a profile leképezéssel (vagy a --profile csomag ellenőrzése, üzembe helyezése, futtatása és megsemmisítése parancsok a Databricks parancssori felülettel való futtatásakor vagy -p a beállítások használatával). Lásd: Felügyelet nélküli hozzáférés engedélyezése az Azure Databricks-erőforrásokhoz egy egyszerű szolgáltatásnévvel az OAuthhasználatával.

    Feljegyzés

    A csomagkonfigurációs fájlban nem adhat meg Azure Databricks OAuth titkos értéket. Ehelyett állítsa be a helyi környezeti változót DATABRICKS_CLIENT_SECRET. Vagy hozzáadhatja az client_secret értéket egy konfigurációs profilhoz, majd megadhatja a profil nevét a profile leképezéssel (vagy a --profile csomag ellenőrzése, üzembe helyezése, futtatása és megsemmisítése parancsok a Databricks parancssori felülettel való futtatásakor vagy -p a beállítások használatával).

  • Az Azure CLI-hitelesítéshez a leképezést azure_workspace_resource_id használja a rendszer. Másik lehetőségként beállíthatja ezt az értéket a helyi környezeti változóban DATABRICKS_AZURE_RESOURCE_ID. Létrehozhat egy konfigurációs profilt az azure_workspace_resource_id értékkel, majd megadhatja a profil nevét a profile leképezéssel (vagy a --profile csomag ellenőrzése, üzembe helyezése, futtatása és megsemmisítése parancsok a Databricks parancssori felülettel való futtatásakor vagy -p a beállítások használatával). Lásd: Azure CLI-hitelesítés.

  • Az Azure-ügyfél titkos hitelesítése szolgáltatásnevek használatával, a leképezések azure_workspace_resource_idazure_tenant_idés azure_client_id a használatuk. Másik lehetőségként beállíthatja ezeket az értékeket a helyi környezeti változókban, DATABRICKS_AZURE_RESOURCE_ID, ARM_TENANT_IDés ARM_CLIENT_ID. Vagy létrehozhat egy konfigurációs profilt a azure_workspace_resource_id, azure_tenant_idés azure_client_id értékekkel, majd megadhatja a profil nevét a profile leképezéssel (vagy a --profile vagy -p beállításokkal, amikor a csomag ellenőrzése, üzembe helyezése, futtatása és megsemmisítése parancsokat futtat a Databricks parancssori felületével). Lásd: MS Entra szolgáltatásnév-hitelesítés.

    Feljegyzés

    A csomagkonfigurációs fájlban nem adhat meg Azure-ügyfél titkos kódértéket. Ehelyett állítsa be a helyi környezeti változót ARM_CLIENT_SECRET. Vagy hozzáadhatja az azure_client_secret értéket egy konfigurációs profilhoz, majd megadhatja a profil nevét a profile leképezéssel (vagy a --profile csomag ellenőrzése, üzembe helyezése, futtatása és megsemmisítése parancsok a Databricks parancssori felülettel való futtatásakor vagy -p a beállítások használatával).

  • Az Azure-beli felügyelt identitások hitelesítése esetén a leképezések azure_use_msiazure_client_idés azure_workspace_resource_id a használatuk. Másik lehetőségként beállíthatja ezeket az értékeket a helyi környezeti változókban, ARM_USE_MSI, ARM_CLIENT_IDés DATABRICKS_AZURE_RESOURCE_ID. Vagy létrehozhat egy konfigurációs profilt a azure_use_msi, azure_client_idés azure_workspace_resource_id értékekkel, majd megadhatja a profil nevét a profile leképezéssel (vagy a --profile vagy -p beállításokkal, amikor a csomag ellenőrzése, üzembe helyezése, futtatása és megsemmisítése parancsokat futtat a Databricks parancssori felületével). Tekintse meg az Azure által felügyelt identitások hitelesítését.

  • A azure_environment leképezés az Azure-környezet típusát (például Nyilvános, UsGov, Kína és Németország) határozza meg egy adott API-végpontkészlethez. Az alapértelmezett érték PUBLIC. Másik lehetőségként beállíthatja ezt az értéket a helyi környezeti változóban ARM_ENVIRONMENT. Vagy hozzáadhatja az azure_environment értéket egy konfigurációs profilhoz, majd megadhatja a profil nevét a profile leképezéssel (vagy a --profile csomag ellenőrzése, üzembe helyezése, futtatása és megsemmisítése parancsok a Databricks parancssori felülettel való futtatásakor vagy -p a beállítások használatával).

  • A azure_login_app_id leképezés nem működik, és belső használatra van fenntartva.

  • A auth_type hozzárendelés meghatározza a használni kívánt Azure Databricks hitelesítési típust, különösen azokban az esetekben, amikor a Databricks parancssor váratlan hitelesítési típust észlel. Tekintse meg Az Azure Databricks-erőforrásokhoz való hozzáférés engedélyezése.

Engedélyek

A legfelső szintű permissions leképezés egy vagy több engedélyszintet határoz meg, amelyek a csomagban definiált összes erőforrásra alkalmazhatók. Ha engedélyeket szeretne alkalmazni egy adott erőforrásra, tekintse meg az adott erőforrás engedélyeinek definiálása című témakört.

Az engedélyezett legfelső szintű engedélyszintek a következőkCAN_VIEW: és CAN_MANAGECAN_RUN.

A csomagkonfigurációs fájlban található alábbi példa egy felhasználó, csoport és szolgáltatásnév engedélyszintjeit határozza meg, amelyek a csomagban resources meghatározott összes feladatra, folyamatra, kísérletre és modellre vonatkoznak:

permissions:
  - level: CAN_VIEW
    group_name: test-group
  - level: CAN_MANAGE
    user_name: someone@example.com
  - level: CAN_RUN
    service_principal_name: 123456-abcdef

Leletek

A legfelső szintű artifacts leképezés egy vagy több olyan összetevőt határoz meg, amely automatikusan létrejön a csomagtelepítések során, és később használható a csomagfuttatásokban. Minden gyermekösszetevő a következő leképezéseket támogatja:

  • type szükséges a Python-kerekes buildekhez. Ha üzembe helyezés előtt Python-kerekes fájlt szeretne létrehozni, állítsa ezt whlértékre. Más összetevők létrehozásához ezt a beállítást nem kell megadni.
  • path nem kötelező elérési út. Az elérési utak a csomagkonfigurációs fájl helyéhez viszonyítva vannak. Python-wheel buildek esetén ez a Python-wheel setup.py fájljának elérési útja. Ha path nem szerepel a csomagban, a Databricks parancssori felület megpróbálja megtalálni a Python-kerekes fájl setup.py fájlját a csomag gyökérkönyvtárában.
  • files egy nem kötelező leképezés, amely tartalmaz egy al-leképezést source, amellyel megadhatja a létrehozott artefaktumokat. Az elérési utak a csomagkonfigurációs fájl helyéhez viszonyítva vannak.
  • build nem alapértelmezett buildparancsok választható készlete, amelyeket helyileg szeretne futtatni az üzembe helyezés előtt. A Python-kerekes buildek esetében a Databricks CLI feltételezi, hogy megtalálja a Python-csomag wheel helyi telepítését a buildek futtatásához, és alapértelmezés szerint futtatja a parancsot python setup.py bdist_wheel az egyes csomagtelepítések során. Több buildparancs megadásához különítse el az egyes parancsokat dupla és (&&) karakterekkel.

Az alábbi példakonfiguráció egy kereket hoz létre a Poetry használatával. Egy teljes példacsomagért, amely a artifacts-t használja kerék létrehozására, lásd: Python-kerékfájl fejlesztése a Databricks Asset Bundleshasználatával.

artifacts:
  default:
    type: whl
    build: poetry build
    path: .

Egy példakonfiguráció, amely egy JAR-t állít össze és feltölti a Unity Catalogba, lásd: JAR-fájlt feltöltő csomag a Unity Catalog.

Tipp.

A csomagokban lévő artefaktumok beállításait definiálhatja, kombinálhatja és felülbírálhatja, ahogy azt a Artefaktumbeállítások definiálása a Databricks Asset Bundles-benírja le.

tartalmaz

A include tömb megadja azoknak az elérési utaknak a listáját, amelyek konfigurációs fájlokat tartalmaznak a csomagban. Ezek az elérésiút-globok annak a csomagkonfigurációs fájlnak a helyéhez vannak viszonyítva, amelyben az elérési út globok meg vannak adva.

A Databricks parancssori felület alapértelmezés szerint nem tartalmaz konfigurációs fájlokat a csomagon belül. A tömb használatával include meg kell adnia a csomagon belül belefoglalandó összes konfigurációs fájlt, kivéve magát a databricks.yml fájlt.

Ez a include tömb csak legfelső szintű leképezésként jelenhet meg.

Az alábbi példakonfiguráció három konfigurációs fájlt tartalmaz. Ezek a fájlok ugyanabban a mappában találhatók, mint a csomagkonfigurációs fájl:

include:
  - "bundle.artifacts.yml"
  - "bundle.resources.yml"
  - "bundle.targets.yml"

Az alábbi példakonfiguráció tartalmazza az összes fájlnevet tartalmazó fájlt, amely a következővel bundle kezdődik és végződik .yml. Ezek a fájlok ugyanabban a mappában találhatók, mint a csomagkonfigurációs fájl:

include:
  - "bundle*.yml"

Erőforrások

A resources leképezés a csomag által használt Azure Databricks-erőforrásokra vonatkozó információkat adja meg.

Ez a resources-megfeleltetés legfelső szintű leképezésként jelenhet meg, vagy a legfelső szintű -célok leképezésének egy vagy több céljának gyermeke lehet, és tartalmazhat nulla vagy egy támogatott erőforrástípust. Minden erőforrástípus-megfeleltetés egy vagy több egyedi erőforrás-deklarációt tartalmaz, amelyeknek egyedi névvel kell rendelkezniük. Ezek az egyéni erőforrás-deklarációk a megfelelő objektum létrehozási műveletének yaML-ben kifejezett hasznos adatait használják az erőforrás meghatározásához. Az erőforrás támogatott tulajdonságai a megfelelő objektum által támogatott mezők.

A műveletkérelem hasznos adatainak létrehozását a Databricks REST API-referencia dokumentálja, a parancs pedig az databricks bundle schema összes támogatott objektumsémát kimeneteli. Ezenkívül a databricks bundle validate parancs figyelmeztetéseket ad vissza, ha ismeretlen erőforrás-tulajdonságok találhatók a csomagkonfigurációs fájlokban.

A következő példakonfiguráció egy feladaterőforrást határoz meg:

resources:
  jobs:
    hello-job:
      name: hello-job
      tasks:
        - task_key: hello-task
          existing_cluster_id: 1234-567890-abcde123
          notebook_task:
            notebook_path: ./hello.py

További információ a csomagokban támogatott erőforrásokról, valamint a gyakori konfigurációkról és példákról: Databricks Asset Bundles-erőforrások és Csomagkonfigurációs példák.

szinkronizálás

A sync leképezés lehetővé teszi annak konfigurálását, hogy mely fájlok részei a csomagtelepítéseknek.

belefoglalás és kizárás

A include leképezésen belüli exclude és sync leképezések az alábbi szabályoktól függően megszabják azoknak a fájloknak vagy mappáknak a listáját, amelyeket a csomagtelepítésekbe belefoglalnak vagy kizárnak:

  • A csomag gyökerében lévő .gitignore fájlok és elérési utak összes listája alapján a include-leképezés a fájlgyökérhez képest tartalmazhat fájlgyökereket, elérési utakat vagy mindkettőt, hogy explicit módon belefoglalja őket.
  • A csomag gyökeréhez képest a .gitignore-megfeleltetés tartalmazhat fájl-globokat, elérésiút-globokat vagy mindkettőt a include-fájlban lévő fájl- és elérésiút-globok listája, valamint a exclude-leképezésben található fájl- és elérésiút-globok listája alapján, hogy explicit módon kizárja őket.

A megadott fájlok és mappák minden elérési útja annak a csomagkonfigurációs fájlnak a helyéhez képest van, amelyben meg vannak adva.

A fájl- és include elérésiút-minták szintaxisa exclude a szokásos .gitignore mintaszintaxisokat követi. Lásd a gitignore mintaformátumát.

Ha például a következő .gitignore fájl a következő bejegyzéseket tartalmazza:

.databricks
my_package/dist

A csomagkonfigurációs fájl pedig a következő include leképezést tartalmazza:

sync:
  include:
    - my_package/dist/*.whl

Ezután a mappa összes fájljának my_package/dist fájlkiterjesztése *.whl megjelenik. A mappában lévő my_package/dist többi fájl nem szerepel a fájlban.

Ha azonban a csomagkonfigurációs fájl a következő exclude leképezést is tartalmazza:

sync:
  include:
    - my_package/dist/*.whl
  exclude:
    - my_package/dist/delete-me.whl

Ezután a mappában lévő my_package/dist összes fájl, amelynek fájlkiterjesztése *.whl– a névvel ellátott delete-me.whlfájl kivételével – szerepel a fájlban. A mappában lévő my_package/dist többi fájl sem szerepel a fájlban.

A sync leképezés egy adott cél leképezésében targets is deklarálható. A sync célban deklarált leképezések minden legfelső szintű sync leképezési deklarációval egyesülnek. Az előző példával folytatva például a szint alábbi include leképezése targets egyesül a include legfelső szintű sync leképezés leképezésével:

targets:
  dev:
    sync:
      include:
        - my_package/dist/delete-me.whl

Görbék

A sync leképezés tartalmazhat olyan leképezést paths , amely meghatározza a munkaterületre szinkronizálandó helyi útvonalakat. A paths leképezés lehetővé teszi a gyakori fájlok kötegek közötti megosztását, és a csomaggyökeren kívül található fájlok szinkronizálására is használható. (A csomaggyökér a databricks.yml fájl helye.) Ez különösen akkor hasznos, ha egyetlen olyan adattárral rendelkezik, amely több csomagot üzemeltet, és tárakat, kódfájlokat vagy konfigurációkat szeretne megosztani.

A megadott elérési utaknak a paths-megfeleltetést tartalmazó mappában rögzített fájlokhoz és könyvtárakhoz kell viszonyítani. Ha egy vagy több elérési útérték a könyvtárat a köteggyökér elődje felé haladja, a gyökér elérési útja dinamikusan lesz meghatározva, hogy a mappaszerkezet érintetlen maradjon. Ha például a csomag gyökérmappája el van nevezve my_bundle , akkor ez a konfiguráció databricks.yml szinkronizálja a common köteggyökér és maga a csomaggyökér fölött egy szinten található mappát:

sync:
  paths:
    - ../common
    - .

A csomag üzembe helyezése a következő mappastruktúrát eredményezi a munkaterületen:

common/
  common_file.txt
my_bundle/
  databricks.yml
  src/
    ...

Célok

A targets leképezés egy vagy több környezetet határoz meg az Azure Databricks-munkafolyamatok futtatásához. Mindegyik cél az összetevők, az Azure Databricks-munkaterület beállításai és az Azure Databricks-feladatok vagy folyamatok részleteinek egyedi gyűjteménye.

A targets leképezés egy vagy több célleképezésből áll, amelyeknek egyedi programozott (vagy logikai) névvel kell rendelkezniük.

Ez targets a leképezés nem kötelező, de erősen ajánlott. Ha meg van adva, csak legfelső szintű leképezésként jelenhet meg.

A legfelső szintű munkaterület, összetevők és erőforrás-leképezések beállításait akkor használja a rendszer, ha nincsenek megadva a targets leképezésben, de az ütköző beállításokat felülírják a célon belüli beállítások.

A cél emellett felülbírálhatja a legfelső szintű változókértékeit is.

alapértelmezett

A csomagparancsok alapértelmezett célértékének megadásához állítsa be a default hozzárendelést true-re. Ez a névvel ellátott dev cél például az alapértelmezett cél:

targets:
  dev:
    default: true

Ha egy alapértelmezett cél nincs konfigurálva, vagy ha egy adott célon belül szeretné ellenőrizni, üzembe helyezni és futtatni a feladatokat vagy folyamatokat, használja a -t csomagparancsok lehetőségét.

A következő parancsok ellenőrzik, telepítik és futtatják my_job a dev célokat:prod

databricks bundle validate
databricks bundle deploy -t dev
databricks bundle run -t dev my_job
databricks bundle validate
databricks bundle deploy -t prod
databricks bundle run -t prod my_job

Az alábbi példa két célt deklarál. Az első cél a névvel dev rendelkezik, és az alapértelmezett cél, ha nincs megadva cél a csomagparancsokhoz. A második cél neve prod csak akkor használatos, ha ez a cél a csomagparancsokhoz van megadva.

targets:
  dev:
    default: true
  prod:
    workspace:
      host: https://<production-workspace-url>

mód és beállítások

Az egyszerű fejlesztés és a CI/CD bevált gyakorlatainak megkönnyítése érdekében a Databricks Asset Bundles telepítési módokat biztosít azokhoz a célokhoz, amelyek alapértelmezett viselkedést határoznak meg az éles üzem előtti és az éles munkafolyamatokhoz. Bizonyos viselkedések is konfigurálhatók. További információ: Databricks Asset Bundle üzembe helyezési módok.

Tipp.

A csomagok futtatási identitásainak beállításához minden célhoz megadhat run_as, az Databricks Asset Bundles-munkafolyamat futtatási identitásának megadása.

Annak megadásához, hogy egy cél fejlesztési célként legyen kezelve, adja hozzá a mode leképezési készletet a development-hez. Ha jelezni szeretné, hogy egy cél gyártási célként legyen kezelve, adja hozzá a mode leképezési csoportot production. Ez a névvel ellátott prod cél például éles célként van kezelve:

targets:
  prod:
    mode: production

A leképezéssel testre szabhat néhány viselkedést presets . Az elérhető készletek listáját az Egyéni készletekcímű témakörben találja. Az alábbi példa egy testreszabott éles célt mutat be, amely az összes éles erőforrás előtagja és címkéje:

targets:
  prod:
    mode: production
    presets:
      name_prefix: "production_"  # prefix all resource names with production_
      tags:
        prod: true

Ha mode és presets is be van állítva, az előre beállított beállítások felülbírálják az alapértelmezett üzemmód viselkedését. Az egyes erőforrások beállításai felülírják az előre beállított értékeket. Ha például egy ütemezés UNPAUSEDértékre van állítva, de a trigger_pause_status előre beállított érték PAUSED, az ütemezés folytatódni fog.