Freigeben über


Hinzufügen von Tasks zu Jobs in Databricks Asset Bundles

Diese Seite enthält Informationen zum Definieren von Auftragsaufgaben in Databricks Asset Bundles. Informationen zu Auftragsaufgaben finden Sie unter Konfigurieren und Bearbeiten von Vorgängen in Lakeflow-Aufträgen.

Wichtig

Die Felder für Aufträge git_source und Aufgaben source, die auf GIT gesetzt sind, sind für Bundles nicht empfohlen, da lokale relative Pfade eventuell nicht denselben Inhalt im Git-Repository verweisen. Bundles erwarten, dass ein bereitgestellter Auftrag die gleichen Dateien enthält wie die lokale Kopie, von der 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.

Aufgaben konfigurieren

Definieren Sie Aufgaben für einen Auftrag in einem Bündel im tasks Schlüssel für die Auftragsdefinition. Beispiele für die Aufgabenkonfiguration für die verfügbaren Aufgabentypen finden Sie im Abschnitt " Aufgabeneinstellungen" . Informationen zum Definieren eines Jobs in einem Bündel finden Sie unter Job.

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.

Zum Festlegen von Vorgangswerten weisen die meisten Auftragsaufgabentypen aufgabenspezifische Parameter auf, Sie können aber auch Auftragsparameter definieren, die an Vorgänge übergeben werden. Dynamische Wertverweise werden für Auftragsparameter unterstützt, die das Übergeben von Werten ermöglichen, die für den Auftrag spezifisch sind, die zwischen Vorgängen ausgeführt werden. Vollständige Informationen zum Übergeben von Vorgangswerten nach Aufgabentyp finden Sie unter Details nach Aufgabentyp.

Sie können auch allgemeine Aufgabeneinstellungen mit Einstellungen für einen Ziel-Arbeitsbereich außer Kraft setzen. Siehe Mit Zieleinstellungen überschreiben.

Die folgende Beispielkonfiguration definiert einen Auftrag mit zwei Notizbuchaufgaben und übergibt einen Vorgangswert von der ersten Aufgabe an den zweiten Vorgang.

resources:
  jobs:
    pass_task_values_job:
      name: pass_task_values_job
      tasks:
        # Output task
        - task_key: output_value
          notebook_task:
            notebook_path: ../src/output_notebook.ipynb

        # Input task
        - task_key: input_value
          depends_on:
            - task_key: output_value
          notebook_task:
            notebook_path: ../src/input_notebook.ipynb
            base_parameters:
              received_message: '{{tasks.output_value.values.message}}'

Der output_notebook.ipynb enthält den folgenden Code, der einen Aufgabenwert für den message Schlüssel festlegt:

# Databricks notebook source
# This first task sets a simple output value.

message = "Hello from the first task"

# Set the message to be used by other tasks
dbutils.jobs.taskValues.set(key="message", value=message)

print(f"Produced message: {message}")

Der input_notebook.ipynb Wert des Parameters received_messagewird abgerufen, der in der Konfiguration für die Aufgabe festgelegt wurde:

# This notebook receives the message as a parameter.

dbutils.widgets.text("received_message", "")
received_message = dbutils.widgets.get("received_message")

print(f"Received message: {received_message}")

Aufgabeneinstellungen

Dieser Abschnitt enthält Einstellungen und Beispiele für jeden Auftragsaufgabentyp.

Reinraumnotizbuch-Aufgabe

Die Aufgabe "Notizbuch für reinen Raum" führt ein Notizbuch für saubere Räume aus, wenn das clean_rooms_notebook_task Feld vorhanden ist. Informationen zu Reinräumen finden Sie unter Was ist Azure Databricks Clean Rooms?.

Die folgenden Schlüssel sind für eine Notizbuchaufgabe für Reinräume verfügbar. Die entsprechende REST-API-Objektdefinition finden Sie unter clean_rooms_notebook_task.

Key Typ Description
clean_room_name String Erforderlich. Der Reinraum, zu dem das Notizbuch gehört.
etag String Prüfsumme zum Überprüfen der Aktualität der Notizbuchressource. Es kann abgerufen werden, indem der clean room assets get operation aufgerufen wird.
object Map Basisparameter, die für den Cleanroom-Notebook-Auftrag verwendet werden sollen.
notebook_name String Erforderlich. Name des ausgeführten Notizbuchs.

Bedingungsaufgabe

