ALTER DBT PROJECT

Ändert die Eigenschaften eines vorhandenen dbt-Projektobjekts.

Siehe auch:

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

Syntax

ALTER DBT PROJECT [ IF EXISTS ] <name> RENAME TO <new_name>

ALTER DBT PROJECT [ IF EXISTS ] ADD VERSION [ <version_name_alias> ]
  FROM '<source_location>'

ALTER DBT PROJECT [ IF EXISTS ] <name> SET
  [ DEFAULT_VERSION = { FIRST | LAST | VERSION$<num> } ]
  [ DEFAULT_ARGS = '<string_literal>' ]
  [ COMMENT = '<string_literal>' ]

ALTER DBT PROJECT [ IF EXISTS ] <name> UNSET
  [ DEFAULT_ARGS ]
  [ COMMENT ]
Copy

Parameter

name

Gibt den Bezeichner für das zu ändernde dbt-Projektobjekt an.

Wenn der Bezeichner Leerzeichen oder Sonderzeichen enthält, muss die gesamte Zeichenfolge in doppelte Anführungszeichen gesetzt werden. Bei Bezeichnern, die in doppelte Anführungszeichen eingeschlossen sind, ist auch die Groß- und Kleinschreibung zu beachten.

Weitere Informationen dazu finden Sie unter Anforderungen an Bezeichner.

RENAME TO new_name

Ändert den Namen des dbt-Projektobjekts in new_name. Der neue Bezeichner muss in dem Schema eindeutig sein.

Weitere Informationen über Bezeichner finden Sie unter Anforderungen an Bezeichner.

Sie können das Objekt in eine andere Datenbank und/oder in ein anderes Schema verschieben und dabei optional das Objekt umbenennen. Geben Sie dazu einen qualifizierten new_name-Wert an, der den neuen Datenbank- und/oder Schemanamen im Format db_name.schema_name.object_name bzw. schema_name.object_name enthält.

Bemerkung

  • Die Zieldatenbank und/oder das Zielschema müssen bereits vorhanden sein. Außerdem darf in der Zieldatenbank nicht bereits ein gleichnamiges Schema vorhanden sein, da die Anweisung sonst einen Fehler zurückgibt.

  • Das Verschieben eines Objekts in ein verwaltetes Zugriffsschema ist nicht zulässig, es sei denn, der Objekteigentümer (d. h. die Rolle mit der Berechtigung OWNERSHIP für das Objekt) ist auch Eigentümer des Zielschemas.

Wenn ein Objekt umbenannt wird, müssen andere Objekte, die darauf verweisen, mit dem neuen Namen aktualisiert werden.

ADD VERSION [ version_name_alias ]

Erstellt eine neue Version, indem der Bezeichner der aktuellen Version schrittweise um eins erhöht wird, zum Beispiel von version$2 auf version$3.

Das version name alias ist optional und ist ein kundenspezifischer Bezeichner, der dem neu erstellten Versionsbezeichner entspricht. Das version name alias muss Anforderungen an Bezeichner folgen.

FROM 'source_location'

Eine Zeichenfolge, die den Speicherort der Quelldateien und die Version für das dbt-Projekt angibt, aus dem die Version erstellt wird.

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

  • A Git repository stage, 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.

  • An internal named stage, 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.

  • A workspace for dbt on 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.

SET ...

Legt eine oder mehrere angegebene Eigenschaften oder Parameter für das dbt-Projektobjekt fest:

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.

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.

COMMENT = 'string_literal'

Fügt einen Kommentar hinzu oder überschreibt einen vorhandenen Kommentar für das dbt-Projektobjekt.

UNSET ...

Hebt eine oder mehrere angegebene Eigenschaften oder Parameter für das dbt-Projektobjekt auf NULL oder kein Wert auf:

  • DEFAULT_VERSION

  • DEFAULT_ARGS

  • COMMENT

Um mehrere Eigenschaften oder Parameter mit einer einzigen ALTER-Anweisung zurückzusetzen, trennen Sie jede Eigenschaft oder jeden Parameter durch ein Komma.

Wenn Sie eine Eigenschaft oder einen Parameter zurücksetzen, geben Sie nur den Namen der Eigenschaft oder des Parameters an (es sei denn, die obige Syntax weist darauf hin, dass Sie den Wert angeben sollten). Die Angabe des Wertes gibt einen Fehler zurück.

Anforderungen an die Zugriffssteuerung

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

Berechtigung

Objekt

Anmerkungen

OWNERSHIP

dbt-Projekt

OWNERSHIP is a special privilege on an object that is automatically granted to the role that created the object, but can also be transferred using the GRANT OWNERSHIP command to a different role by the owning role (or any role with the MANAGE GRANTS privilege).

USAGE-Berechtigung für die übergeordnete Datenbank und das Schema ist erforderlich, um Operationen an einem beliebigen Objekt in einem Schema durchzuführen.

Nutzungshinweise

  • 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

Im folgenden Beispiel wird ein Git-Repository-Objekt in Snowflake aktualisiert, um den neuesten Code aus dem Git-Repository abzurufen, und dann wird der Inhalt des dbt-Projektobjekts aktualisiert, indem eine neue Version hinzugefügt wird:

-- Update the Git repository object to fetch the latest code

ALTER GIT REPOSITORY sales_db.integrations_schema.sales_dbt_git_stage FETCH;

-- Add a new version to the dbt project object based on the updated Git repository object

ALTER DBT PROJECT sales_db.dbt_projects_schema.sales_model
  ADD VERSION
  FROM '@sales_db.integrations_schema.sales_dbt_git_stage/branches/main/sales_dbt_project';
Copy

Im folgenden Beispiel werden die Standardargumente eines dbt-Projektobjekts für die Ausführung auf das prod-Ziel festgelegt, das alle zuvor in der Projektdefinition gesetzten Standardargumente überschreibt:

ALTER DBT PROJECT sales_db.dbt_projects_schema.sales_model
  SET DEFAULT_ARGS = 'run --target prod';
Copy