CREATE DBT PROJECT¶
Creates a new dbt project object or replaces an existing dbt project object. Running CREATE DBT PROJECT with the OR REPLACE option resets the version identifier to version$1 and removes all version name aliases. For more information, see Versions for dbt project objects and files.
- Siehe auch:
ALTER DBT PROJECT, DESCRIBE DBT PROJECT, EXECUTE DBT PROJECT, SHOW DBT PROJECTS, DROP DBT PROJECT
Syntax¶
Parameter¶
nameString that specifies the name of the dbt project object. Must be unique within the schema in which the dbt project object is created.
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.
FROM 'source_location'Required. A string that specifies the location of the dbt project source files.
The source location must point to a directory that contains a single
dbt_project.ymlfile at its root. Although workspaces support working with repositories that contain multiple dbt projects, you must select a specific project directory when deploying a dbt project object.The dbt project object source files can be in any one of the following locations:
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'The version specifier is required and can be
last(as shown in the previous example),first, or the specifier for any existing version in the formversion$<num>. For more information, see Versions for dbt project objects and files.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.
The version specifier is required and can be
last,first,live, or the specifier for any existing version in the formversion$<num>. For more information, see Versions for dbt project objects and files.
COMMENT = 'string_literal'Gibt einen Kommentar für das dbt-Projektobjekt an.
Standard: Kein Wert
DBT_VERSION = version_numberSpecifies a version for the dbt project object.
If no value is specified, the system defaults to the version set by the DEFAULT_DBT_VERSION account parameter. For more information, see Standardversion auf Kontoebene festlegen.
DEFAULT_TARGET = default_targetSpecifies the profile used for compilation and subsequent executions (for example,
prod) of the dbt project object. You can override this parameter by using the EXECUTE DBT PROJECT command withARGS = '--target <other_target>'.Standard: Kein Wert
EXTERNAL_ACCESS_INTEGRATIONS = ( integration_name [ , ... ] )Gibt die Integration für externen Zugriff an, die verwendet wird, um Berechtigungen zum Abrufen externer Abhängigkeiten von dbt-Paket-Hub oder GitHub zu gewähren. Bei der Deklaration für ein Objekt wird
dbt depswährend der Bereitstellung automatisch ausgeführt. Weitere Informationen dazu finden Sie unter Erläuterungen zu den Abhängigkeiten von dbt-Projekten auf Snowflake.
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 |
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.
Nutzungshinweise¶
Die Klauseln OR REPLACE und IF NOT EXISTS schließen sich gegenseitig aus. Sie können nicht beide in der gleichen 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 eines dbt-Projektobjekts aus einer bestimmten Version eines vorhandenen dbt-Projektobjekts
Erstellen eines dbt-Projektobjekts aus einem Arbeitsbereich, der mehrere dbt-Projekte enthält
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. Dieses Beispiel referenziert den main-Zweig eines Git-Repositorys mit dem Namen sales_dbt_git_stage in Snowflake, in dem die dbt_project.yml-Datei des Projekts im Repository-Unterverzeichnis gespeichert ist. Der Befehl legt auch das Standardziel fest, das bei der Ausführung von dbt-Befehlen verwendet wird, und gibt die für das Projekt erforderlichen Integrationen für den externen Zugriff an.
Erstellen eines dbt-Projektobjekts aus einem Unterverzeichnis innerhalb eines Git-Repository-Stagingbereichs in Snowflake¶
Erstellen Sie ein dbt-Projekt mit dem Namen sw_region_sales_model aus einem Unterverzeichnis in einem Git-Repository-Stagingbereich, der mehrere dbt-Projekte enthält. Das Beispiel referenziert den main-Zweit eines Git-Repositorys mit dem Namen sales_dbt_git_stage in Snowflake, in dem die dbt_project.yml-Datei des Projekts im Unterverzeichnis sw_region_dbt_project des Verzeichnisses sales_dbt_projects_parent gespeichert ist.
In diesem Beispiel werden auch die folgenden Eigenschaften festgelegt:
dbt-Version
Das Standard-Ausführungsziel (z. B.
prododerdev), das von dbt-Befehlen verwendet wird, die über Snowflake ausgeführt werden.External access integrations the dbt project object is permitted to use to pull remote dependencies from dbt package hub or Github.
Erstellen eines dbt-Projektobjekts aus einer bestimmten Version eines vorhandenen dbt-Projektobjekts¶
Create a new dbt project object named sales_model_nw_region from version$2 of the existing sales_model dbt project object.
In diesem Beispiel wird auch ein Standard-Ausführungsziel mit DEFAULT_TARGET festgelegt, und es gibt zulässige Integrationen für den externen Zugriff mit EXTERNAL_ACCESS_INTEGRATIONS an.
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, der mehrere dbt-Projektverzeichnisse enthält. „My dbt Project Workspace“ innerhalb der persönlichen Datenbank des Benutzers. Dies ist nützlich, wenn der Arbeitsbereich mehrere Unterprojekte hat und Sie ein dbt-Projektobjekt aus einem bestimmten Unterverzeichnis erstellen möchten. Bei Arbeitsbereichen wird zwischen Groß- und Kleinschreibung unterschieden, und sie können Sonderzeichen enthalten. Daher empfehlen wir, den Namen des Arbeitsbereichs in doppelte Anführungszeichen zu setzen.