Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Mit Databricks Asset Bundles können Sie Informationen über die Azure Databricks-Ressourcen spezifizieren, die vom Bundle in der resources
-Zuordnung der Bundle-Konfiguration verwendet werden. Weitere Informationen finden Sie unter Ressourcenzuordnung und Ressourcenschlüsselreferenz.
In diesem Artikel werden unterstützte Ressourcentypen für Bundles beschrieben und Details und ein Beispiel für jeden unterstützten Typ bereitgestellt. Weitere Beispiele finden Sie in Bundle-Konfigurationsbeispielen.
Tipp
Verwenden Sie den Befehl databricks bundle generate
, um YAML für jede vorhandene Ressource zu generieren. Siehe Generieren einer Bündelkonfigurationsdatei.
Unterstützte Ressourcen
In der folgenden Tabelle sind die unterstützten Ressourcentypen für Bundles aufgeführt. Einige Ressourcen können erstellt werden, indem sie in einem Bundle definiert und das Bundle bereitgestellt werden. Einige Ressourcen können nur erstellt werden, indem auf eine vorhandene Ressource verwiesen wird, die in das Bundle aufgenommen werden soll.
Ressourcen werden mithilfe der Erstellungsanforderungsnutzlast des entsprechenden Databricks-REST-API-Objekts definiert, wobei die unterstützten Felder des Objekts, ausgedrückt als YAML, die unterstützten Eigenschaften der Ressource sind. Links zur Dokumentation für die entsprechenden Nutzlasten der einzelnen Ressourcen werden in der Tabelle aufgeführt.
Tipp
Der Befehl databricks bundle validate
gibt Warnungen zurück, wenn unbekannte Ressourceneigenschaften in Paketkonfigurationsdateien gefunden werden.
Ressource | Entsprechendes REST-API-Objekt |
---|---|
App | App-Objekt |
Cluster | Clusterobjekt- |
Dashboard | Dashboard-Objekt |
Experiment | Experiment-Objekt |
Auftrag | Auftragsobjekt |
Modell (Alt) | Modellobjekt (Legacy) |
Modell-Bereitstellungsendpunkt | Objekt für Modellbereitstellungsendpunkt |
Pipeline | Pipeline-Objekt |
Qualitätsmonitor | Objekt zur Qualitätsüberwachung |
registriertes_Modell (Unity Catalog) | Registriertes Modellobjekt |
Schema (Unity Catalog) | Schemaobjekt |
geheimer_Bereich | Secret scope object |
Volume (Unity Catalog) | Volumeobjekt |
App
Type: Map
Die App-Ressource definiert eine Databricks-App. Informationen zu Databricks-Apps finden Sie unter Databricks Apps.
Um eine App hinzuzufügen, geben Sie die Einstellungen zum Definieren der App an, einschließlich der erforderlichen source_code_path
.
Tipp
Sie können ein Bündel mit einer Streamlit Databricks-App mit dem folgenden Befehl initialisieren:
databricks bundle init https://github.com/databricks/bundle-examples --template-dir contrib/templates/streamlit-app
apps:
<app-name>:
<app-field-name>: <app-field-value>
Schlüssel | Typ | BESCHREIBUNG |
---|---|---|
budget_policy_id |
Schnur | Die Budgetrichtlinien-ID für die App. |
config |
Landkarte | Veraltet (nicht mehr empfohlen) Definieren Sie stattdessen Die App-Konfigurationsbefehle und Umgebungsvariablen in der app.yaml Datei. Siehe Konfigurieren einer Databricks-App. |
description |
Schnur | Beschreibung der App. |
name |
Schnur | Der Name der App. Der Name darf nur alphanumerische Zeichen und Bindestriche in Kleinbuchstaben enthalten. Er muss innerhalb des Arbeitsbereichs eindeutig sein. |
permissions |
Reihenfolge | Die Berechtigungen der App. Weitere Informationen finden Sie unter Berechtigungen. |
resources |
Reihenfolge | Die App berechnet Ressourcen. Weitere Informationen finden Sie unter apps.name.resources. |
source_code_path |
Schnur | Der ./app lokale Pfad des Quellcodes der Databricks-App. Dies ist ein Pflichtfeld. |
user_api_scopes |
Reihenfolge | Die API-Bereiche des Benutzers. |
apps.name.resources
Type: Sequence
Die Rechenressourcen für die App.
Schlüssel | Typ | BESCHREIBUNG |
---|---|---|
description |
Schnur | Die Beschreibung der App-Ressource. |
job |
Landkarte | Die Einstellungen, die die zu verwendende Auftragsressource identifizieren. Siehe resources.job. |
name |
Schnur | Der Name der App-Ressource. |
secret |
Landkarte | Die geheimen Einstellungen. Siehe resources.secret. |
serving_endpoint |
Landkarte | Die Einstellungen, die die zu verwendende Bereitstellungsendpunktressource identifizieren. Siehe resources.serving_endpoint. |
sql_warehouse |
Landkarte | Die Einstellungen, die die zu verwendende Lagerressource identifizieren. Siehe resources.sql_warehouse. |
Beispiel
Im folgenden Beispiel wird eine App namens my_app
erstellt, die einen vom Bundle erstellten Auftrag verwaltet:
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 resources in the bundle which this app has access to. This binds the resource in the app with the bundle resource.
resources:
- name: 'app-job'
job:
id: ${resources.jobs.hello_world.id}
permission: 'CAN_MANAGE_RUN'
Die entsprechende app.yaml
Definition definiert die Konfiguration für die Ausführung der App:
command:
- flask
- --app
- app
- run
- --debug
env:
- name: JOB_ID
valueFrom: 'app-job'
Das vollständige Databricks-App-Beispielbundle finden Sie im GitHub-Repository „bundle-examples“.
Cluster
Type: Map
Die Clusterressource definiert einen Cluster.
clusters:
<cluster-name>:
<cluster-field-name>: <cluster-field-value>
Schlüssel | Typ | BESCHREIBUNG |
---|---|---|
apply_policy_default_values |
Boolescher Wert | Wenn dieser Wert auf "true" festgelegt ist, werden feste und Standardwerte aus der Richtlinie für felder verwendet, die weggelassen werden. Wenn dieser Wert auf "false" festgelegt ist, werden nur feste Werte aus der Richtlinie angewendet. |
autoscale |
Landkarte | Parameter, die benötigt werden, um Cluster basierend auf der Last automatisch nach oben und unten zu skalieren. Siehe Autoskala. |
autotermination_minutes |
Ganze Zahl | Dadurch wird der Cluster automatisch beendet, wenn er für diese Zeit in Minuten inaktiv ist. Wenn nicht festgelegt, wird dieser Cluster nicht automatisch beendet. Wenn angegeben, muss der Schwellenwert zwischen 10 und 10000 Minuten liegen. Benutzer können diesen Wert auch auf 0 festlegen, um die automatische Beendigung explizit zu deaktivieren. |
aws_attributes |
Landkarte | Attribute im Zusammenhang mit Clustern, die auf Amazon Web Services ausgeführt werden. Wenn bei der Clustererstellung nicht angegeben, wird eine Reihe von Standardwerten verwendet. Siehe aws_attributes. |
azure_attributes |
Landkarte | Attribute im Zusammenhang mit Clustern, die in Microsoft Azure ausgeführt werden. Wenn bei der Clustererstellung nicht angegeben, wird eine Reihe von Standardwerten verwendet. Siehe azure_attributes. |
cluster_log_conf |
Landkarte | Die Konfiguration für die Bereitstellung von Spark logs an ein langfristiges Speicherziel. Siehe cluster_log_conf. |
cluster_name |
Schnur | Der vom Benutzer angeforderte Clustername. Das muss nicht einzigartig sein. Wenn beim Erstellen nicht angegeben, ist der Clustername eine leere Zeichenfolge. |
custom_tags |
Landkarte | Zusätzliche Tags für Cluster-Ressourcen. Databricks wird alle Clusterressourcen (z. B. AWS-Instanzen und EBS-Volumes) mit diesen Tags zusätzlich zu default_tags kennzeichnen. Siehe custom_tags. |
data_security_mode |
Schnur | Das Data Governance-Modell, das beim Zugriff auf Daten aus einem Cluster verwendet werden soll. Siehe data_security_mode. |
docker_image |
Landkarte | Das benutzerdefinierte Docker-Image. Siehe docker_image. |
driver_instance_pool_id |
Schnur | Die optionale ID des Instanzpools für den Treiber, zu dem der Cluster gehört. Der Poolcluster verwendet den Instanzpool mit id (instance_pool_id), wenn der Treiberpool nicht zugewiesen ist. |
driver_node_type_id |
Schnur | Der Knotentyp des Spark-Treibers. Beachten Sie, dass dieses Feld optional ist; wenn nicht festgelegt, wird der Treiberknotentyp wie oben definiert als derselbe Wert node_type_id festgelegt. Dieses Feld zusammen mit node_type_id sollte nicht festgelegt werden, wenn virtual_cluster_size festgelegt ist. Wenn sowohl driver_node_type_id, node_type_id als auch virtual_cluster_size angegeben werden, haben driver_node_type_id und node_type_id Vorrang. |
enable_elastic_disk |
Boolescher Wert | Autoskalierung des lokalen Speichers: Wenn diese Option aktiviert ist, erwirbt der Cluster dynamisch zusätzlichen Datenträgerspeicher, wenn der Speicherplatz seiner Spark-Worker zur Neige geht. Für dieses Feature sind bestimmte AWS-Berechtigungen erforderlich, um ordnungsgemäß zu funktionieren . Weitere Details finden Sie im Benutzerhandbuch. |
enable_local_disk_encryption |
Boolescher Wert | Gibt an, ob LUKS auf den lokalen Datenträgern von Cluster-VMs aktiviert werden soll. |
gcp_attributes |
Landkarte | Attribute im Zusammenhang mit Clustern, die auf der Google Cloud Platform ausgeführt werden. Wenn bei der Clustererstellung nicht angegeben, wird eine Reihe von Standardwerten verwendet. Siehe gcp_attributes. |
init_scripts |
Reihenfolge | Die Konfiguration zum Speichern von Init-Skripts. Es kann eine beliebige Anzahl von Zielen angegeben werden. Die Skripts werden sequenziell in der angegebenen Reihenfolge ausgeführt. Siehe init_scripts. |
instance_pool_id |
Schnur | Die optionale ID des Instanzpools, zu dem der Cluster gehört. |
is_single_node |
Boolescher Wert | Dieses Feld kann nur verwendet werden, wenn kind = CLASSIC_PREVIEW . Wenn dieser Wert auf „true“ festgelegt wird, legt Databricks automatisch einzelne Knoten mit Bezug auf custom_tags , spark_conf und num_workers fest. |
kind |
Schnur | Die durch diese Berechnungsspezifikation beschriebene Art von Berechnung. |
node_type_id |
Schnur | Dieses Feld codiert mithilfe eines einzigen Werts die Ressourcen, die jedem der Spark-Knoten in diesem Cluster zur Verfügung stehen. Beispielsweise können die Spark-Knoten für arbeitsspeicher- oder rechenintensive Workloads bereitgestellt und optimiert werden. Eine Liste der verfügbaren Knotentypen kann mithilfe des API-Aufrufs :method:clusters/listNodeTypes abgerufen werden. |
num_workers |
Ganze Zahl | Die Anzahl der Workerknoten, die dieser Cluster haben sollte. Ein Cluster verfügt über einen Spark-Treiber und num_workers Ausführer für insgesamt num_workers + 1 Spark-Knoten. |
permissions |
Reihenfolge | Die Clusterberechtigungen. Weitere Informationen finden Sie unter Berechtigungen. |
policy_id |
Schnur | Die ID der Clusterrichtlinie, die zum Erstellen des Clusters verwendet wird, falls zutreffend. |
runtime_engine |
Schnur | Bestimmt die Runtime-Engine des Clusters (entweder STANDARD oder PHOTON ). |
single_user_name |
Schnur | Einzelner Benutzername, wenn data_security_mode SINGLE_USER ist |
spark_conf |
Landkarte | Ein Objekt, das einen Satz optionaler, vom Benutzer angegebener Spark-Konfigurationsschlüssel-Wert-Paare enthält. Benutzer können auch eine Zeichenfolge mit zusätzlichen JVM-Optionen an den Treiber und die Executoren über spark.driver.extraJavaOptions bzw. spark.executor.extraJavaOptions übergeben. Siehe spark_conf. |
spark_env_vars |
Landkarte | Ein Objekt, das einen Satz optionaler, benutzerdefinierter Umgebungsvariablen-Schlüsselwertpaare enthält. |
spark_version |
Schnur | Die Spark-Version des Clusters, z. B. 3.3.x-scala2.11 . Eine Liste der verfügbaren Spark-Versionen kann mithilfe des API-Aufrufs :method:clusters/sparkVersions abgerufen werden. |
ssh_public_keys |
Reihenfolge | Inhalt des öffentlichen SSH-Schlüssels, der jedem Spark-Knoten in diesem Cluster hinzugefügt wird. Die entsprechenden privaten Schlüssel können zum Anmelden mit dem Benutzernamen ubuntu am Port 2200 verwendet werden. Bis zu 10 Tasten können angegeben werden. |
use_ml_runtime |
Boolescher Wert | Dieses Feld kann nur verwendet werden, wenn kind = CLASSIC_PREVIEW .
effective_spark_version wird durch spark_version (DBR Release) sowie durch das Feld use_ml_runtime und die Information, ob node_type_id ein GPU-Knoten ist oder nicht, bestimmt. |
workload_type |
Landkarte | Clusterattribute, die für Cluster-Workloadtypen angezeigt werden. Siehe workload_type. |
Beispiele
Im folgenden Beispiel wird ein dedizierter Cluster (einzelbenutzer) für den aktuellen Benutzer mit Databricks Runtime 15.4 LTS und einer Clusterrichtlinie erstellt:
resources:
clusters:
my_cluster:
num_workers: 0
node_type_id: 'i3.xlarge'
driver_node_type_id: 'i3.xlarge'
spark_version: '15.4.x-scala2.12'
spark_conf:
'spark.executor.memory': '2g'
autotermination_minutes: 60
enable_elastic_disk: true
single_user_name: ${workspace.current_user.userName}
policy_id: '000128DB309672CA'
enable_local_disk_encryption: false
data_security_mode: SINGLE_USER
runtime_engine": STANDARD
In diesem Beispiel wird ein einfacher Cluster my_cluster
erstellt und dieser als Cluster festgelegt, um das Notizbuch in my_job
auszuführen.
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'
existing_cluster_id: ${resources.clusters.my_cluster.id}
Dashboard
Type: Map
Mit der Dashboardressource können Sie AI/BI-Dashboards in einem Bündel verwalten. Informationen zu AI/BI-Dashboards finden Sie unter Dashboards.
dashboards:
<dashboard-name>:
<dashboard-field-name>: <dashboard-field-value>
Schlüssel | Typ | BESCHREIBUNG |
---|---|---|
display_name |
Schnur | Der Anzeigename des Dashboards. |
etag |
Schnur | Das ETag für das Dashboard. Kann optional für Updates bereitgestellt werden, um sicherzustellen, dass das Dashboard seit dem letzten Lesen nicht geändert wurde. |
file_path |
Schnur | Der lokale Pfad der Dashboardressource, einschließlich des Dateinamens. Exportierte Dashboards verfügen immer über die Dateierweiterung .lvdash.json . |
permissions |
Reihenfolge | Die Dashboardberechtigungen. Weitere Informationen finden Sie unter Berechtigungen. |
serialized_dashboard |
Beliebig | Der Inhalt des Dashboards in serialisierter Zeichenfolgenform. |
warehouse_id |
Schnur | Die Warehouse-ID, die zum Ausführen des Dashboards verwendet wird. |
Beispiel
Im folgenden Beispiel wird das Dashboard NYC Taxi Trip Analysis im Databricks-Arbeitsbereich einbezogen und bereitgestellt.
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}
Wenn Sie die Benutzeroberfläche zum Ändern des Dashboards verwenden, werden Änderungen, die über die Benutzeroberfläche vorgenommen werden, nicht auf die DASHBOARD-JSON-Datei im lokalen Bundle angewendet, es sei denn, Sie aktualisieren es explizit mithilfe von bundle generate
. Sie können die Option --watch
verwenden, um Änderungen am Dashboard kontinuierlich abzufragen und abzurufen. Siehe Generieren einer Bündelkonfigurationsdatei.
Wenn Sie außerdem versuchen, ein Bundle bereitzustellen, das eine DASHBOARD-JSON-Datei enthält, die sich von der im Remotearbeitsbereich unterscheidet, tritt ein Fehler auf. Um die Bereitstellung zu erzwingen und das Dashboard im Remotearbeitsbereich mit dem lokalen zu überschreiben, verwenden Sie die Option --force
. Weitere Informationen finden Sie unter Bereitstellen eines Bundles.
Experiment
Type: Map
Mit der Experimentressource können Sie MLflow-Experimente in einem Bündel definieren. Informationen zu MLflow-Experimenten finden Sie unter Organisieren von Trainingsläufen mit MLflow-Experimenten.
experiments:
<experiment-name>:
<experiment-field-name>: <experiment-field-value>
Schlüssel | Typ | BESCHREIBUNG |
---|---|---|
artifact_location |
Schnur | Der Ort, an dem Artefakte für das Experiment gespeichert werden. |
name |
Schnur | Der Anzeigename, der das Experiment identifiziert. |
permissions |
Reihenfolge | Die Berechtigungen des Experiments. Weitere Informationen finden Sie unter Berechtigungen. |
tags |
Reihenfolge | Zusätzliche Metadaten-Schlüssel-Wert-Paare. Siehe Tags. |
Beispiel
Im folgenden Beispiel wird ein Experiment definiert, das alle Benutzer anzeigen können:
resources:
experiments:
experiment:
name: my_ml_experiment
permissions:
- level: CAN_READ
group_name: users
description: MLflow experiment used to track runs
Arbeit
Type: Map
Mit der Auftragsressource können Sie Aufträge und die entsprechenden Tasks in Ihrem Bundle definieren. Informationen zu Aufträgen finden Sie unter Lakeflow Jobs. Ein Lernprogramm, das eine Vorlage "Databricks Asset Bundles" verwendet, um einen Auftrag zu erstellen, finden Sie unter Entwickeln eines Auftrags mit Databricks Asset Bundles.For a tutorial that uses a Databricks Asset Bundles template to create a job, see Develop a job with Databricks Asset Bundles.
jobs:
<job-name>:
<job-field-name>: <job-field-value>
Schlüssel | Typ | BESCHREIBUNG |
---|---|---|
budget_policy_id |
Schnur | Die ID der vom Benutzer angegebenen Budgetrichtlinie, die für diesen Auftrag verwendet werden soll. Wenn nicht angegeben, kann beim Erstellen oder Ändern des Auftrags eine Standardbudgetrichtlinie angewendet werden. Weitere Informationen über die von diesem Workload verwendete Budgetrichtlinie finden Sie unter effective_budget_policy_id . |
continuous |
Landkarte | Eine optionale fortlaufende Eigenschaft für diesen Auftrag. Die fortlaufende Eigenschaft stellt sicher, dass es immer eine Ausführung gibt, die gerade ausgeführt wird. Nur einer von schedule und continuous kann verwendet werden. Weitere Informationen finden Sie unter fortlaufend. |
deployment |
Landkarte | Bereitstellungsinformationen für Aufträge, die von externen Quellen verwaltet werden. Weitere Informationen finden Sie unter Bereitstellung. |
description |
Schnur | Eine optionale Beschreibung für den Auftrag. Die maximale Länge beträgt 27700 Zeichen in UTF-8-Codierung. |
edit_mode |
Schnur | Bearbeitungsmodus des Auftrags (entweder UI_LOCKED oder EDITABLE ). |
email_notifications |
Landkarte | Ein optionaler Satz von E-Mail-Adressen, die benachrichtigt werden, wenn die Ausführung dieses Auftrags beginnt oder abgeschlossen wird, sowie wenn dieser Auftrag gelöscht wird. Siehe email_notifications. |
environments |
Reihenfolge | Eine Liste der Spezifikationen für die Aufgabenausführungsumgebung, auf die von serverlosen Tasks dieses Auftrags verwiesen werden kann. Für serverlose Aufgaben muss eine Umgebung vorhanden sein. Für serverlose Notizbuchaufgaben kann auf die Umgebung im Notizbuchumgebungsbereich zugegriffen werden. Für andere serverlose Aufgaben muss die Aufgabenumgebung mithilfe von environment_key in den Aufgabeneinstellungen angegeben werden. Siehe Umgebungen. |
format |
Schnur | Das Format des Jobs. |
git_source |
Landkarte | Eine optionale Spezifikation für ein Remote-Git-Repository, das den von Aufgaben verwendeten Quellcode enthält. Das Feld git_source und das Aufgabenquellfeld, die beide auf GIT eingestellt sind, werden nicht für Bundles empfohlen, da lokale relative Pfade möglicherweise nicht auf denselben Inhalt im Git-Repository verweisen. Bundles erwarten, dass ein bereitgestellter Auftrag denselben Inhalt hat wie die lokale Kopie, von der aus er bereitgestellt wurde. Klonen Sie stattdessen das Repository lokal, und richten Sie Ihr Bündelprojekt in diesem Repository ein, sodass die Quelle für Aufgaben der Arbeitsbereich ist. |
health |
Landkarte | Ein optionaler Satz von Gesundheitsregeln, die für diese Aufgabe definiert werden können. Siehe Gesundheit. |
job_clusters |
Reihenfolge | Eine Liste von Job-Cluster-Spezifikationen, die für Aufgaben dieses Jobs freigegeben und wiederverwendet werden können. Siehe Cluster. |
max_concurrent_runs |
Ganze Zahl | Eine optionale maximal zulässige Anzahl gleichzeitiger Ausführungen des Jobs. Legen Sie diesen Wert fest, wenn Sie mehrere Ausführungen desselben Auftrags gleichzeitig ausführen möchten. Weitere Informationen finden Sie unter max_concurrent_runs. |
name |
Schnur | Ein optionaler Name für den Job. Die maximale Länge beträgt 4096 Bytes in UTF-8-Codierung. |
notification_settings |
Landkarte | Optionale Benachrichtigungseinstellungen, die verwendet werden, wenn Benachrichtigungen an jeweils email_notifications und webhook_notifications für diesen Auftrag gesendet werden. Siehe notification_settings. |
parameters |
Reihenfolge | Parameterdefinitionen auf Job-Ebene. Siehe Parameter. |
performance_target |
Schnur | PerformanceTarget definiert, wie leistungsfähig oder kosteneffizient die Ausführung in einer serverlosen Umgebung sein soll. |
permissions |
Reihenfolge | Die Berechtigungen des Auftrags. Weitere Informationen finden Sie unter Berechtigungen. |
queue |
Landkarte | Die Warteschlangeneinstellungen des Auftrags. Siehe Warteschlange. |
run_as |
Landkarte | Schreibgeschützte Einstellung. Gibt den Benutzer oder Dienstprinzipal an, unter dem der Auftrag ausgeführt wird. Sofern nicht angegeben, wird der Auftrag unter dem Benutzer ausgeführt, der den Auftrag erstellt hat. Entweder user_name oder service_principal_name sollte angegeben werden. Falls nicht, wird eine Fehlermeldung ausgelöst. Siehe Angeben einer Ausführungsidentität für einen Databricks Asset Bundles-Workflow. |
schedule |
Landkarte | Ein optionaler periodischer Zeitplan für diesen Auftrag. Das Standardverhalten besteht darin, dass der Auftrag nur ausgeführt wird, wenn er ausgelöst wird, indem in der Benutzeroberfläche von Aufträgen auf "Jetzt ausführen" geklickt wird oder indem eine API-Anforderung an runNow gesendet wird. Siehe Zeitplan. |
tags |
Landkarte | Eine Karte von Tags, die dem Auftrag zugeordnet sind. Diese werden an den Cluster als Clustertags für Auftragscluster weitergeleitet und unterliegen den gleichen Einschränkungen wie Clustertags. Es können maximal 25 Tags zu dem Auftrag hinzugefügt werden. |
tasks |
Reihenfolge | Eine Liste der Aufgabenvorgaben, die von diesem Auftrag ausgeführt werden sollen. Siehe Hinzufügen von Aufgaben zu Aufträgen in Databricks Asset Bundles. |
timeout_seconds |
Ganze Zahl | Ein optionales Timeout, das auf jede Ausführung dieses Auftrags angewendet wird. Ein Wert von 0 bedeutet kein Timeout. |
trigger |
Landkarte | Eine Konfiguration zum Auslösen einer Ausführung, wenn bestimmte Bedingungen erfüllt sind. Siehe Auslöser. |
webhook_notifications |
Landkarte | Eine Sammlung von Systembenachrichtigungs-IDs, die ausgelöst werden, wenn die Ausführung dieses Auftrags beginnt oder abgeschlossen ist. Siehe webhook_notifications. |
Beispiel
Im folgenden Beispiel wird ein Job mit dem Ressourcenschlüssel hello-job
mit einer Notebook-Aufgabe definiert.
resources:
jobs:
hello-job:
name: hello-job
tasks:
- task_key: hello-task
notebook_task:
notebook_path: ./hello.py
Informationen zum Definieren von Auftragsaufgaben und Überschreiben von Auftragseinstellungen finden Sie unter Hinzufügen von Aufgaben zu Aufträgen in Databricks Asset Bundles, Überschreiben von Auftragsaufgabeneinstellungen in Databricks Asset Bundlesund Überschreiben von Clustereinstellungen in Databricks Asset Bundles.
Von Bedeutung
Das Auftragsfeld git_source
und das Aufgabenfeld source
, die auf GIT
festgelegt sind, werden für Bündel nicht empfohlen, da lokale relative Pfade möglicherweise nicht auf denselben Inhalt im Git-Repository verweisen. Bündel erwarten, dass ein bereitgestellter Auftrag den gleichen Inhalt wie die lokale Kopie hat, von wo aus er bereitgestellt wurde.
Klonen Sie stattdessen das Repository lokal, und richten Sie Ihr Bündelprojekt in diesem Repository ein, sodass die Quelle für Aufgaben der Arbeitsbereich ist.
model (Legacy)
Type: Map
Mit der Modellressource können Sie Legacymodelle in Bündeln definieren. Databricks empfiehlt, stattdessen die in Unity-Katalog registrierten Modelle zu verwenden.
Modellbereitstellung-Endpunkt
Type: Map
Mit der model_serving_endpoint-Ressource können Sie Modell definieren, das Endpunktebedient. Weitere Informationen finden Sie unter Verwalten von Modellbereitstellungsendpunkten.
model_serving_endpoints:
<model_serving_endpoint-name>:
<model_serving_endpoint-field-name>: <model_serving_endpoint-field-value>
Schlüssel | Typ | BESCHREIBUNG |
---|---|---|
ai_gateway |
Landkarte | Die Konfiguration des AI-Gateways für den bereitstellenden Endpunkt. HINWEIS: Derzeit werden nur externe Modell- und bereitgestellte Durchsatzendpunkte unterstützt. Siehe ai_gateway. |
config |
Landkarte | Die Kernkonfiguration des Bereitstellungsendpunkts. Siehe "config". |
name |
Schnur | Der Name des Bereitstellungsendpunkts Dieses Feld ist erforderlich und muss in einem Databricks-Arbeitsbereich eindeutig sein. Ein Endpunktname kann aus alphanumerischen Zeichen, Gedankenstrichen und Unterstrichen bestehen. |
permissions |
Reihenfolge | Das Modell, das die Berechtigungen des Endpunkts bedient. Weitere Informationen finden Sie unter Berechtigungen. |
rate_limits |
Reihenfolge | Veraltet (nicht mehr empfohlen) Ratengrenzwerte, die auf den Dienstendpunkt angewendet werden sollen. Verwenden Sie AI-Gateway, um Ratelimits zu verwalten. |
route_optimized |
Boolescher Wert | Aktivieren Sie die Routenoptimierung für den Dienstendpunkt. |
tags |
Reihenfolge | Tags, die an den Bereitstellungsendpunkt angefügt und automatisch an Abrechnungsprotokolle weitergeleitet werden sollen. Siehe Tags. |
Beispiel
Im folgenden Beispiel wird ein Unity-Katalogmodell definiert, das Endpunkte bedient:
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'
Rohrleitung
Type: Map
Mit der Pipelineressource können Sie Lakeflow Declarative Pipelines erstellen. Informationen zu Pipelines finden Sie unter Lakeflow Declarative Pipelines. Ein Lernprogramm, das die Vorlage "Databricks Asset Bundles" zum Erstellen einer Pipeline verwendet, finden Sie unter Develop Lakeflow Declarative Pipelines with Databricks Asset Bundles.
pipelines:
<pipeline-name>:
<pipeline-field-name>: <pipeline-field-value>
Schlüssel | Typ | BESCHREIBUNG |
---|---|---|
allow_duplicate_names |
Boolescher Wert | Wenn dieser Wert auf „false“ fesgelegt wird, schlägt die Bereitstellung fehl, wenn der Name mit der einer anderen Pipeline in Konflikt steht. |
catalog |
Schnur | Ein Katalog innerhalb des Unity-Katalogs, in dem Daten aus dieser Pipeline veröffentlicht werden können. Wenn target angegeben, werden Tabellen in dieser Pipeline in einem target Schema innerhalb catalog (z. B catalog . .target .table ) veröffentlicht. Wenn target nicht angegeben, werden keine Daten im Unity-Katalog veröffentlicht. |
channel |
Schnur | Der Lakeflow Declarative Pipelines Release Channel, der angibt, welche Version von Lakeflow Declarative Pipelines verwendet werden soll. |
clusters |
Reihenfolge | Die Clustereinstellungen für diese Pipelinebereitstellung. Siehe Cluster. |
configuration |
Landkarte | Die Konfiguration für diese Pipelineausführung. |
continuous |
Boolescher Wert | Gibt an, ob die Pipeline fortlaufend ist oder ausgelöst wird. Dieser Schlüssel ersetzt trigger . |
deployment |
Landkarte | Bereitstellungstyp dieser Pipeline. Weitere Informationen finden Sie unter Bereitstellung. |
development |
Boolescher Wert | Gibt an, ob sich die Pipeline im Entwicklungsmodus befindet. Der Standardwert ist „false“. |
dry_run |
Boolescher Wert | Gibt an, ob es sich bei der Pipeline um eine Trockenlaufpipeline handelt. |
edition |
Schnur | Die Edition des Pipelineprodukts. |
event_log |
Landkarte | Die Ereignisprotokollkonfiguration für diese Pipeline. Siehe event_log. |
filters |
Landkarte | Die Filter, die bestimmen, welche Pipelinepakete in das bereitgestellte Diagramm aufgenommen werden sollen. Siehe Filter. |
id |
Schnur | Eindeutiger Bezeichner für diese Pipeline. |
ingestion_definition |
Landkarte | Die Konfiguration für eine verwaltete Aufnahmepipeline. Diese Einstellungen können nicht mit den Einstellungen libraries , schema , target , oder catalog verwendet werden. Siehe ingestion_definition. |
libraries |
Reihenfolge | Von dieser Bereitstellung benötigte Bibliotheken oder benötigter Code. Siehe Bibliotheken. |
name |
Schnur | Ein benutzerfreundlicher Name für diese Pipeline. |
notifications |
Reihenfolge | Die Benachrichtigungseinstellungen für diese Pipeline. Siehe Benachrichtigungen. |
permissions |
Reihenfolge | Die Berechtigungen der Pipeline. Weitere Informationen finden Sie unter Berechtigungen. |
photon |
Boolescher Wert | Gibt an, ob Photon für diese Pipeline aktiviert ist. |
schema |
Schnur | Das Standardschema (Datenbank), in dem Tabellen gelesen oder veröffentlicht werden. |
serverless |
Boolescher Wert | Gibt an, ob die serverlose Berechnung für diese Pipeline aktiviert ist. |
storage |
Schnur | Das DBFS-Stammverzeichnis zum Speichern von Prüfpunkten und Tabellen. |
target |
Schnur | Zielschema (Datenbank), dem Tabellen in dieser Pipeline hinzugefügt werden sollen. Genau einer von schema oder target muss angegeben werden. Wenn Sie im Unity-Katalog veröffentlichen möchten, geben Sie auch an catalog . Dieses veraltete Feld wird für die Pipelineerstellung nicht mehr empfohlen und sollte zugunsten des Felds schema ersetzt werden. |
trigger |
Landkarte | Veraltet (nicht mehr empfohlen) Gibt an, welcher Pipelinetrigger verwendet werden soll. Verwenden Sie stattdessen continuous . |
Beispiel
Im folgenden Beispiel wird eine Pipeline mit dem Ressourcenschlüssel hello-pipeline
definiert:
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
Quality-Monitor (Unity-Katalog)
Type: Map
Mit der quality_monitor-Ressource können Sie einen Unity Catalog-Tabellenmonitor definieren. Informationen zu Monitoren finden Sie in der Einführung in Databricks Lakehouse Monitoring.
quality_monitors:
<quality_monitor-name>:
<quality_monitor-field-name>: <quality_monitor-field-value>
Schlüssel | Typ | BESCHREIBUNG |
---|---|---|
assets_dir |
Schnur | Das Verzeichnis zum Speichern von Überwachungsressourcen (z. B. Dashboard, Metriktabellen). |
baseline_table_name |
Schnur | Name der Basistabelle, aus der Driftmetriken berechnet werden. Spalten in der überwachten Tabelle sollten auch in der Baselinetabelle vorhanden sein. |
custom_metrics |
Reihenfolge | Benutzerdefinierte Metriken, die für die überwachte Tabelle berechnet werden sollen. Hierbei kann es sich um aggregierte Metriken, abgeleitete Metriken (aus bereits berechneten Aggregatmetriken) oder Driftmetriken (Vergleich von Metriken über Zeitfenster) sein. Siehe custom_metrics. |
inference_log |
Landkarte | Konfiguration für die Überwachung von Inferezprotokollen. Siehe inference_log. |
notifications |
Landkarte | Die Benachrichtigungseinstellungen für den Monitor. Siehe Benachrichtigungen. |
output_schema_name |
Schnur | Schema, in dem Ausgabemetriktabellen erstellt werden. |
schedule |
Landkarte | Der Zeitplan für die automatische Aktualisierung und die Aktualisierung von Metriktabellen. Siehe Zeitplan. |
skip_builtin_dashboard |
Boolescher Wert | Gibt an, ob Sie das Erstellen eines Standarddashboards überspringen möchten, in dem Datenqualitätsmetriken zusammengefasst werden. |
slicing_exprs |
Reihenfolge | Liste der Spaltenausdrücke zum Aufteilen von Daten für gezielte die Analyse. Die Daten werden nach jedem Ausdruck unabhängig gruppiert, was zu einem separaten Segment für jedes Prädikat und seine Ergänzungen führt. Bei Spalten mit hoher Kardinalität werden nur die nach Häufigkeit 100 häufigsten eindeutigen Werte Segmente generieren. |
snapshot |
Landkarte | Konfiguration für die Überwachung von Snapshot-Tabellen. |
table_name |
Schnur | Der vollständige Name der Tabelle. |
time_series |
Landkarte | Konfiguration für die Überwachung von Zeitreihentabellen. Siehe time_series. |
warehouse_id |
Schnur | Optionales Argument zum Angeben des Lagers für die Dashboarderstellung. Wenn nicht angegeben, wird das erste laufende Lager verwendet. |
Beispiele
Ein vollständiges Beispielbundle, das einen quality_monitor
definiert, finden Sie im mlops_demo-Bundle.
In den folgenden Beispielen werden Qualitätsmonitore für InferenceLog-, TimeSeries- und Snapshot-Profiltypen definiert.
# InferenceLog profile type
resources:
quality_monitors:
my_quality_monitor:
table_name: dev.mlops_schema.predictions
output_schema_name: ${bundle.target}.mlops_schema
assets_dir: /Workspace/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
# TimeSeries profile type
resources:
quality_monitors:
my_quality_monitor:
table_name: dev.mlops_schema.predictions
output_schema_name: ${bundle.target}.mlops_schema
assets_dir: /Workspace/Users/${workspace.current_user.userName}/databricks_lakehouse_monitoring
time_series:
granularities: [30 minutes]
timestamp_col: timestamp
schedule:
quartz_cron_expression: 0 0 8 * * ? # Run Every day at 8am
timezone_id: UTC
# Snapshot profile type
resources:
quality_monitors:
my_quality_monitor:
table_name: dev.mlops_schema.predictions
output_schema_name: ${bundle.target}.mlops_schema
assets_dir: /Workspace/Users/${workspace.current_user.userName}/databricks_lakehouse_monitoring
snapshot: {}
schedule:
quartz_cron_expression: 0 0 8 * * ? # Run Every day at 8am
timezone_id: UTC
registriertes_Modell (Unity-Katalog)
Type: Map
Mit der registrierten Modellressource können Sie Modelle im Unity-Katalog definieren. Informationen zu den im Unity-Katalog registrierten Modellenfinden Sie unter Verwalten des Modelllebenszyklus im Unity-Katalog.
registered_models:
<registered_model-name>:
<registered_model-field-name>: <registered_model-field-value>
Schlüssel | Typ | BESCHREIBUNG |
---|---|---|
catalog_name |
Schnur | Der Name des Katalogs, in dem sich das Schema und das registrierte Modell befinden. |
comment |
Schnur | Der Kommentar, der dem registrierten Modell zugeordnet ist. |
grants |
Reihenfolge | Die dem registrierten Modell zugeordneten Zuschüsse. Siehe Zuschüsse. |
name |
Schnur | Der Name des registrierten Modells. |
schema_name |
Schnur | Der Name des Schemas, in dem sich das registrierte Modell befindet. |
storage_location |
Schnur | Der Speicherort in der Cloud, unter dem Modellversionsdatendateien gespeichert werden. |
Beispiel
Im folgenden Beispiel wird ein registriertes Modell im Unity-Katalog definiert:
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
Schema (Unity Catalog)
Type: Map
Mit dem Schemaressourcentyp können Sie Unity-Katalog Schemas für Tabellen und andere Ressourcen in Ihren Workflows und Pipelines definieren, die als Teil eines Bündels erstellt wurden. Ein Schema, das sich von anderen Ressourcentypen unterscheidet, weist die folgenden Einschränkungen auf:
- Der Besitzer einer Schemaressource ist immer der Bereitstellungsbenutzer und kann nicht geändert werden. Wenn
run_as
im Bundle angegeben ist, wird sie von Vorgängen im Schema ignoriert. - Für die Schemaressource sind nur Felder verfügbar, die vom entsprechenden Schemas-Objekt-Erstellungs-API unterstützt werden. Beispielsweise wird
enable_predictive_optimization
nicht unterstützt, da sie nur in der Update-APIverfügbar ist.
schemas:
<schema-name>:
<schema-field-name>: <schema-field-value>
Schlüssel | Typ | BESCHREIBUNG |
---|---|---|
catalog_name |
Schnur | Der Name des übergeordneten Katalogs. |
comment |
Schnur | Eine vom Benutzer bereitgestellte Freiformtextbeschreibung. |
grants |
Reihenfolge | Die dem Schema zugeordneten Zuschüsse. Siehe Zuschüsse. |
name |
Schnur | Der Name des Schemas in Bezug auf den übergeordneten Katalog. |
properties |
Landkarte | Eine Zuordnung von Schlüsselwerteigenschaften, die dem Schema zugeordnet sind. |
storage_root |
Schnur | Die Speicherstamm-URL für verwaltete Tabellen innerhalb des Schemas. |
Beispiele
Im folgenden Beispiel wird eine Pipeline mit dem Ressourcenschlüssel my_pipeline
definiert, die ein Unity-Katalogschema mit dem Schlüssel my_schema
als Ziel erstellt:
resources:
pipelines:
my_pipeline:
name: test-pipeline-{{.unique_id}}
libraries:
- notebook:
path: ../src/nb.ipynb
- file:
path: ../src/range.sql
development: true
catalog: ${resources.schemas.my_schema.catalog_name}
target: ${resources.schemas.my_schema.id}
schemas:
my_schema:
name: test-schema-{{.unique_id}}
catalog_name: main
comment: This schema was created by Databricks Asset Bundles.
Eine Zuordnung von Zuschüssen auf oberster Ebene wird von Databricks Asset Bundles nicht unterstützt. Wenn Sie also Zuschüsse für ein Schema festlegen möchten, definieren Sie die Zuschüsse für das Schema innerhalb der schemas
-Zuordnung. Weitere Informationen zu Berechtigungen finden Sie unter Berechtigungen anzeigen, zuweisen und widerrufen.
Im folgenden Beispiel wird ein Unity-Katalogschema mit Zuschüssen definiert:
resources:
schemas:
my_schema:
name: test-schema
grants:
- principal: users
privileges:
- SELECT
- principal: my_team
privileges:
- CAN_MANAGE
catalog_name: main
geheimer_Bereich
Type: Map
Mit der secret_scope-Ressource können Sie geheime Bereiche in einem Bündel definieren. Informationen zu geheimen Bereichen finden Sie unter "Geheime Verwaltung".
secret_scopes:
<secret_scope-name>:
<secret_scope-field-name>: <secret_scope-field-value>
Schlüssel | Typ | BESCHREIBUNG |
---|---|---|
backend_type |
Schnur | Der Backend-Typ, mit dem der Bereich erstellt wird. Wenn nicht angegeben, wird dies standardmäßig auf DATABRICKS gesetzt. |
keyvault_metadata |
Landkarte | Die Metadaten für den geheimen Bereich, wenn backend_type gleich AZURE_KEYVAULT ist. |
name |
Schnur | Vom Benutzer angeforderter Bereichsname. Bereichsnamen sind eindeutig. |
permissions |
Reihenfolge | Die Berechtigungen, die auf den geheimen Bereich angewendet werden sollen. Berechtigungen werden über Secret Scope ACLs verwaltet. Weitere Informationen finden Sie unter Berechtigungen. |
Beispiele
Im folgenden Beispiel wird ein geheimer Bereich definiert, der ein Schlüsseltresor-Back-End verwendet:
resources:
secret_scopes:
secret_scope_azure:
name: test-secrets-azure-backend
backend_type: 'AZURE_KEYVAULT'
keyvault_metadata:
resource_id: my_azure_keyvault_id
dns_name: my_azure_keyvault_dns_name
Im folgenden Beispiel wird eine benutzerdefinierte ACL mit geheimen Bereichen und Berechtigungen festgelegt:
resources:
secret_scopes:
my_secret_scope:
name: my_secret_scope
permissions:
- user_name: admins
level: WRITE
- user_name: users
level: READ
Ein Beispielbundle, das veranschaulicht, wie ein geheimer Bereich und ein Auftrag mit einer Aufgabe definiert werden, die aus einem Bundle gelesen wird, finden Sie im GitHub-Repository für Bundlebeispiele.
Volume (Unity Catalog)
Type: Map
Mit dem Ressourcentyp „Volume“ können Sie Unity Catalog-Volumes als Teil eines Bundles definieren und erstellen. Beachten Sie beim Bereitstellen eines Bundles mit einem definierten Volume Folgendes:
- Auf ein Volume kann im
artifact_path
für das Bundle nicht verwiesen werden, bis es im Arbeitsbereich vorhanden ist. Wenn Sie also Databricks-Ressourcenbundles verwenden möchten, um das Volume zu erstellen, müssen Sie zuerst das Volume im Bundle definieren, es zum Erstellen des Volumes bereitstellen und dann bei nachfolgenden Bereitstellungen inartifact_path
darauf verweisen. - Wenn für das Bereitstellungsziel
dev_${workspace.current_user.short_name}
konfiguriert ist, wird Volumes im Bundle nicht das Präfixmode: development
vorangestellt. Sie können dieses Präfix jedoch manuell konfigurieren. Weitere Informationen finden Sie unter Benutzerdefinierte Voreinstellungen.
volumes:
<volume-name>:
<volume-field-name>: <volume-field-value>
Schlüssel | Typ | BESCHREIBUNG |
---|---|---|
catalog_name |
Schnur | Der Name des Katalogs des Schemas und des Volumes. |
comment |
Schnur | Ein an das Volume angefügter Kommentar. |
grants |
Reihenfolge | Die Zuweisungen, die dem Volume zugeordnet sind. Siehe Zuschüsse. |
name |
Schnur | Der Name des Volumes. |
schema_name |
Schnur | Der Name des Schemas, in dem sich das Volume befindet. |
storage_location |
Schnur | Der Speicherort in der Cloud. |
volume_type |
Schnur | Der Volumetyp (entweder EXTERNAL oder MANAGED ). Ein externes Volume befindet sich am angegebenen externen Speicherort. Ein verwaltetes Volume befindet sich am Standardspeicherort, der durch das übergeordnete Schema, den übergeordneten Katalog oder den Metastore angegeben wird. Siehe verwaltete und externe Volumes. |
Beispiel
Im folgenden Beispiel wird ein Unity-Katalogvolume mit dem Schlüssel my_volume
erstellt:
resources:
volumes:
my_volume:
catalog_name: main
name: my_volume
schema_name: my_schema
Ein Beispielbundle, das einen Auftrag ausführt, der in eine Datei im Unity Catalog-Volume schreibt, finden Sie im GitHub-Repository „bundle-examples“.
Allgemeine Objekte
Stipendien
Type: Sequence
Schlüssel | Typ | BESCHREIBUNG |
---|---|---|
principal |
Schnur | Der Name des Prinzipals, dem Berechtigungen erteilt werden. |
privileges |
Reihenfolge | Die Berechtigungen, die der angegebenen Entität gewährt werden sollen. |