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.
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.
Erforderliche Parameter¶
nameGibt 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 [ ... ] [ ... ] ]'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
runcommand 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.4by 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.ymlfile 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 |
|---|---|
|
|
|
Any exception message returned by the dbt project execution. If the dbt project object executes successfully, the string |
|
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 |
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.
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.
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 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.
Ü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: