Freigeben über


Databricks Asset Bundles-Ressourcen

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_confund 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 2200verwendet 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-pipelinedefiniert:

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 in artifact_path darauf verweisen.
  • Wenn für das Bereitstellungsziel dev_${workspace.current_user.short_name} konfiguriert ist, wird Volumes im Bundle nicht das Präfix mode: 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_volumeerstellt:

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.