Der condition_task ermöglicht es Ihnen, Ihrem Job eine Aufgabe mit if/else-bedingter Logik hinzuzufügen. Der Vorgang wertet eine Bedingung aus, die zum Steuern der Ausführung anderer Aufgaben verwendet werden kann. Die Bedingungsaufgabe erfordert keinen Cluster zur Ausführung und unterstützt keine Wiederholungen oder Benachrichtigungen. Weitere Informationen zur If/Else-Bedingungsaufgabe finden Sie unter Verzweigungslogik zu einem Auftrag mit der Aufgabe If/Else hinzufügen.

Die folgenden Schlüssel sind für eine Bedingungsaufgabe verfügbar. Die entsprechende REST-API-Objektdefinition finden Sie unter condition_task.

Key Typ Description
left String Erforderlich. Der linke Operand der Bedingung. Kann ein Zeichenfolgenwert, ein Auftragszustand oder ein dynamischer Wertverweis wie {{job.repair_count}} oder {{tasks.task_key.values.output}} sein.
op String Erforderlich. Der für den Vergleich zu verwendende Operator. Gültige Werte sind: EQUAL_TO, , NOT_EQUAL, GREATER_THANGREATER_THAN_OR_EQUAL, , LESS_THAN. LESS_THAN_OR_EQUAL
right String Erforderlich. Der rechte Operand der Bedingung. Kann ein Zeichenfolgenwert, ein Auftragszustand oder eine Referenz auf einen dynamischen Wert sein.

Examples

Das folgende Beispiel enthält eine Bedingungsaufgabe und eine Notebooktask, bei der die Notebooktask nur ausgeführt wird, wenn die Anzahl der Auftragsreparaturen kleiner als 5 ist.

resources:
  jobs:
    my-job:
      name: my-job
      tasks:
        - task_key: condition_task
          condition_task:
            op: LESS_THAN
            left: '{{job.repair_count}}'
            right: '5'
        - task_key: notebook_task
          depends_on:
            - task_key: condition_task
              outcome: 'true'
          notebook_task:
            notebook_path: ../src/notebook.ipynb

Aufgabe im Dashboard

Sie verwenden diese Aufgabe, um ein Dashboard zu aktualisieren und eine Momentaufnahme an Abonnenten zu senden. Weitere Informationen zu Dashboards in Bündeln finden Sie im Dashboard.

Die folgenden Schlüssel sind für eine Dashboardaufgabe verfügbar. Die entsprechende REST-API-Objektdefinition finden Sie unter dashboard_task.

Key Typ Description
dashboard_id String Erforderlich. Der Bezeichner des Dashboards, das aktualisiert werden soll. Das Dashboard muss bereits vorhanden sein.
subscription Map Die Abonnementkonfiguration zum Senden der Dashboardmomentaufnahme. Jedes Abonnementobjekt kann Einstellungen für Ziele angeben, an die Momentaufnahmen nach Abschluss der Aktualisierung des Dashboards gesendet werden sollen. Siehe Abonnement.
warehouse_id String Die Lager-ID, mit der das Dashboard für den Zeitplan ausgeführt werden soll. Wenn nicht angegeben, wird das Standardlager des Dashboards verwendet.

Examples

Im folgenden Beispiel wird einem Auftrag eine Dashboardaufgabe hinzugefügt. Wenn der Auftrag ausgeführt wird, wird das Dashboard mit der angegebenen ID aktualisiert.

resources:
  jobs:
    my-dashboard-job:
      name: my-dashboard-job
      tasks:
        - task_key: my-dashboard-task
          dashboard_task:
            dashboard_id: 11111111-1111-1111-1111-111111111111

dbt-Aufgabe

Sie verwenden diese Aufgabe, um einen oder mehrere DBT-Befehle auszuführen. Weitere Informationen zu dbt finden Sie unter "Herstellen einer Verbindung mit dbt Cloud".

Die folgenden Schlüssel sind für einen dbt-Vorgang verfügbar. Die entsprechende REST-API-Objektdefinition finden Sie unter dbt_task.

