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> [ ... ] ] [ ... ]' ]
[ PROJECT_ROOT = '<subdirectory_path>' ]
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> [ ... ] [ ... ] ]' ]
[ 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 durchuser$
.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 [ ... ] [ ... ] ]'
Gibt den dbt-Befehl und die unterstützten -Befehlszeilenoptionen an, die ausgeführt werden sollen, wenn das dbt-Projekt ausgeführt wird. Dies ist eine literale Zeichenfolge, die der Syntax und den Anforderungen von dbt entsprechen muss CLI -Befehlen
Wenn kein Wert angegeben ist, wird das dbt-Projekt mit dem dbt-Befehl und den -Befehlszeilenoptionen ausgeführt, die in der dbt-Projektobjektdefinition angegeben sind. Wenn Sie CLI-Optionen für dbt ohne Angabe eines dbt-Befehls angeben, wird der
run
-Befehl für dbt standardmäßig ausgeführt.Wichtig
Argumente, die Sie explizit in einem EXECUTE DBT PROJECT-Befehl angeben, überschreiben alle DEFAULT_ARGS, die in der DBT PROJECT-Definition angegeben sind.
Standard: Kein Wert
PROJECT_ROOT = 'subdirectory_path'
Gibt den Pfad zum Unterverzeichnis der
dbt_project.yml
-Datei innerhalb des dbt-Projektobjekts oder des Arbeitsbereichs an.Wenn kein Wert angegeben ist, wird das dbt-Projekt mit der
dbt_project.yml
-Datei im Stammverzeichnis des dbt-Projektobjekts ausgeführt.Wenn keine
dbt_project.yml
-Datei im Stammverzeichnis oder im PROJECT_ROOT-Unterverzeichnis existiert, tritt ein Fehler auf.Standard: Kein Wert
Ausgabe¶
Spalte |
Beschreibung |
---|---|
|
|
|
Jede Ausnahmemeldung, die bei der Ausführung des dbt-Projekts zurückgegeben wird. Wenn das dbt-Projekt erfolgreich ausgeführt wird, wird die Zeichenfolge |
|
Die Standardausgabe, die bei der Ausführung des dbt-Projekts zurückgegeben wird. |
|
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 |
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 |
USAGE-Berechtigung für die übergeordnete Datenbank und das Schema ist erforderlich, um Operationen an einem beliebigen Objekt in einem Schema durchzuführen.
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¶
Expliziter Ausführungsbefehl mit Angabe der nachgelagerten Modelle
Ausführen und Testen von dbt-Projekten mithilfe von Produktionsaufgaben
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';
Standardausführungsbefehl, der ein Unterverzeichnis-Projekt mit Standardausführung und DEFAULT ARGS aus der Definition des dbt-Projektobjekts angibt¶
Für ein dbt-Projektobjekt, das Unterverzeichnisse für drei dbt-Projekte enthält, führen Sie einen dbt run
-Befehl für das dbt-Projekt im project2
-Unterverzeichnis aus. Der Ausführungsbefehl wird angenommen, und der Befehl zielt auf das dev
-Profil, das mit DEFAULT ARGS in der DBT PROJECT-Definition angegeben wurde.
EXECUTE DBT PROJECT my_database.my_schema.my_parent_dbt_project PROJECT_ROOT = 'project2';
Ausführen und Testen von dbt-Projekten mithilfe von Produktionsaufgaben¶
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';