Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Tento článek popisuje syntaxi konfiguračních souborů sady, která definuje deklarativní balíčky automatizace (dříve označované jako Sady prostředků Databricks). Podívejte se, co jsou balíčky deklarativní automatizace?
Pokud chcete vytvářet a pracovat se sadami, přečtěte si téma Vývoj deklarativních automatizačních sad.
Referenční informace o konfiguraci sady najdete v tématu Referenční informace o konfiguraci.
databricks.yml
Sada musí obsahovat jeden (a jenom jeden) konfigurační soubor pojmenovaný databricks.yml v kořenové složce projektu sady.
databricks.yml je hlavní konfigurační soubor, který definuje balíček, ale může také odkazovat na jiné konfigurační soubory, jako jsou soubory konfigurace prostředků, v mapování include. Konfigurace sady se vyjadřuje v YAML. Další informace o YAML najdete v oficiální specifikaci YAML.
Nejjednodušší databricks.yml definuje název sady, což je požadované mapování nejvyšší úrovně a cílové nasazení.
bundle:
name: my_bundle
targets:
dev:
default: true
Podrobnosti o všech mapováních nejvyšší úrovně najdete v referenčních informacích ke konfiguraci.
Návod
Podpora Pythonu pro balíčky deklarativní automatizace umožňuje definovat prostředky v Pythonu. Viz konfigurace balíčku v Pythonu.
Specifikace
Následující specifikace YAML poskytuje konfigurační klíče nejvyšší úrovně pro deklarativní automatizační sady. Kompletní referenční informace o konfiguraci najdete v referenčních informacích ke konfiguraci a prostředcích deklarativních balíčků automation.
# 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
deployment: Map
git:
origin_url: string
branch: string
# This is the identity to use to run the bundle
run_as:
- user_name: <user-name>
- service_principal_name: <service-principal-name>
# These are any additional configuration files to include.
include:
- '<some-file-or-path-glob-to-include>'
- '<another-file-or-path-glob-to-include>'
# These are any scripts that can be run.
scripts:
<some-unique-script-name>:
content: string
# 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 default artifact settings if not otherwise overridden in
# the targets top-level mapping.
artifacts:
<some-unique-artifact-identifier>:
build: string
dynamic_version: boolean
executable: string
files:
- source: string
path: string
type: string
# These are for any custom variables for use throughout the bundle.
variables:
<some-unique-variable-name>:
description: string
default: string or complex
lookup: Map
type: string # The only valid value is "complex" if the variable is a complex variable, otherwise do not define this key.
# These are the workspace settings if not otherwise overridden in
# the targets top-level mapping.
workspace:
artifact_path: string
host: string
profile: string
resource_path: string
root_path: string
state_path: string
# These are the permissions to apply to resources 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 resource settings if not otherwise overridden in
# the targets top-level mapping.
resources:
alerts:
<unique-alert-name>:
# alert settings
apps:
<unique-app-name>:
# app settings
catalogs:
<unique-catalog-name>:
# catalog settings
clusters:
<unique-cluster-name>:
# cluster settings
dashboards:
<unique-dashboard-name>:
# dashboard settings
database_catalogs:
<unique-database-catalog-name>:
# database catalog settings
database_instances:
<unique-database-instance-name>:
# database instance settings
experiments:
<unique-experiment-name>:
# experiment settings
jobs:
<unique-job-name>:
# job settings
model_serving_endpoints:
<unique-model-serving-endpoint-name>:
# model_serving_endpoint settings
pipelines:
<unique-pipeline-name>:
# pipeline settings
postgres_branches:
<unique-postgres-branch-name>:
# postgres branch settings
postgres_endpoints:
<unique-postgres-endpoint-name>:
# postgres endpoint settings
postgres_projects:
<unique-postgres-project-name>:
# postgres project settings
quality_monitors:
<unique-quality-monitor-name>:
# quality monitor settings
registered_models:
<unique-registered-model-name>:
# registered model settings
schemas:
<unique-schema-name>:
# schema settings
secret_scopes:
<unique-secret-scope-name>:
# secret scopes settings
sql_warehouses:
<unique-sql-warehouse-name>:
# sql warehouse settings
synced_database_tables:
<unique-synced-database-table-name>:
# synced database table settings
volumes:
<unique-volume-name>:
# volumes settings
# 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:
# artifact build settings for this target
bundle:
# bundle settings for this target
default: boolean
git: Map
mode: string
permissions:
# permissions for this target
presets:
<preset>: <value>
resources:
# resource settings for this target
sync:
# sync settings for this target
variables:
<defined-variable-name>: <non-default-value> # value for this target
workspace:
# workspace settings for this target
run_as:
# run_as settings for this target
Příklady
Tato část obsahuje některé základní příklady, které vám pomůžou pochopit, jak fungují sady prostředků a jak strukturovat konfiguraci.
Poznámka:
Příklady konfigurace, které demonstrují funkce sady prostředků a běžné případy použití sady prostředků, najdete v příkladech konfigurace sady a v úložišti příkladů sady prostředků na GitHubu.
Následující příklad konfigurace svazku určuje místní soubor s názvem hello.py, který je ve stejném adresáři jako konfigurační soubor databricks.yml. Spustí tento poznámkový blok jako úlohu pomocí vzdáleného clusteru se zadaným ID clusteru. Adresa URL vzdáleného pracovního prostoru a přihlašovací údaje pro ověřování pracovního prostoru se čtou z místního konfiguračního profilu volajícího s názvem DEFAULT.
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
Následující příklad přidá cíl s názvemprod, který používá jinou adresu URL vzdáleného pracovního prostoru a přihlašovací údaje pro ověřování pracovního prostoru, které se čtou z odpovídající .databrickscfg položky souboru volajícího host se zadanou adresou URL pracovního prostoru. Tato úloha spouští stejný poznámkový blok, ale používá jiný vzdálený cluster se zadaným ID clusteru.
Poznámka:
Databricks doporučuje, abyste používali host mapování místo default mapování, všude kde je to možné, protože to činí konfigurační soubory přenosnějšími. Nastavení mapování host dává rozhraní příkazového řádku Databricks pokyn vyhledat odpovídající profil v souboru .databrickscfg a poté použít pole tohoto profilu k určení, který typ ověřování Databricks použít. Pokud existuje více profilů s odpovídajícím host polem, musíte použít --profile možnost u příkazů sady k určení profilu, který se má použít.
Všimněte si, že není nutné deklarovat mapování notebook_task v rámci mapování prod, protože se vrátí k použití mapování notebook_task v rámci mapování nejvyšší úrovně resources, pokud mapování notebook_task není explicitně přepsáno v rámci mapování prod.
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
Pomocí následujících příkazů sady prostředků ověřte, nasaďte a spusťte tuto úlohu v rámci dev cíle. Podrobnosti o životním cyklu sady najdete v tématu Vývoj deklarativních automatizačních sad.
# 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
Pokud chcete místo toho ověřit, nasadit a spustit tuto úlohu v prod rámci cíle:
# 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
Pokud chcete více modularizace a lepší opakované použití definic a nastavení napříč sadami, rozdělte konfiguraci sady do samostatných souborů:
# databricks.yml
bundle:
name: hello-bundle
include:
- '*.yml'
# hello-job.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
# 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