EXECUTE DBT PROJECT

Führt das angegebene dbt-Projektobjekt oder das dbt-Projekt in einem Snowflake-Arbeitsbereich unter Verwendung des dbt-Befehls und der angegebenen Befehlszeilenoptionen aus.

Siehe auch:

CREATE DBT PROJECT, ALTER DBT PROJECT, DESCRIBE DBT PROJECT, DROP DBT PROJECT, SHOW DBT PROJECTS

Syntax

Führt das dbt-Projektobjekt mit dem angegebenen Namen aus.

EXECUTE DBT PROJECT [ IF EXISTS ] <name>
  [ ARGS = '[ <dbt_command> ] [ --<dbt_cli_option> <option_value_1> [ ... ] ] [ ... ]' ]
  [ DBT_VERSION = 'version_number' ]

Syntaxvariante

Führt das dbt-Projekt aus, das in einem Arbeitsbereich mit dem angegebenen Arbeitsbereichsnamen gespeichert ist. Der Benutzer, dem der Arbeitsbereich gehört, muss der Benutzer sein, der diese Befehlsvariante ausführt.

EXECUTE DBT PROJECT [ IF EXISTS ] [ FROM WORKSPACE <name> ]
  [ ARGS = '[ <dbt_command> ] [ --<dbt_cli_option> <option_value_1> [ ... ] [ ... ] ]' ]
  [ DBT_VERSION = 'version_number' ]
  [ PROJECT_ROOT = '<subdirectory_path>' ]

Erforderliche Parameter

name

Gibt bei der Ausführung eines dbt-Projektobjekts den Namen des auszuführenden dbt-Projektobjekts an.

Gibt beim Ausführen eines dbt-Projekts unter Verwendung der FROM WORKSPACE-Option den Namen des Arbeitsbereichs für dbt Projects on Snowflake an. Der Name des Arbeitsbereichs wird immer in Referenz auf das public-Schema in der persönlichen Datenbank des Benutzers angegeben, angegeben durch user$.

Wir empfehlen, den Arbeitsbereichsnamen in doppelte Anführungszeichen zu setzen, da bei Arbeitsbereichsnamen zwischen Groß- und Kleinschreibung unterschieden wird und weil sie Sonderzeichen enthalten können.

Das folgende Beispiel zeigt eine Namensreferenz für einen Arbeitsbereich:

user$.public."My dbt Project Workspace"

Optionale Parameter

ARGS = '[ dbt_command ] [ --dbt_cli_option option_value_1 [ ... ] [ ... ] ]'

Specifies the dbt command and supported command-line options to use when the dbt project object executes. This is a literal string that must conform to the syntax and requirements of dbt CLI commands.

If no value is specified, the dbt project object executes with the dbt command and command-line options specified in the dbt project object definition. If you specify dbt CLI options without specifying a dbt command, the dbt run command executes by default.

Standard: Kein Wert

DBT_VERSION = 'version_number'

Specifies a version for the dbt project object.

Default: When you execute a dbt project object, the system uses the default version you specified when creating the dbt project object. If none was specified, the system uses 1.9.4 by default.

Weitere Informationen dazu finden Sie unter Unterstützte dbt Core-Versionen für dbt Projects on Snowflake.

PROJECT_ROOT = 'subdirectory_path'

Gibt den Pfad zum Unterverzeichnis der dbt_project.yml-Datei innerhalb des dbt-Projektobjekts oder des Arbeitsbereichs an. Dieser Parameter wird nur unterstützt, wenn Sie ein dbt-Projekt mit der Option FROMWORKSPACE ausführen.

If no value is specified, the dbt project object executes with the dbt_project.yml file in the root directory of the dbt project object.

Wenn keine dbt_project.yml-Datei im Stammverzeichnis oder im PROJECT_ROOT-Unterverzeichnis existiert, tritt ein Fehler auf.

Standard: Kein Wert

Ausgabe

Spalte

Beschreibung

0|1 Success

TRUE if the dbt project object executed successfully; otherwise, FALSE. If the dbt project object fails to execute, an exception message is returned.

EXCEPTION

Any exception message returned by the dbt project execution. If the dbt project object executes successfully, the string None is returned.

STDOUT

Die Standardausgabe, die bei der Ausführung des dbt-Projekts zurückgegeben wird.

OUTPUT_ARCHIVE_URL

Die URL des Ausgabearchivs, das die Ausgabedateien von der Ausführung des dbt-Projekts enthält. Dazu gehören Protokolldateien und Artefakte, die dbt in das /target-Verzeichnis schreibt. Weitere Informationen dazu finden Sie unter Über dbt-Artefakte in der dbt-Dokumentation. Die direkte Auswahl dieses Links führt zu einem Fehler; Sie können jedoch diese URL zum Abrufen von dbt-Projektdateien und -Ausgaben verwenden. Weitere Informationen dazu finden Sie unter Programmgesteuert auf dbt-Artefakte und -Protokolle zugreifen.

