Freigeben über


dbt-Aufgabe für Jobs

Verwenden Sie die dbt-Aufgabe zur Konfiguration und Ausführung von dbt-Projekten auf Azure Databricks.

Wichtig

Wenn dbt-Aufgaben ausgeführt werden, injiziert Databricks DBT_ACCESS_TOKEN für den im Feld Ausführen als konfigurierten Auftraggeber.

Konfigurieren einer dtb-Aufgabe

Fügen Sie eine dbt-Aufgabe auf der Registerkarte Aufgaben in der Benutzeroberfläche Jobs hinzu, indem Sie wie folgt vorgehen:

  1. Wählen Sie im Dropdownmenü Typ die Option dbt aus.

  2. Im Dropdownmenü Quelle können Sie die Option Arbeitsbereich auswählen, um ein dbt-Projekt zu verwenden, das sich in einem Azure Databricks-Arbeitsbereichsordner befindet, oder Git-Anbieter für ein Projekt, das sich in einem Git-Remoterepository befindet.

    • Wenn Sie Arbeitsbereich wählen, verwenden Sie den mitgelieferten Dateinavigator, um das Projektverzeichnis auszuwählen.

    • Wenn Sie Git-Anbieter auswählen, klicken Sie auf Bearbeiten, um Git-Informationen für das Projekt-Repository einzugeben. Siehe Verwenden von Git mit Jobs.

      Befindet sich Ihr Projekt nicht im Stammverzeichnis des Repos, verwenden Sie das Feld Projektverzeichnis, um den Pfad dorthin anzugeben.

  3. Die Textfelder für die dbt-Befehle enthalten standardmäßig die Befehle dbt deps, dbt seed und dbt run. Die bereitgestellten Befehle werden in sequenzieller Reihenfolge ausgeführt. Fügen Sie diese Felder nach Bedarf für Ihren Workflow hinzu, entfernen oder bearbeiten Sie sie. Siehe Was sind dbt-Befehle?.

  4. Wählen Sie in SQL-Warehouse ein SQL-Warehouse aus, um das von dbt generierte SQL auszuführen. Das Dropdownmenü SQL-Warehouse zeigt nur SQL-Warehouses der Ebenen „Serverless“ oder „Pro“ an.

  5. Geben Sie einen Warehouse-Katalog an. Ist diese Option nicht gesetzt, wird die Standardeinstellung des Arbeitsbereichs verwendet.

  6. Geben Sie ein Warehouse-Schema an. Standardmäßig wird das Schema default verwendet.

  7. Wählen Sie dbt CLI-Compute aus, um dbt Core auszuführen. Databricks empfiehlt die Verwendung von serverlosem Compute für Jobs oder von klassischem Jobs Compute, der mit einem Single-Node-Cluster konfiguriert ist.

  8. Geben Sie eine dbt-databricks Version für die Aufgabe an.

    Wenn Sie Serverless-Compute einsetzen, verwenden Sie das Feld Umgebung und Bibliotheken, um eine neue Umgebung auszuwählen, zu bearbeiten oder hinzuzufügen. Weitere Informationen finden Sie unter Installieren von Notebookabhängigkeiten.

    Bei allen anderen Compute-Konfigurationen wird das Feld Abhängige Bibliotheken standardmäßig auf dbt-databricks>=1.0.0,<2.0.0 ausgefüllt. Löschen Sie diese Einstellung und fügen Sie mit + Hinzufügen eine PyPi-Bibliothek hinzu, um eine Version festzulegen.

    Hinweis

    Databricks empfiehlt, Ihre dbt-Aufgaben an eine bestimmte Version des dbt-databricks-Pakets anzuheften, um sicherzustellen, dass dieselbe Version für Entwicklungs- und Produktionsausführungen verwendet wird. Databricks empfiehlt Version 1.6.0 oder höher des dbt-databricks-Pakets.

  9. Klicken Sie auf Aufgabe erstellen.

Was sind dbt-Befehle?

Im Feld dbt-Befehle können Sie Befehle angeben, die über die dbt-Befehlszeilenschnittstelle (CLI) ausgeführt werden sollen. Ausführliche Informationen über die dbt CLI finden Sie in der dbt-Dokumentation..

Überprüfen Sie die dbt-Dokumentation auf Befehle, die von der angegebenen Version von dbt unterstützt werden.

Übergeben von Optionen an dbt-Befehle

Mit der dbt-Knotenauswahlsyntax können Sie Ressourcen angeben, die in einen bestimmten Lauf einbezogen oder ausgeschlossen werden sollen. Befehle wie run und build akzeptieren Flags einschließlich --select und --exclude. Eine vollständige Beschreibung finden Sie in der dbt-Syntaxübersicht.

Zusätzliche Konfigurationsflags steuern, wie dbt Ihr Projekt ausführt. Eine Liste der verfügbaren Flags finden Sie in der Spalte Befehlszeilenoptionen in den offiziellen dbt-Dokumenten.

Einige Flags benötigen positionelle Argumente. Einige Argumente für Flags sind Zeichenketten. Beispiele und Erläuterungen finden Sie in der dbt-Dokumentation.

Übergeben von Variablen an dbt-Befehle

Verwenden Sie das --vars-Flag, um statische oder dynamische Werte an Befehle in dbt-Befehlsfeldern zu übergeben.

Sie übergeben ein durch einfache Anführungszeichen getrenntes JSON an --vars. Alle Schlüssel und Werte im JSON müssen durch doppelte Anführungszeichen getrennt sein, wie im folgenden Beispiel:

dbt run --vars '{"volume_path": "/Volumes/path/to/data", "date": "2024/08/16"}'

Beispiele für parametrisierte dbt-Befehle

Bei der Arbeit mit dbt können Sie auf Aufgabenwerte, Auftragsparameter und dynamische Auftragsparameter verweisen. Die Werte werden als Nur-Text in das Feld dbt Befehle eingetragen, bevor der Befehl ausgeführt wird. Informationen zur Weitergabe von Werten zwischen Aufgaben oder zum Verweis auf Auftragsmetadaten finden Sie unter Aufträge parametrisieren.

In diesen Beispielen wird davon ausgegangen, dass die folgenden Auftragsparameter konfiguriert wurden:

Parametername Parameterwert
volume_path /Volumes/path/to/data
table_name my_table
select_clause --select "tag:nightly"
dbt_refresh --full-refresh

Die folgenden Beispiele zeigen gültige Möglichkeiten, auf diese Parameter zu verweisen:

dbt run '{"volume_path": "{{job.parameters.volume_path}}"}'
dbt run --select "{{job.parameters.table_name}}"
dbt run {{job.parameters.select_clause}}
dbt run {{job.parameters.dbt_refresh}}
dbt run '{"volume_path": "{{job.parameters.volume_path}}"}' {{job.parameters.dbt_refresh}}

Sie können auch auf dynamische Parameter und Aufgabenwerte verweisen, wie in den folgenden Beispielen:

dbt run --vars '{"date": "{{job.start_time.iso_date}}"}'
dbt run --vars '{"sales_count": "{{tasks.sales_task.values.sales_count}}"}'