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.
Dieser Artikel enthält Beispielkonfigurationen für Databricks Asset Bundles-Funktionen und gängige Bundle-Nutzungsfälle.
Vollständige Bundlebeispiele, die in der folgenden Tabelle beschrieben sind, sind im GitHub-Repository für Bundlebeispiele verfügbar:
| Paketname | BESCHREIBUNG |
|---|---|
| app_with_database | Ein Bündel mit einer Databricks-App, die von einer OLTP Postgres-Datenbank unterstützt wird |
| dashboard_nyc_taxi | Ein Bündel mit einem AI/BI-Dashboard und einem Auftrag, der eine Momentaufnahme des Dashboards erfasst und an einen Abonnenten per E-Mail sendet |
| database_with_catalog | Ein Bündel, das eine OLTP-Datenbankinstanz und einen Datenbankkatalog definiert |
| databricks_app | Ein Bündel, das eine Databricks-App definiert |
| Entwicklungs-Cluster | Ein Bündel, das einen Allzweck-Entwicklungscluster definiert und verwendet. |
| job_read_secret | Ein Bundle, das einen geheimen Reservierungsumfang und einen Einzelvorgang mit einer Aufgabe definiert, die daraus liest |
| Job_mit_mehreren_Rädern | Ein Bundle, das einen Einzelvorgang mit mehreren Rad-Abhängigkeiten definiert und verwendet |
| job_with_run_job_tasks | Ein Bundle mit mehreren Jobs mit Einzelvorgängen |
| job_with_sql_notebook | Ein Bündel mit einem Auftrag, der eine SQL-Notizbuchaufgabe verwendet |
| Pipeline_mit_Schema | Ein Bündel, das ein Unity-Katalogschema und eine Pipeline definiert, die es verwendet |
| private_wheel_packages | Ein Bundle, das ein privates Radpaket aus einem Einzelvorgang verwendet |
| python_wheel_poetry | Ein Paket, das mit der Software "Poetry" ein whl erstellt. |
| serverless_job | Ein Paket, das serverlose Rechnerleistung zum Ausführen eines Auftrags verwendet |
| Dateien über Bündel hinweg teilen | Ein Bündel, das Dateien enthält, die sich außerhalb des Stammverzeichnisses des Bundles befinden. |
| spark_jar_task | Ein Bündel, das eine Spark JAR-Aufgabe definiert und verwendet |
| write_from_job_to_volume | Ein Bündel, das eine Datei in ein Unity-Katalogvolume schreibt |
Bündelszenarien
Dieser Abschnitt enthält Konfigurationsbeispiele, die die Verwendung von Bündelzuordnungen der obersten Ebene veranschaulichen. Siehe Konfigurationsreferenz.
Bundle, das eine JAR-Datei in den Unity-Katalog hochlädt
Anstatt im Voraus zu wissen, welches Konto auf allen Geräten angegriffen werden soll, muss der Angreifer den Namen des Kontos auf einem bestimmten Zielgerät irgendwie herausfinden. Das folgende Beispielbundle erstellt und lädt eine JAR-Datei in den Unity-Katalog hoch. Informationen über die artifact_path mapping, see artifact_path. Für Informationen zu artifacts, siehe Artefakte.
bundle:
name: jar-bundle
workspace:
host: https://myworkspace.cloud.databricks.com
artifact_path: /Volumes/main/default/my_volume
artifacts:
my_java_code:
path: ./sample-java
build: 'javac PrintArgs.java && jar cvfm PrintArgs.jar META-INF/MANIFEST.MF PrintArgs.class'
files:
- source: ./sample-java/PrintArgs.jar
resources:
jobs:
jar_job:
name: 'Spark Jar Job'
tasks:
- task_key: SparkJarTask
new_cluster:
num_workers: 1
spark_version: '14.3.x-scala2.12'
node_type_id: 'i3.xlarge'
spark_jar_task:
main_class_name: PrintArgs
libraries:
- jar: ./sample-java/PrintArgs.jar
Auftragskonfiguration
Dieser Abschnitt enthält Beispiele für die Jobkonfiguration. Details zur Jobkonfiguration finden Sie unter Job.
Auftrag, der serverlose Berechnung verwendet
Databricks Asset Bundles unterstützen Einzelvorgänge, die auf serverless compute. Siehe Ausführen von Lakeflow-Aufträgen mit serverloser Berechnung für Workflows. Um dies zu konfigurieren, können Sie entweder die einstellung clusters für einen Auftrag mit einer Notizbuchaufgabe weglassen, oder Sie können eine Umgebung angeben, wie in den folgenden Beispielen gezeigt. Für Python-Skript-, Python-Rad- und DBT-Aufgaben ist environment_key für die serverlose Berechnung erforderlich. See environment_Schlüssel.
# A serverless job (no cluster definition)
resources:
jobs:
serverless_job_no_cluster:
name: serverless_job_no_cluster
email_notifications:
on_failure:
- someone@example.com
tasks:
- task_key: notebook_task
notebook_task:
notebook_path: ../src/notebook.ipynb
# A serverless job (environment spec)
resources:
jobs:
serverless_job_environment:
name: serverless_job_environment
tasks:
- task_key: task
spark_python_task:
python_file: ../src/main.py
# The key that references an environment spec in a job.
# https://docs.databricks.com/api/workspace/jobs/create#tasks-environment_key
environment_key: default
# A list of task execution environment specifications that can be referenced by tasks of this job.
environments:
- environment_key: default
# Full documentation of this spec can be found at:
# https://docs.databricks.com/api/workspace/jobs/create#environments-spec
spec:
environment_version: '2'
dependencies:
- my-library
Einzelvorgang mit mehreren Raddateien
In der folgenden Beispielkonfiguration wird ein Bündel definiert, das eine Aufgabe mit mehreren *.whl Dateien enthält.
# job.yml
resources:
jobs:
example_job:
name: 'Example with multiple wheels'
tasks:
- task_key: task
spark_python_task:
python_file: ../src/call_wheel.py
libraries:
- whl: ../my_custom_wheel1/dist/*.whl
- whl: ../my_custom_wheel2/dist/*.whl
new_cluster:
node_type_id: i3.xlarge
num_workers: 0
spark_version: 14.3.x-scala2.12
spark_conf:
'spark.databricks.cluster.profile': 'singleNode'
'spark.master': 'local[*, 4]'
custom_tags:
'ResourceClass': 'SingleNode'
# databricks.yml
bundle:
name: job_with_multiple_wheels
include:
- ./resources/job.yml
workspace:
host: https://myworkspace.cloud.databricks.com
artifacts:
my_custom_wheel1:
type: whl
build: poetry build
path: ./my_custom_wheel1
my_custom_wheel2:
type: whl
build: poetry build
path: ./my_custom_wheel2
targets:
dev:
default: true
mode: development
Auftrag mit Parametern
Die folgende Beispielkonfiguration definiert einen Auftrag mit Parametern. Weitere Informationen zum Parametrisieren von Aufträgen finden Sie unter Parameterisieren von Aufträgen.
resources:
jobs:
job_with_parameters:
name: job_with_parameters
tasks:
- task_key: task_a
spark_python_task:
python_file: ../src/file.py
parameters:
- '--param1={{ job.parameters.param1 }}'
- '--param2={{ job.parameters.param2 }}'
new_cluster:
node_type_id: i3.xlarge
num_workers: 1
spark_version: 14.3.x-scala2.12
parameters:
- name: param1
default: value1
- name: param2
default: value1
Diese Parameter können zur Laufzeit festgelegt werden, indem Auftragsparameter an bundle runübergeben werden, z. B.:
databricks bundle run -- --param1=value2 --param2=value2
Einzelvorgang, der eine requirements.txt-Datei verwendet
Die folgende Beispielkonfiguration definiert einen Einzelvorgang, der eine Datei "requirements.txt" verwendet.
resources:
jobs:
job_with_requirements_txt:
name: 'Example job that uses a requirements.txt file'
tasks:
- task_key: task
job_cluster_key: default
spark_python_task:
python_file: ../src/main.py
libraries:
- requirements: /Workspace/${workspace.file_path}/requirements.txt
Tätigkeit nach Zeitplan
Die folgenden Beispiele zeigen die Konfiguration für Aufträge, die in einem Zeitplan ausgeführt werden. Informationen zu Auftragsplänen und Triggern finden Sie unter Automatisieren von Aufträgen mit Zeitplänen und Triggern.
Diese Konfiguration definiert einen Auftrag, der täglich zu einem bestimmten Zeitpunkt ausgeführt wird:
resources:
jobs:
my-notebook-job:
name: my-notebook-job
tasks:
- task_key: my-notebook-task
notebook_task:
notebook_path: ./my-notebook.ipynb
schedule:
quartz_cron_expression: '0 0 8 * * ?' # daily at 8am
timezone_id: UTC
pause_status: UNPAUSED
In dieser Konfiguration wird der Auftrag eine Woche nach der letzten Ausführung des Auftrags ausgeführt:
resources:
jobs:
my-notebook-job:
name: my-notebook-job
tasks:
- task_key: my-notebook-task
notebook_task:
notebook_path: ./my-notebook.ipynb
trigger:
pause_status: UNPAUSED
periodic:
interval: 1
unit: WEEKS
Pipelinekonfiguration
Dieser Abschnitt enthält Pipelinekonfigurationsbeispiele. Informationen zur Pipelinekonfiguration finden Sie unter Pipeline.
Pipeline, die Serverless Compute verwendet
Databricks Asset Bundles unterstützen Pipelines, die auf serverless compute. Um dies zu konfigurieren, setzen Sie die Einstellung für die Pipeline serverless auf true. Die folgende Beispielkonfiguration definiert eine Pipeline, die auf serverloser Berechnung mit installierten Abhängigkeiten ausgeführt wird, und einen Auftrag, der jede Stunde eine Aktualisierung der Pipeline auslöst.
# A pipeline that runs on serverless compute
resources:
pipelines:
my_pipeline:
name: my_pipeline
target: ${bundle.environment}
serverless: true
environment:
dependencies:
- 'dist/*.whl'
catalog: users
libraries:
- notebook:
path: ../src/my_pipeline.ipynb
configuration:
bundle.sourcePath: /Workspace/${workspace.file_path}/src
# This defines a job to refresh a pipeline that is triggered every hour
resources:
jobs:
my_job:
name: my_job
# Run this job once an hour.
trigger:
periodic:
interval: 1
unit: HOURS
email_notifications:
on_failure:
- someone@example.com
tasks:
- task_key: refresh_pipeline
pipeline_task:
pipeline_id: ${resources.pipelines.my_pipeline.id}