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 <name> ADD VERSION [ <version_name_alias> ]
  FROM '<source_location>'

ALTER DBT PROJECT [ IF EXISTS ] <name> SET
  [ DBT_VERSION = '<version_number>' ]
  [ DEFAULT_TARGET = '<default_target>'' ]
  [ EXTERNAL_ACCESS_INTEGRATIONS = ( <integration_name> [, ... ] ) ]
  [ COMMENT = '<string_literal>' ]

ALTER DBT PROJECT [ IF EXISTS ] <name> UNSET
  [ DBT_VERSION ]
  [ DEFAULT_TARGET ]
  [ EXTERNAL_ACCESS_INTEGRATIONS ]
  [ COMMENT ]

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'

A string that specifies the source location of the dbt project files for the new version. The source location must point to a directory that contains a single dbt_project.yml file at its root.

The dbt project object source files can be in any one of the following locations:

  • 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'

    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 form version$<num>. For more information, see Versions for dbt project objects and files.

  • 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.

    The version specifier is required and can be last, first, live, or the specifier for any existing version in the form version$<num>. For more information, see Versions for dbt project objects and files.

SET ...

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

DBT_VERSION = 'version_number'

Specifies 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_target

Specifies the profile used for compilation and subsequent executions (for example, prod) of the dbt project object. This parameter can be overridden by using the EXECUTE DBT PROJECT command with ARGS = '--target <other_target>'.

EXTERNAL_ACCESS_INTEGRATIONS = ( integration_name [ , ... ] )

Gibt die Integration für den externen Zugriff an, die verwendet wird, um Berechtigungen zum Abrufen externer Abhängigkeiten von dbt Package Hub oder GitHub zu gewähren. Bei der Deklaration für ein Objekt wird dbt deps während der Bereitstellung automatisch ausgeführt. Weitere Informationen dazu finden Sie unter Erläuterungen zu den Abhängigkeiten von dbt-Projekten auf Snowflake.

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:

  • DBT_VERSION

  • DEFAULT_TARGET

  • EXTERNAL_ACCESS_INTEGRATIONS

  • 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).

Für das Ausführen von Operationen für ein Objekt in einem Schema ist mindestens eine Berechtigung für die übergeordnete Datenbank und mindestens eine Berechtigung für das übergeordnete Schema erforderlich.

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

Eine dbt-Version festlegen

Im folgenden Beispiel wird eine neue dbt-Version für ein dbt-Projektobjekt festgelegt:

ALTER DBT PROJECT finance_analytics SET dbt_version = '1.10.15';

Neue Version hinzufügen

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';

Ein Standardziel und eine neue Integration für den externen Zugriff festlegen

Im folgenden Beispiel wird ein bestehendes dbt-Projektobjekt mit den folgenden Änderungen aktualisiert:

  • Sets a default target that Snowflake uses when executing EXECUTE DBT PROJECT without specifying a --target argument. For example, if DEFAULT_TARGET = 'prod', then a command such as EXECUTE DBT PROJECT sales_db.dbt_projects_schema.sales_model ARGS = 'run'; would automatically execute using --target prod unless overridden by ARGS = '--target <other_target>'.

  • Assigns an external access integration for the dbt project object to use.

    Sie können eine einzelne Integration oder eine Liste bereitstellen: EXTERNAL_ACCESS_INTEGRATIONS = ('integration1', 'integration2').

ALTER DBT PROJECT sales_db.dbt_projects_schema.sales_model SET
  DEFAULT_TARGET = 'prod',
  EXTERNAL_ACCESS_INTEGRATIONS = ('my_external_access_integration');

Auf die Standardversion des Systems zurücksetzen

The following example reverts the dbt project object to the system default version, which is currently 1.9.4. Account administrators can change the default for all future dbt project objects in the account using the DEFAULT_DBT_VERSION account parameter.

For more information, see Standardversion auf Kontoebene festlegen.

ALTER DBT PROJECT finance_analytics UNSET DBT_VERSION;
Statement executed successfully.