Anforderungen an die Zugriffssteuerung

Eine Rolle, die zur Ausführung dieses SQL-Befehls verwendet wird, muss mindestens eine der folgenden Berechtigungen haben:

Berechtigung

Objekt

USAGE

dbt-Projekt

Für das Ausführen von Operationen auf einem Objekt in einem Schema ist mindestens eine Berechtigung für die übergeordnete Datenbank und mindestens eine Berechtigung für das übergeordnete Schema erforderlich.

Eine Anleitung zum Erstellen einer kundenspezifischen Rolle mit einer bestimmten Gruppe von Berechtigungen finden Sie unter Erstellen von kundenspezifischen Rollen.

Allgemeine Informationen zu Rollen und Berechtigungen zur Durchführung von SQL-Aktionen auf sicherungsfähigen Objekten finden Sie unter Übersicht zur Zugriffssteuerung.

Bemerkung

Der in EXECUTE DBT PROJECT angegebene dbt-Befehl wird mit den Berechtigungen der role ausgeführt, die im outputs-Block der Datei profiles.yml des Projekts angegeben ist. Außerdem sind Vorgänge auf die Berechtigungen beschränkt, die dem Snowflake-Benutzer gewährt werden, der EXECUTE DBT PROJECT aufruft. Sowohl der Benutzer als auch die angegebene Rolle müssen über die erforderlichen Berechtigungen verfügen, um das warehouse verwenden zu können, Vorgänge für database und schema auszuführen, die in der Datei profiles.yml des Projekts angegeben sind, und Vorgänge für alle anderen Snowflake-Objekten auszuführen, die das dbt-Modell angibt.

Beispiele

Standardausführungsbefehl mit Angabe von Ziel und Modellen

Führen Sie einen dbt run aus mit dem dev-Profil in der dbt_project.yml-Datei als Ziel, die sich im Stammverzeichnis des dbt-Projektobjekts befindet. Wählen Sie dafür drei Modelle aus dem Projekt DAG aus. Es ist kein run-Befehl explizit angegeben und wird standardmäßig ausgeführt.

EXECUTE DBT PROJECT my_database.my_schema.my_dbt_project
  ARGS = '--select simple_customers combined_bookings prepped_data --target dev';

Expliziter Testbefehl mit Angabe von Ziel und Modellen

Führen Sie einen dbt test-Befehl aus mit dem prod-Profil in der dbt_project.yml-Datei als Ziel, die sich im Stammverzeichnis des dbt-Projektobjekts befindet. Wählen Sie dafür drei Modelle aus dem Projekt DAG aus.

EXECUTE DBT PROJECT my_database.my_schema.my_dbt_project
  ARGS = '--select simple_customers combined_bookings prepped_data --target prod';

Expliziter Ausführungsbefehl mit Angabe der nachgelagerten Modelle

Führen Sie einen dbt run-Befehl aus mit dem dev-Profil in der dbt_project.yml-Datei als Ziel, und wählen Sie alle dem simple_customers-Modell nachgelagerten Modelle unter Verwendung der dbt +-Notation aus.

EXECUTE DBT PROJECT my_database.my_schema.my_dbt_project
  ARGS = 'run --select simple_customers+ --target dev';

Execute and test dbt project objects using production tasks

Erstellen Sie eine Aufgabe für ein dbt-Produktionsziel, die einen dbt run-Befehl in einem Intervall von sechs Stunden ausführt. Erstellen Sie dann eine Aufgabe, die den dbt test-Befehl ausführt, nachdem jede dbt run-Aufgabe abgeschlossen ist. Der Befehl EXECUTE DBT PROJECT für jede Aufgabe zielt auf das prod-Profil in der dbt_project.yml-Datei im Stammverzeichnis des dbt-Projektobjekts.

CREATE OR ALTER TASK my_database.my_schema.run_dbt_project
  WAREHOUSE = my_warehouse
  SCHEDULE = '6 hours'
AS
  EXECUTE DBT PROJECT my_database.my_schema.my_dbt_project args='run --target prod';


CREATE OR ALTER TASK change_this.public.test_dbt_project
        WAREHOUSE = my_warehouse
        AFTER run_dbt_project
AS
  EXECUTE DBT PROJECT my_database.my_schema.my_dbt_project args='test --target prod';

Überschreiben der angehefteten Version des Projekts zur Ausführungszeit für Testzwecke oder für temporäre Anforderungen

my_dbt_project is pinned to 1.9.4. This execution overrides the dbt project object’s default 1.9.4 version:

EXECUTE DBT PROJECT finance_analytics
  DBT_VERSION = '1.10.15'