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.yml
kell tartalmaznia. Ha több csomagkonfigurációs fájl is létezik, a fájlnak hivatkoznia kell rájuk a databricks.yml
include
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ó DEFAULT
nevű 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-bundle
rendelkező 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 validate
pé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á agit 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á agit 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_url
branch
git
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 string
tí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
/Volumes
a . Az egyéni munkaterület elérési útjai automatikusan előtaggal /Workspace
vannak 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}/artifacts
haszná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}/files
haszná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
aprofile
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. Ahost
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 aprofile
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 aprod
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óbanDATABRICKS_CLIENT_ID
. Létrehozhat egy konfigurációs profilt azclient_id
értékkel, majd megadhatja a profil nevét aprofile
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 azclient_secret
értéket egy konfigurációs profilhoz, majd megadhatja a profil nevét aprofile
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óbanDATABRICKS_AZURE_RESOURCE_ID
. Létrehozhat egy konfigurációs profilt azazure_workspace_resource_id
értékkel, majd megadhatja a profil nevét aprofile
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_id
azure_tenant_id
ésazure_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
ésARM_CLIENT_ID
. Vagy létrehozhat egy konfigurációs profilt aazure_workspace_resource_id
,azure_tenant_id
ésazure_client_id
értékekkel, majd megadhatja a profil nevét aprofile
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 azazure_client_secret
értéket egy konfigurációs profilhoz, majd megadhatja a profil nevét aprofile
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_msi
azure_client_id
ésazure_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
ésDATABRICKS_AZURE_RESOURCE_ID
. Vagy létrehozhat egy konfigurációs profilt aazure_use_msi
,azure_client_id
ésazure_workspace_resource_id
értékekkel, majd megadhatja a profil nevét aprofile
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ékPUBLIC
. Másik lehetőségként beállíthatja ezt az értéket a helyi környezeti változóbanARM_ENVIRONMENT
. Vagy hozzáadhatja azazure_environment
értéket egy konfigurációs profilhoz, majd megadhatja a profil nevét aprofile
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_MANAGE
CAN_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 eztwhl
é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-wheelsetup.py
fájljának elérési útja. Hapath
nem szerepel a csomagban, a Databricks parancssori felület megpróbálja megtalálni a Python-kerekes fájlsetup.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éstsource
, 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-csomagwheel
helyi telepítését a buildek futtatásához, és alapértelmezés szerint futtatja a parancsotpython 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 ainclude
-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 ainclude
-fájlban lévő fájl- és elérésiút-globok listája, valamint aexclude
-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.whl
fá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.