Key Typ Description
catalog String Der Name des zu verwendenden Katalogs. Der Katalogwert kann nur angegeben werden, wenn ein warehouse_id Wert angegeben ist. Für dieses Feld ist dbt-databricks >= 1.1.1 erforderlich.
commands Sequence Erforderlich. Eine Liste der dbt-Befehle, die in Sequenz ausgeführt werden sollen. Jeder Befehl muss ein vollständiger DBT-Befehl sein (z. B. dbt deps, , dbt seed, dbt run). dbt test Maximal 10 Befehle können bereitgestellt werden.
profiles_directory String Der Pfad zum Verzeichnis, das die dbt-profiles.yml Datei enthält. Kann nur angegeben werden, wenn kein warehouse_id angegeben ist. Wenn kein warehouse_id Wert angegeben ist und dieser Ordner nicht festgelegt ist, wird das Stammverzeichnis verwendet.
project_directory String Der Pfad zum Verzeichnis, das das dbt-Projekt enthält. Wenn nicht angegeben, wird standardmäßig der Stamm des Repositoryverzeichnisses oder des Arbeitsbereichsverzeichnisses verwendet. Für Projekte, die im Databricks-Arbeitsbereich gespeichert sind, muss der Pfad absolut sein und mit einem Schrägstrich beginnen. Für Projekte in einem Remote-Repository muss der Pfad relativ sein.
schema String Das schema, in das geschrieben werden soll. Dieser Parameter wird nur verwendet, wenn auch ein warehouse_id Parameter bereitgestellt wird. Wenn nicht angegeben, wird das Standardschema verwendet.
source String Der Standorttyp des dbt-Projekts. Gültige Werte sind WORKSPACE und GIT. Bei Festlegung auf WORKSPACE, wird das Projekt aus dem Databricks-Arbeitsbereich abgerufen. Wenn GIT festgelegt ist, wird das Projekt aus einem Git-Repository abgerufen, das in git_source definiert ist. Wenn leer, verwendet die Aufgabe GIT, wenn git_source definiert ist, andernfalls WORKSPACE.
warehouse_id String Die ID des SQL-Warehouses, das für die Ausführung von DBT-Befehlen verwendet werden soll. Wenn nicht angegeben, wird das Standardlager verwendet.

Examples

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.

Um die ID eines SQL-Lagerlagers abzurufen, öffnen Sie die Einstellungsseite des SQL-Lagers, und kopieren Sie dann die ID in Klammern nach dem Namen des Lagers im Feld "Name " auf der Registerkarte " Übersicht ".

Tipp

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 Databricks Asset Bundles-Vorlagen finden Sie unter Standardbundlevorlagen.

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'

Für jeden Vorgang

Mit for_each_task können Sie Ihrem Task eine Aufgabe mit für jede Schleife hinzufügen. Die Aufgabe führt für jede bereitgestellte Eingabe eine geschachtelte Aufgabe aus. Weitere Informationen zum for_each_taskfinden Sie unter . Verwenden Sie eine For each-Aufgabe, um eine andere Aufgabe in einer Schleife auszuführen.

Die folgenden Schlüssel sind für ein for_each_task. Die entsprechende REST-API-Objektdefinition finden Sie unter for_each_task.

Key Typ Description
concurrency Integer Die maximale Anzahl von Aufgaben iterationen, die gleichzeitig ausgeführt werden können. Wenn nicht angegeben, können alle Iterationen parallel ausgeführt werden, solange die Beschränkungen von Cluster und Arbeitsbereich eingehalten werden.
inputs String Erforderlich. Die Eingabedaten für die Schleife. Dies kann eine JSON-Zeichenfolge oder ein Verweis auf einen Arrayparameter sein. Jedes Element im Array wird an eine Iteration der geschachtelten Aufgabe übergeben.
task Map Erforderlich. Die geschachtelte Aufgabendefinition, die für jede Eingabe ausgeführt werden soll. Dieses Objekt enthält die vollständige Vorgangsspezifikation einschließlich task_key und den Vorgangstyp (z. B. notebook_task, , python_wheel_taskusw.).

Examples

Im folgenden Beispiel wird einem Job ein for_each_task hinzugefügt, der die Werte einer anderen Aufgabe durchläuft und verarbeitet.

resources:
  jobs:
    my_job:
      name: my_job
      tasks:
        - task_key: generate_countries_list
          notebook_task:
            notebook_path: ../src/generate_countries_list.ipnyb
        - task_key: process_countries
          depends_on:
            - task_key: generate_countries_list
          for_each_task:
            inputs: '{{tasks.generate_countries_list.values.countries}}'
            task:
              task_key: process_countries_iteration
              notebook_task:
                notebook_path: ../src/process_countries_notebook.ipnyb

JAR-Aufgabe

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. Siehe JAR-Datei (Java oder Scala).

Ausführliche Informationen zum Kompilieren und Bereitstellen von Scala JAR-Dateien auf einem Unity-Katalog-fähigen Cluster im Standardzugriffsmodus finden Sie im Lernprogramm: Ausführen von Scala-Code auf serverloser Berechnung.

Die folgenden Schlüssel sind für einen JAR-Vorgang verfügbar. Die entsprechende REST-API-Objektdefinition finden Sie unter jar_task.

