Hinzufügen von Tasks zu Aufträgen in Databricks-Ressourcenpaketen
Dieser Artikel enthält Beispiele für verschiedene Arten von Aufgaben, die Sie Azure Databricks-Aufträgen in Databricks-Ressourcenpaketen hinzufügen können. Weitere Informationen finden Sie unter Was sind Databricks-Ressourcenbundles?.
Die meisten Auftragsaufgabentypen weisen aufgabenspezifische Parameter unter den unterstützten Einstellungen auf, aber Sie können auch Auftragsparameter definieren, die an Aufgaben übergeben werden. Dynamische Werteverweise werden für Auftragsparameter unterstützt, die das Übergeben bestimmter Werte für den Auftrag ermöglichen, die zwischen Vorgängen ausgeführt werden. Siehe Was ist eine dynamische Wertreferenz?.
Hinweis
Sie können Auftragsaufgabeneinstellungen außer Kraft setzen. Siehe Außerkraftsetzen von Einstellungen von Auftragsaufgaben in Databricks-Ressourcenpaketen.
Tipp
Um mithilfe der Databricks CLI schnell eine Ressourcenkonfiguration für einen vorhandenen Auftrag zu generieren, können Sie den bundle generate job
-Befehl verwenden. Siehe Bundlebefehle.
Notebooktask
Sie verwenden diesen Task, um ein Notebook auszuführen.
Im folgenden Beispiel wird einem Auftrag eine Notebook-Aufgabe hinzugefügt und ein Auftragsparameter mit dem Namen my_job_run_id
festgelegt. Der Pfad für das bereitzustellende Notebook ist relativ zur Konfigurationsdatei, in der diese Aufgabe deklariert wird. Mit dem Task wird das Notebook vom bereitgestellten Speicherort in den Azure Databricks-Arbeitsbereich abgerufen. Auslassungspunkte kennzeichnen auf aus Platzgründen ausgelassenen Inhalt.
# ...
resources:
jobs:
my-notebook-job:
name: my-notebook-job
# ...
tasks:
- task_key: my-notebook-task
notebook_task:
notebook_path: ./my-notebook.ipynb
parameters:
- name: my_job_run_id
default: "{{job.run_id}}"
# ...
# ...
Weitere Zuordnungen, die Sie für diesen Task festlegen können, finden Sie im YAML-Format gemäß der Definition in POST /api/2.1/jobs/create in der REST-API-Referenz unter tasks > notebook_task
in der Anforderungspayload des Erstellungsauftrags. Siehe Notebook-Aufgabe für Jobs.
Python-Skripttask
Sie verwenden diesen Task, um eine Python-Datei auszuführen.
Im folgenden Beispiel wird einem Auftrag ein Python-Skripttask hinzugefügt. Der Pfad für die bereitzustellende Python-Datei ist relativ zur Konfigurationsdatei, in der diese Aufgabe deklariert wird. Mit dem Task wird die Python-Datei vom bereitgestellten Speicherort in den Azure Databricks-Arbeitsbereich abgerufen. Auslassungspunkte kennzeichnen auf aus Platzgründen ausgelassenen Inhalt.
# ...
resources:
jobs:
my-python-script-job:
name: my-python-script-job
# ...
tasks:
- task_key: my-python-script-task
spark_python_task:
python_file: ./my-script.py
# ...
# ...
Weitere Zuordnungen, die Sie für diesen Task festlegen können, finden Sie im YAML-Format gemäß der Definition in POST /api/2.1/jobs/create in der REST-API-Referenz unter tasks > spark_python_task
in der Anforderungspayload des Erstellungsauftrags. Siehe auch Python-Skriptaufgabe für Jobs.
Python-Wheeltask
Sie verwenden diesen Task, um eine Python-Wheel-Datei auszuführen.
Im folgenden Beispiel wird einem Auftrag ein Python-Wheeltask hinzugefügt. Der Pfad für die bereitzustellende Python-Wheel-Datei ist relativ zur Konfigurationsdatei, in der diese Aufgabe deklariert wird. Weitere Informationen finden Sie unter Bibliotheksabhängigkeiten für Databricks-Ressourcenbundles. Auslassungspunkte kennzeichnen auf aus Platzgründen ausgelassenen Inhalt.
# ...
resources:
jobs:
my-python-wheel-job:
name: my-python-wheel-job
# ...
tasks:
- task_key: my-python-wheel-task
python_wheel_task:
entry_point: run
package_name: my_package
libraries:
- whl: ./my_package/dist/my_package-*.whl
# ...
# ...
Weitere Zuordnungen, die Sie für diesen Task festlegen können, finden Sie im YAML-Format gemäß der Definition in POST /api/2.1/jobs/create in der REST-API-Referenz unter tasks > python_wheel_task
in der Anforderungspayload des Erstellungsauftrags. Siehe auch Entwickeln einer Python-Wheel-Datei mit Databricks Asset Bundles und Python-Wheel-Aufgabe für Jobs.
JAR-Task
Sie verwenden diesen Task, um eine JAR-Datei auszuführen. Sie können auf lokale JAR-Bibliotheken oder solche in einem Arbeitsbereich, einem Unity-Katalogvolume oder einem externen Cloudspeicherort verweisen. Weitere Informationen finden Sie unter Bibliotheksabhängigkeiten für Databricks-Ressourcenbundles.
Im folgenden Beispiel wird einem Auftrag ein JAR-Task hinzugefügt. Der Pfad für die JAR-Datei ist der angegebene Volumespeicherort. Auslassungspunkte kennzeichnen auf aus Platzgründen ausgelassenen Inhalt.
# ...
resources:
jobs:
my-jar-job:
name: my-jar-job
# ...
tasks:
- task_key: my-jar-task
spark_jar_task:
main_class_name: org.example.com.Main
libraries:
- jar: /Volumes/main/default/my-volume/my-project-0.1.0-SNAPSHOT.jar
# ...
# ...
Weitere Zuordnungen, die Sie für diesen Task festlegen können, finden Sie im YAML-Format gemäß der Definition in POST /api/2.1/jobs/create in der REST-API-Referenz unter tasks > spark_jar_task
in der Anforderungspayload des Erstellungsauftrags. Siehe JAR-Aufgabe für Jobs.
SQL-Dateiaufgabe
Sie verwenden diese Aufgabe, um eine SQL-Datei in einem Arbeitsbereich oder einem Remote-Git-Repository auszuführen.
Im folgenden Beispiel wird einem Auftrag eine SQL-Dateiaufgabe hinzugefügt. Diese SQL-Dateiaufgabe verwendet das angegebene SQL-Warehouse, um die angegebene SQL-Datei auszuführen. Auslassungspunkte kennzeichnen auf aus Platzgründen ausgelassenen Inhalt.
# ...
resources:
jobs:
my-sql-file-job:
name: my-sql-file-job
# ...
tasks:
- task_key: my-sql-file-task
sql_task:
file:
path: /Users/someone@example.com/hello-world.sql
source: WORKSPACE
warehouse_id: 1a111111a1111aa1
# ...
# ...
Um die ID eines SQL-Warehouse abzurufen, öffnen Sie die Einstellungsseite des SQL-Warehouse, und kopieren Sie dann die ID in Klammern nach dem Namen des Warehouse im Feld Name auf der Registerkarte Übersicht.
Weitere Zuordnungen, die Sie für diesen Task festlegen können, finden Sie im YAML-Format gemäß der Definition in POST /api/2.1/jobs/create in der REST-API-Referenz unter tasks > sql_task > file
in der Anforderungspayload des Erstellungsauftrags. Siehe SQL-Aufgabe für Jobs.
Delta Live Tables-Pipelinetask
Sie verwenden diesen Task, um eine Delta Live Tables-Pipeline auszuführen. Weitere Informationen finden Sie unter Was sind Delta Live-Tabellen?.
Im folgenden Beispiel wird einem Auftrag ein Delta Live Tables-Pipelinetask hinzugefügt. Dieser Delta Live Tables-Pipelinetask führt die angegebene Pipeline aus. Auslassungspunkte kennzeichnen auf aus Platzgründen ausgelassenen Inhalt.
# ...
resources:
jobs:
my-pipeline-job:
name: my-pipeline-job
# ...
tasks:
- task_key: my-pipeline-task
pipeline_task:
pipeline_id: 11111111-1111-1111-1111-111111111111
# ...
# ...
Sie erhalten die Pipeline-ID, wenn Sie die Pipeline im Arbeitsbereich öffnen und den Wert der Pipeline-ID auf der Registerkarte Pipelinedetails der Einstellungsseite der Pipeline kopieren.
Weitere Zuordnungen, die Sie für diesen Task festlegen können, finden Sie im YAML-Format gemäß der Definition in POST /api/2.1/jobs/create in der REST-API-Referenz unter tasks > pipeline_task
in der Anforderungspayload des Erstellungsauftrags. Siehe Delta Live Tables-Pipeline-Aufgabe für Jobs.
DBT-Aufgabe
Sie verwenden diese Aufgabe, um einen oder mehrere DBT-Befehle auszuführen. Weitere Informationen unter Verbinden mit DBT Cloud.
Im folgenden Beispiel wird einem Auftrag eine DBT-Aufgabe hinzugefügt. Diese DBT-Aufgabe verwendet das angegebene SQL-Warehouse zum Ausführen der angegebenen DBT-Befehle.
# ...
resources:
jobs:
my-dbt-job:
name: my-dbt-job
# ...
tasks:
- task_key: my-dbt-task
dbt_task:
commands:
- "dbt deps"
- "dbt seed"
- "dbt run"
project_directory: /Users/someone@example.com/Testing
warehouse_id: 1a111111a1111aa1
libraries:
- pypi:
package: "dbt-databricks>=1.0.0,<2.0.0"
# ...
# ...
Um die ID eines SQL-Warehouse abzurufen, öffnen Sie die Einstellungsseite des SQL-Warehouse, und kopieren Sie dann die ID in Klammern nach dem Namen des Warehouse im Feld Name auf der Registerkarte Übersicht.
Weitere Zuordnungen, die Sie für diesen Task festlegen können, finden Sie im YAML-Format gemäß der Definition in POST /api/2.1/jobs/create in der REST-API-Referenz unter tasks > dbt_task
in der Anforderungspayload des Erstellungsauftrags. Siehe dbt-Aufgabe für Jobs.
Databricks-Ressourcenpakete umfassen auch eine dbt-sql
-Projektvorlage, die einen Job mit einem dbt-Task definiert, sowie dbt-Profile für bereitgestellte dbt-Jobs. Informationen zu den Vorlagen des Databricks-Ressourcenpakets finden Sie unter Verwenden einer standardmäßigen Paketvorlage.
Ausführen von Auftragsaufgaben
Sie verwenden diese Aufgabe, um einen anderen Auftrag auszuführen.
Das folgende Beispiel enthält eine Ausführungsauftragsaufgabe im zweiten Auftrag, die den ersten Auftrag ausführt.
# ...
resources:
jobs:
my-first-job:
name: my-first-job
tasks:
- task_key: my-first-job-task
new_cluster:
spark_version: "13.3.x-scala2.12"
node_type_id: "i3.xlarge"
num_workers: 2
notebook_task:
notebook_path: ./src/test.py
my_second_job:
name: my-second-job
tasks:
- task_key: my-second-job-task
run_job_task:
job_id: ${resources.jobs.my-first-job.id}
# ...
In diesem Beispiel wird eine Ersetzung verwendet, um die ID des auszuführenden Auftrags abzurufen. Um die ID eines Auftrags über die Benutzeroberfläche abzurufen, öffnen Sie den Auftrag im Arbeitsbereich und kopieren die ID aus dem Wert Auftrags-ID auf der Registerkarte Auftragsdetails der Einstellungsseite des Auftrags.
Weitere Zuordnungen, die Sie für diesen Task festlegen können, finden Sie im YAML-Format gemäß der Definition in POST /api/2.1/jobs/create in der REST-API-Referenz unter tasks > run_job_task
in der Anforderungspayload des Erstellungsauftrags.