CREATE DBT PROJECT

Erstellt ein neues dbt-Projektobjekt oder ersetzt ein bestehendes dbt-Projekt. Durch das Ausführen von CREATE DBT PROJECT mit der OR REPLACE-Option wird der Versionsbezeichner auf version$1 zurückgesetzt und alle Versionsnamen-Aliasse entfernt. Weitere Informationen dazu finden Sie unter Versionierung für dbt-Projektobjekte und -Dateien.

Siehe auch:

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

Syntax

CREATE [ OR REPLACE ] DBT PROJECT [ IF NOT EXISTS ] <name>
  [ FROM '<source_location>' ]
  [ DEFAULT_ARGS = '<string_literal>' ]
  [ DEFAULT_VERSION = { FIRST | LAST | VERSION$<num> } ]
  [ COMMENT = '<string_literal>' ]
Copy

Erforderliche Parameter

name

Zeichenfolge, die den Bezeichner (d. h. den Namen) für das dbt-Projektobjekt in Snowflake angibt. Der Wert muss für das Schema, in dem das dbt-Projekt erstellt wird, eindeutig sein.

Darüber hinaus muss der Bezeichner mit einem Buchstaben beginnen und darf keine Leer- oder Sonderzeichen enthalten, es sei denn, die gesamte Bezeichnerzeichenfolge wird in doppelte Anführungszeichen gesetzt (z. B. "My object"). Bei Bezeichnern, die in doppelte Anführungszeichen eingeschlossen sind, ist auch die Groß-/Kleinschreibung zu beachten.

Weitere Informationen dazu finden Sie unter Anforderungen an Bezeichner.

Optionale Parameter

FROM 'source_location'

Eine Zeichenfolge, die den Speicherort der Quelldateien für das dbt-Projektobjekt in Snowflake angibt. Dies kann ein übergeordnetes Verzeichnis sein, das mehrere dbt-Projekte enthält, oder ein bestimmtes Unterverzeichnis, das ein dbt-Projekt und eine dbt_project.yml -Datei enthält.

Wenn der angegebene Speicherort keine dbt_project.yml -Datei enthält, muss der EXECUTE DBT PROJECT-Befehl den PROJECT_ROOT-Parameter verwenden, um den Unterverzeichnis-Pfad zu einer dbt_project.yml -Datei anzugeben.

Wenn kein Wert angegeben wird, erstellt Snowflake ein leeres dbt-Projekt.

Die Quelldateien des dbt-Projekts können sich an einem der folgenden Speicherorte befinden:

  • In einem Git-Repository-Stagingbereich, zum Beispiel:

    '@my_db.my_schema.my_git_repository_stage/branches/my_branch/path/to/dbt_project_or_projects_parent'

    Für weitere Informationen zum Erstellen eines Git-Repository-Objekts in Snowflake, das ein Git-Repository mit einem Arbeitsbereich für dbt Projects on Snowflake verbindet, siehe Erstellen eines Arbeitsbereichs, der mit Ihrem Git-Repository verbunden ist. Für weitere Informationen zum Erstellen und Verwalten eines Git-Repository-Objekts und Stagingbereichs ohne Verwendung eines Arbeitsbereichs finden Sie unter Verwenden eines Git-Repositorys in Snowflake und CREATE GIT REPOSITORY.

  • In einem vorhandenen dbt-Projekt-Stagingbereich, zum Beispiel:

    'snow://dbt/my_db.my_schema.my_existing_dbt_project_object/versions/last'

    Der Versionsbezeichner ist erforderlich und kann last (wie im vorherigen Beispiel gezeigt), first oder der Bezeichner für eine bestehende Version im Format version$<num> sein. Weitere Informationen dazu finden Sie unter Versionierung für dbt-Projektobjekte und -Dateien.

  • In einem internen benannten Stagingbereich, zum Beispiel:

    '@my_db.my_schema.my_internal_named_stage/path/to/dbt_projects_or_projects_parent'

    Interne Benutzer-Stagingbereiche und Tabellen-Stagingbereiche werden nicht unterstützt.

  • In einem Arbeitsbereich für dbt auf Snowflake, zum Beispiel:

    'snow://workspace/user$.public."my_workspace_name"/versions/live/path/to/dbt_projects_or_projects_parent'

    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.

    Der Versionsbezeichner ist erforderlich und kann last, first, live oder der Bezeichner für eine bestehende Version im Format version$<num> sein. Weitere Informationen dazu finden Sie unter Versionierung für dbt-Projektobjekte und -Dateien.

Standard: Kein Wert

DEFAULT_ARGS = 'string_literal'

Eine Zeichenfolge, die den Standardwert dbt command und command line options angibt, ist zu verwenden, wenn EXECUTE DBT PROJECT keinen Befehl angibt.

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

DEFAULT_VERSION = { FIRST | LAST | VERSION$num }

Gibt die Standardversion des dbt-Projektobjekts an, das EXECUTE DBT PROJECT verwenden wird. Weitere Informationen dazu finden Sie unter Versionierung für dbt-Projektobjekte und -Dateien. Wenn kein Wert angegeben ist, verwendet EXECUTE DBT PROJECT die Option LAST. Weitere Informationen dazu finden Sie unter Versionierung für dbt-Projektobjekte und -Dateien.

Standard: Kein Wert

COMMENT = 'string_literal'

Gibt einen Kommentar für das dbt-Projektobjekt an.

Standard: Kein Wert

Anforderungen an die Zugriffssteuerung

Eine Rolle, die zur Ausführung dieser Operation verwendet wird, muss mindestens die folgenden Berechtigungen haben:

Berechtigung

Objekt

CREATE DBT PROJECT

Schema

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.

Nutzungshinweise

  • Die OR REPLACE- und IF NOT EXISTS-Klauseln schließen sich gegenseitig aus. Sie können nicht beide in derselben Anweisung verwendet werden.

  • CREATE OR REPLACE <Objekt>-Anweisungen sind atomar. Das heißt, wenn ein Objekt ersetzt wird, erfolgt das Löschen des alten Objekts und das Erstellen des neuen Objekts in einer einzigen Transaktion.

  • Metadaten:

    Achtung

    Kunden müssen sicherstellen, dass bei der Nutzung des Snowflake-Dienstes keine personenbezogenen Daten (außer für ein Objekt „User“), sensible Daten, exportkontrollierte Daten oder andere regulierte Daten als Metadaten eingegeben werden. Weitere Informationen dazu finden Sie unter Metadatenfelder in Snowflake.

Beispiele

Erstellen eines dbt-Projektobjekts aus einem Git-Repository-Stagingbereich in Snowflake

Erstellen Sie ein dbt-Projektobjekt namens sales_dbt_model aus dbt-Projektdateien in einem Git-Repository-Stagingbereich. Der Befehl gibt den Zweig main eines Git-Repository-Stagingbereichs namens sales_dbt_git_stage in Snowflake an, wo dbt_project.yml im Stammverzeichnis des Repositorys gespeichert ist.

CREATE DBT PROJECT sales_db.dbt_projects_schema.sales_model
  FROM '@sales_db.integrations_schema.sales_dbt_git_stage/branches/main'
  COMMENT = 'generates sales data models';
Copy

Erstellen eines dbt-Projektobjekts aus einem Unterverzeichnis innerhalb eines Git-Repository-Stagingbereichs in Snowflake

Erstellen Sie ein dbt-Projektobjekt namens sw_region_dbt_project aus einem Git-Repository-Stagingbereich, der mehrere dbt-Projekte enthält. Der Befehl gibt den Zweig main eines Git-Repository-Stagingbereichs namens sales_dbt_git_stage in Snowflake an, wo dbt_project.yml im Unterverzeichnis sw_region_dbt_project des sales_dbt_projects_parent-Verzeichnisses gespeichert ist.

CREATE DBT PROJECT sales_db.dbt_projects_schema.sw_region_sales_model
  FROM '@sales_db.integrations_schema.sales_dbt_git_stage/branches/main/sales_dbt_projects_parent/sw_region_dbt_project'
  COMMENT = 'generates data models for sw sales region';
Copy

Erstellen eines dbt-Projektobjekts aus einer bestimmten Version eines vorhandenen dbt-Projektobjekts

Erstellen Sie ein neues dbt-Projektobjekt namens sales_nw_dbt_model_combined_bookings aus version$2 des dbt-Objekt-Stagingbereichs sales_dbt_projects. Der DEFAULT_ARGS-Parameter gibt die --select-Befehlszeilenoption an, sodass nur Modelle mit dem Tag nw_region mit EXECUTE DBT PROJECT ausgeführt werden.

CREATE DBT PROJECT sales_db.dbt_projects_schema.sales_model_nw_region
  FROM 'snow://dbt/sales_db.dbt_projects_schema.sales_model/versions/version$2'
  DEFAULT_ARGS = '--select "tag:nw_region"'
  COMMENT = 'generates data models for the NW sales region';
Copy

Erstellen eines dbt-Projektobjekts aus einem Arbeitsbereich, der mehrere dbt-Projekte enthält

Erstellen Sie ein neues dbt-Projektobjekt namens sales_model_from_workspace aus der Live-Version eines Arbeitsbereichs für dbt Projects on Snowflake. Dies ist besonders nützlich bei der Erstellung eines dbt-Projektobjekts aus einem übergeordneten Arbeitsbereich, der mehrere dbt-Projekt-Unterverzeichnisse enthält. 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.

-- Create a dbt project object from a workspace named "My dbt Project Workspace" in the user's personal database.

CREATE DBT PROJECT sales_db.dbt_projects_schema.sales_model_from_workspace
  FROM 'snow://workspace/user$.public."My dbt Project Workspace"/versions/live'

-- Execute the dbt project, specifying a subdirectory path for a dbt project within the workspace

EXECUTE DBT PROJECT sales_db.dbt_projects_schema.sales_model_from_workspace
  PROJECT_ROOT = 'project2'
  ARGS = 'run --target prod';
Copy