Key Typ Description
jar_uri String Deprecated. Der URI des zu ausführenden JAR. DBFS- und Cloudspeicherpfade werden unterstützt. Dieses Feld ist veraltet und sollte nicht verwendet werden. Verwenden Sie stattdessen das libraries Feld, um JAR-Abhängigkeiten anzugeben.
main_class_name String Erforderlich. Der vollständige Name der Klasse, die die auszuführende Hauptmethode enthält. Diese Klasse muss in einer JAR-Datei enthalten sein, die als Bibliothek bereitgestellt wird. Der Code muss SparkContext.getOrCreate verwenden, um einen Spark-Kontext zu erhalten, andernfalls schlägt die Ausführung des Auftrags fehl.
parameters Sequence Die Parameter, die an die Hauptmethode übergeben werden. Verwenden Sie Vorgangsparametervariablen, um Parameter festzulegen, die Informationen zu Auftragsausführungen enthalten.

Examples

Im folgenden Beispiel wird einem Auftrag ein JAR-Task hinzugefügt. Der Pfad für die JAR-Datei ist ein Volumespeicherort.

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

Notebook-Aufgabe

Sie verwenden diesen Task, um ein Notebook auszuführen. Siehe Notebooktask für Aufträge.

Die folgenden Schlüssel sind für eine Notizbuchaufgabe verfügbar. Die entsprechende REST-API-Objektdefinition finden Sie unter notebook_task.

Key Typ Description
base_parameters Map Die Basisparameter, die für jede Ausführung dieses Auftrags verwendet werden sollen.
  • Wenn die Ausführung durch einen Aufruf von Aufträgen oder "Run-now" mit angegebenen Parametern initiiert wird, werden die beiden Parameterzuordnungen zusammengeführt.
  • Wenn derselbe Schlüssel in base_parameters und run-now angegeben ist, wird der Wert von run-now verwendet. Verwenden Sie Vorgangsparametervariablen, um Parameter festzulegen, die Informationen zu Auftragsausführungen enthalten.
  • Wenn das Notizbuch einen Parameter verwendet, der nicht in den Parametern des Auftrags oder den base_parameters Außerkraftsetzungsparametern run-now angegeben ist, wird der Standardwert aus dem Notizbuch verwendet. Rufen Sie diese Parameter in einem Notizbuch mithilfe von dbutils.widgets.get.
notebook_path String Erforderlich. Der Pfad des Notizbuchs im Databricks-Arbeitsbereich oder Remote-Repository, z.B. /Users/user.name@databricks.com/notebook_to_run Für Notizbücher, die im Databricks-Arbeitsbereich gespeichert sind, muss der Pfad absolut sein und mit einem Schrägstrich beginnen. Für Notizbücher, die in einem Remote-Repository gespeichert sind, muss der Pfad relativ sein.
source String Standorttyp des Notizbuchs. Gültige Werte sind WORKSPACE und GIT. Bei Festlegung auf WORKSPACEwird das Notizbuch aus dem lokalen Databricks-Arbeitsbereich abgerufen. Bei Festlegung auf GIT wird das Notizbuch aus einem Git-Repository geholt, das in git_source definiert ist. Wenn der Wert leer ist, wird die Aufgabe GIT verwenden, wenn git_source definiert ist und andernfalls WORKSPACE.
warehouse_id String Die ID des Lagers, auf dem das Notizbuch ausgeführt werden soll. Klassische SQL-Lagerhäuser werden nicht unterstützt. Verwenden Sie stattdessen serverlose oder pro SQL-Lagerhäuser. Beachten Sie, dass SQL-Lagerhäuser nur SQL-Zellen unterstützen. Wenn das Notizbuch nicht SQL-Zellen enthält, schlägt die Ausführung fehl. Wenn Sie also Python (oder andere) in einer Zelle verwenden müssen, verwenden Sie serverlos.

Examples

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. Der Task holt das Notebook von seinem bereitgestellten Standort im Azure Databricks-Arbeitsbereich ab.

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}}'

Pipelineaufgabe

Sie verwenden diese Aufgabe, um eine Pipeline auszuführen. Siehe Lakeflow Spark Declarative Pipelines.

Die folgenden Schlüssel sind für einen Pipelinevorgang verfügbar. Die entsprechende REST-API-Objektdefinition finden Sie unter pipeline_task.

Key Typ Description
full_refresh Boolean Wenn wahr, wird eine vollständige Aktualisierung der Pipeline ausgelöst, wodurch alle Datensätze in der Pipeline vollständig neu berechnet werden. Wenn "false" oder nicht angegeben wird, werden nur inkrementelle Daten verarbeitet. Einzelheiten finden Sie unter Pipelineaktualisierungssemantik.
pipeline_id String Erforderlich. Die ID der auszuführenden Pipeline. Die Pipeline muss bereits vorhanden sein.

Examples

Im folgenden Beispiel wird einem Auftrag eine Pipelineaufgabe hinzugefügt. Diese Aufgabe führt die angegebene Pipeline aus.

Tipp

Sie können die ID einer Pipeline abrufen, indem Sie die Pipeline im Arbeitsbereich öffnen und den Pipeline-ID-Wert auf der Registerkarte "Pipelinedetails " der Einstellungsseite der Pipeline kopieren.

resources:
  jobs:
    my-pipeline-job:
      name: my-pipeline-job
      tasks:
        - task_key: my-pipeline-task
          pipeline_task:
            pipeline_id: 11111111-1111-1111-1111-111111111111

Power BI-Aufgabe

Wichtig

Der Power BI-Aufgabentyp befindet sich in der öffentlichen Vorschau.

Verwenden Sie diese Aufgabe, um eine Aktualisierung eines Power BI-Semantikmodells (früher als Dataset bezeichnet) auszulösen.

Die folgenden Schlüssel sind für eine Power BI-Aufgabe verfügbar. Die entsprechende REST-API-Objektdefinition finden Sie unter power_bi_task.

Key Typ Description
connection_resource_name String Erforderlich. Der Name der Unity-Katalogverbindung zur Authentifizierung von Databricks zu Power BI.
power_bi_model String Erforderlich. Der Name des zu aktualisierenden Power BI-Semantikmodells (Datasets).
refresh_after_update Boolean Gibt an, ob das Power BI-Semantikmodell nach Abschluss des Updates aktualisiert werden soll. Der Standardwert ist „false“.
tables Sequence Eine Liste von Tabellen (jeweils als Karte), die in Power BI exportiert werden sollen. Siehe Tabellen.
warehouse_id String Die ID des SQL-Warehouses, das als Power BI-Datenquelle verwendet werden soll.

Examples

Im folgenden Beispiel wird eine Power BI-Aufgabe definiert, die eine Verbindung angibt, das zu aktualisierende Power BI-Modell und die zu exportierende Databricks-Tabelle.

resources:
  jobs:
    my_job:
      name: my_job
      tasks:
        - task_key: power_bi_task
          power_bi_task:
            connection_resource_name: 'connection_name'
            power_bi_model:
              workspace_name: 'workspace_name'
              model_name: 'model_name'
              storage_mode: 'DIRECT_QUERY'
              authentication_method: 'OAUTH'
              overwrite_existing: false
            refresh_after_update: false
            tables:
              - catalog: 'main'
                schema: 'tpch'
                name: 'customers'
                storage_mode: 'DIRECT_QUERY'
            warehouse_id: '1a111111a1111aa1'

Python-Skriptaufgabe

Sie verwenden diesen Task, um eine Python-Datei auszuführen.

Die folgenden Schlüssel sind für eine Python-Skriptaufgabe verfügbar. Die entsprechende REST-API-Objektdefinition finden Sie unter python_task.

Key Typ Description
parameters Sequence Die Parameter, die an die Python-Datei übergeben werden sollen. Verwenden Sie Vorgangsparametervariablen, um Parameter festzulegen, die Informationen zu Auftragsausführungen enthalten.
python_file String Erforderlich. Der URI der python-Datei, die ausgeführt werden soll, z. B /Users/someone@example.com/my-script.py. . Für Python-Dateien, die im Databricks-Arbeitsbereich gespeichert sind, muss der Pfad absolut sein und mit /beginnen. Für Dateien, die in einem Remote-Repository gespeichert sind, muss der Pfad relativ sein. Dieses Feld unterstützt keine dynamischen Wertverweise wie Variablen.
source String Der Speicherorttyp der Python-Datei. Gültige Werte sind WORKSPACE und GIT. Bei Festlegung auf WORKSPACE, wird die Datei aus dem lokalen Databricks-Arbeitsbereich abgerufen. Bei Festlegung auf GIT, wird die Datei aus einem Git-Repository abgerufen, das in git_source. Wenn der Wert leer ist, wird die Aufgabe GIT verwenden, wenn git_source definiert ist und andernfalls WORKSPACE.

Examples

Im folgenden Beispiel wird einem Job eine Python-Skriptaufgabe 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.

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

Python-Wheeltask

Sie verwenden diese Aufgabe, um ein Python-Rad auszuführen. Siehe Erstellen einer Python-Raddatei mit Databricks Asset Bundles.

Die folgenden Tasten sind für eine Python-Radaufgabe verfügbar. Die entsprechende REST-API-Objektdefinition finden Sie unter python_wheel_task.

Key Typ Description
entry_point String Erforderlich. Der benannte Einstiegspunkt, der ausgeführt werden soll: Funktion oder Klasse. Wenn es in den Metadaten des Pakets nicht vorhanden ist, führt es die Funktion aus dem Paket direkt mithilfe $packageName.$entryPoint()aus.
named_parameters Map Die benannten Parameter, die an die Python-Wheel-Task übergeben werden, auch bekannt als Schlüsselwortargumente. Ein benannter Parameter ist ein Schlüsselwertpaar mit einem Zeichenfolgenschlüssel und einem Zeichenfolgenwert. Beide parameters und named_parameters können nicht angegeben werden. Wenn named_parameters angegeben, werden die parameters Als Schlüsselwortargumente an die Einstiegspunktfunktion übergeben.
package_name String Erforderlich. Der Name des auszuführenden Python-Pakets. Alle Abhängigkeiten müssen in der Umgebung installiert werden. Dadurch werden keine Paketabhängigkeiten überprüft oder installiert.
parameters Sequence Die Parameter, die an die Python-Wheel-Aufgabe übergeben werden sollen, auch als Positionale Argumente bezeichnet. Jeder Parameter ist eine Zeichenfolge. Wenn angegeben, named_parameters darf nicht angegeben werden.

Examples

Im folgenden Beispiel wird einem Job eine Python-Wheel-Aufgabe 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.

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

Aufgabe ausführen

Sie verwenden diese Aufgabe, um einen anderen Auftrag auszuführen.

Die folgenden Schlüssel sind für eine Laufaufgabe verfügbar. Die entsprechende REST-API-Objektdefinition finden Sie unter run_job_task.

Key Typ Description
job_id Integer Erforderlich. Die ID des auszuführenden Auftrags. Der Job muss bereits im Arbeitsbereich vorhanden sein.
job_parameters Map Job-spezifische Parameter, die an den auszuführenden Job übergeben werden sollen. Auf diese Parameter kann innerhalb der Aufgaben des Auftrags zugegriffen werden.
pipeline_params Map Parameter für die Pipeline-Aufgabe. Wird nur verwendet, wenn der auszuführende Auftrag eine Pipelineaufgabe enthält. Kannst du full_refresh einfügen, um eine komplette Aktualisierung der Pipeline auszulösen.

Examples

Das folgende Beispiel enthält einen „Auftrag ausführen“-Task im zweiten Auftrag, der den ersten Auftrag ausführt.

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 Sie die ID aus dem Wert " Auftrags-ID " auf der Registerkarte " Auftragsdetails " der Einstellungsseite der Aufträge.

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}

SQL-Aufgabe

Sie verwenden diese Aufgabe, um eine SQL-Datei, -Abfrage oder -Warnung auszuführen.

Die folgenden Schlüssel sind für eine SQL-Aufgabe verfügbar. Die entsprechende REST-API-Objektdefinition finden Sie unter sql_task.

Key Typ Description
alert Map Konfiguration zum Ausführen einer SQL-Warnung. Enthält:
  • alert_id (Zeichenfolge): Erforderlich. Der kanonische Bezeichner der auszuführenden SQL-Warnung.
  • pause_subscriptions (Boolescher Wert): Gibt an, ob Warnungsabonnements angehalten werden sollen.
  • subscriptions (Sequenz): Liste der Abonnementeinstellungen.
dashboard Map Konfiguration zum Aktualisieren eines SQL-Dashboards. Enthält:
  • dashboard_id (Zeichenfolge): Erforderlich. Der kanonische Bezeichner des zu aktualisierenden SQL-Dashboards.
  • custom_subject (Zeichenfolge): Benutzerdefinierter Betreff für die E-Mail, die an Dashboardabonnenten gesendet wurde.
  • pause_subscriptions (Boolean): Gibt an, ob Dashboardabonnements angehalten werden sollen.
  • subscriptions (Sequenz): Liste der Abonnementeinstellungen.
file Map Konfiguration zum Ausführen einer SQL-Datei. Enthält:
  • path (Zeichenfolge): Erforderlich. Der Pfad der SQL-Datei im Arbeitsbereich oder Remote-Repository. Für Dateien, die im Databricks-Arbeitsbereich gespeichert sind, muss der Pfad absolut sein und mit einem Schrägstrich beginnen. Für Dateien, die in einem Remote-Repository gespeichert sind, muss der Pfad relativ sein.
  • source (Zeichenfolge): Der Speicherorttyp der SQL-Datei. Gültige Werte sind WORKSPACE und GIT.
parameters Map Parameter, die für jede Ausführung dieser Aufgabe verwendet werden sollen. SQL-Abfragen und -Dateien können diese Parameter verwenden, indem sie mit der Syntax {{parameter_key}}referenziert werden. Verwenden Sie Vorgangsparametervariablen, um Parameter festzulegen, die Informationen zu Auftragsausführungen enthalten.
query Map Konfiguration zum Ausführen einer SQL-Abfrage. Enthält:
  • query_id (Zeichenfolge): Erforderlich. Der kanonische Bezeichner der auszuführenden SQL-Abfrage.
warehouse_id String Erforderlich. Die ID des SQL-Lagerlagers, das zum Ausführen der SQL-Aufgabe verwendet werden soll. Das SQL-Lager muss bereits vorhanden sein.

Examples

Tipp

Um die ID eines SQL-Lagerlagers abzurufen, öffnen Sie die Einstellungsseite des SQL-Lagers, und kopieren Sie dann die ID in Klammern nach dem Namen des Lagers im Feld "Name " auf der Registerkarte " Übersicht ".

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.

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

Im folgenden Beispiel wird einem Auftrag eine SQL-Warnungsaufgabe hinzugefügt. Diese SQL-Warnungsaufgabe verwendet das angegebene SQL-Warehouse, um die angegebene SQL-Warnung zu aktualisieren.

resources:
  jobs:
    my-sql-file-job:
      name: my-sql-alert-job
      tasks:
        - task_key: my-sql-alert-task
          sql_task:
            warehouse_id: 1a111111a1111aa1
            alert:
              alert_id: 11111111-1111-1111-1111-111111111111

Im folgenden Beispiel wird einem Auftrag eine SQL-Abfrageaufgabe hinzugefügt. Diese SQL-Abfrageaufgabe verwendet das angegebene SQL-Warehouse, um die angegebene SQL-Abfrage auszuführen.

resources:
  jobs:
    my-sql-query-job:
      name: my-sql-query-job
      tasks:
        - task_key: my-sql-query-task
          sql_task:
            warehouse_id: 1a111111a1111aa1
            query:
              query_id: 11111111-1111-1111-1111-111111111111

Andere Aufgabeneinstellungen

Mit den folgenden Aufgabeneinstellungen können Sie Verhaltensweisen für alle Aufgaben konfigurieren. Die entsprechenden REST-API-Objektdefinitionen finden Sie unter Aufgaben.

Key Typ Description
depends_on Sequence Eine optionale Liste der Vorgangsabhängigkeiten. Jedes Element enthält:
  • task_key (Zeichenfolge): Erforderlich. Der Schlüsselfaktor der Aufgabe, von der diese Aufgabe abhängt.
  • outcome (String): Kann nur für condition_task spezifiziert werden. Wenn angegeben, wird die abhängige Aufgabe nur ausgeführt, wenn die Bedingung mit dem angegebenen Ergebnis ausgewertet wird (entweder true oder false).
description String Eine optionale Beschreibung für den Vorgang.
disable_auto_optimization Boolean Gibt an, ob die automatische Optimierung für diese Aufgabe deaktiviert werden soll. Wenn true, werden automatische Optimierungen wie die Ausführung adaptiver Abfragen deaktiviert.
email_notifications Map Eine optionale Liste von E-Mail-Adressen, die benachrichtigt werden, wenn eine Ausführung eines Prozesses gestartet, abgeschlossen oder fehlgeschlagen ist. Jedes Element enthält:
  • on_start (Sequenz): Liste der E-Mail-Adressen, die benachrichtigt werden sollen, wenn eine Ausführung gestartet wird.
  • on_success (Sequenz): Liste der E-Mail-Adressen, die benachrichtigt werden sollen, wenn eine Ausführung erfolgreich abgeschlossen ist.
  • on_failure (Sequenz): Liste der E-Mail-Adressen, die benachrichtigt werden sollen, wenn eine Ausführung fehlschlägt.
  • on_duration_warning_threshold_exceeded (Sequenz): Liste der E-Mail-Adressen, die benachrichtigt werden sollen, wenn die Laufzeit den Schwellenwert überschreitet.
  • on_streaming_backlog_suceeded (Sequenz): Liste der E-Mail-Adressen, die benachrichtigt werden sollen, wenn alle Schwellenwerte für Streaming-Backlogs für einen beliebigen Datenstrom überschritten werden.
environment_key String Der Schlüssel einer Umgebung, die in der Konfiguration des environments Auftrags definiert ist. Wird verwendet, um umgebungsspezifische Einstellungen anzugeben. Dieses Feld ist für Python-Skript-, Python-Rad- und DBT-Aufgaben erforderlich, wenn serverlose Compute verwendet wird.
existing_cluster_id String Die ID eines vorhandenen Clusters, der für alle Ausführung dieser Aufgabe verwendet wird.
health Map Eine optionale Spezifikation für die Integritätsüberwachung dieser Aufgabe, die einen rules Schlüssel enthält, bei dem es sich um eine Liste der zu bewertenden Integritätsregeln handelt.
job_cluster_key String Der Schlüssel eines Jobclusters, der in der Konfiguration des job_clusters Jobs definiert ist.
libraries Sequence Eine optionale Liste der Bibliotheken, die auf dem Cluster installiert werden sollen, der die Aufgabe ausführt. Jede Bibliothek wird als Map mit Schlüsseln wie jar, egg, whl, pypi, maven, cran, oder requirements spezifiziert.
max_retries Integer Eine optionale maximale Anzahl von Wiederholungen der Aufgabe, wenn sie fehlschlägt. Wenn nicht angegeben, wird der Vorgang nicht wiederholt.
min_retry_interval_millis Integer Ein optionales minimales Intervall in Millisekunden zwischen dem Start der fehlgeschlagenen Ausführung und der nachfolgenden Wiederholungsausführung. Wenn nicht angegeben, ist der Standardwert 0 (sofortiger Wiederholungsversuch).
new_cluster Map Eine Spezifikation für einen neuen Cluster, der für jede Ausführung dieser Aufgabe erstellt werden soll. Siehe Cluster.
notification_settings Map Optionale Benachrichtigungseinstellungen für diese Aufgabe. Jedes Element enthält:
  • no_alert_for_skipped_runs (Boolean): Wenn wahr, keine Benachrichtigungen für übersprungene Durchläufe senden.
  • no_alert_for_canceled_runs (Boolean): Wenn wahr, keine Benachrichtigungen für abgebrochene Läufe senden.
  • alert_on_last_attempt (Boolean): Wenn true, senden Sie Benachrichtigungen nur für den letzten Wiederholungsversuch.
retry_on_timeout Boolean Eine optionale Richtlinie, die angibt, ob die Aufgabe wiederholt werden soll, wenn eine Zeitüberschreitung erfolgt. Wenn nicht angegeben, ist der Standardwert "falsch".
run_if String Ein optionaler Wert, der die Bedingung angibt, unter der die Aufgabe ausgeführt werden soll. Gültige Werte sind:
  • ALL_SUCCESS (Standard): Ausführen, wenn alle Abhängigkeiten erfüllt sind.
  • AT_LEAST_ONE_SUCCESS: Führen Sie aus, wenn mindestens eine Abhängigkeit erfolgreich ist.
  • NONE_FAILED: Ausführen, wenn keine Abhängigkeiten fehlgeschlagen sind.
  • ALL_DONE: Ausführen, wenn alle Abhängigkeiten abgeschlossen sind, unabhängig vom Ergebnis.
  • AT_LEAST_ONE_FAILED: Ausführen, wenn mindestens eine Abhängigkeit fehlschlägt.
  • ALL_FAILED: Ausführen, wenn alle Abhängigkeiten fehlschlagen.
task_key String Erforderlich. Ein eindeutiger Name für den Vorgang. Dieses Feld wird verwendet, um mithilfe des depends_on Felds von anderen Vorgängen auf diesen Vorgang zu verweisen.
timeout_seconds Integer Ein optionales Timeout, das auf jede Ausführung dieser Aufgabe angewendet wird. Ein Wert von 0 bedeutet kein Timeout. Wenn nicht festgelegt, wird das Standardtimeout aus der Clusterkonfiguration verwendet.
webhook_notifications Map Eine optionale Gruppe von System-Destinationen, die benachrichtigt werden sollen, wenn ein Lauf beginnt, abgeschlossen wird oder fehlschlägt. Jedes Element enthält:
  • on_start (Sequenz): Liste der Benachrichtigungsziele, wenn eine Ausführung gestartet wird.
  • on_success (Sequenz): Liste der Benachrichtigungsziele, wenn eine Ausführung abgeschlossen ist.
  • on_failure (Sequenz): Liste der Benachrichtigungsziele, wenn eine Ausführung fehlschlägt.
  • on_duration_warning_threshold_exceeded (Sequenz): Liste der Benachrichtigungsziele, wenn die Ausführungsdauer den Schwellenwert überschreitet.
  • on_streaming_backlog_suceeded (Sequenz): Liste der E-Mail-Adressen, die benachrichtigt werden sollen, wenn alle Schwellenwerte für Streaming-Backlogs für einen beliebigen Datenstrom überschritten werden.