EXECUTE DCM PROJECT

Führt eine der folgenden Aktionen für ein DCM-Projekt aus:

  • EXECUTE DCM PROJECT <name> PLAN führt einen Testlauf für das DCM project aus, um die Änderungen zu analysieren, die während einer Bereitstellung auf das Ziel angewendet werden, nimmt aber keine Änderungen vor.

  • EXECUTE DCM PROJECT <name> DEPLOY stellt die in den Definitionsdateien des Projekts definierten Änderungen für das Konto bereit.

  • EXECUTE DCM PROJECT <name> REFRESH ALL aktualisiert dynamische Tabellen, die vom DCM project verwaltet werden.

  • EXECUTE DCM PROJECT <name> TEST ALL testet alle Erwartungen an die angehängten Datenmetrikfunktionen, die vom DCM project verwaltet werden.

  • EXECUTE DCM PROJECT <name> PREVIEW gibt eine Datenprobe der aktuellen Definitionen zurück, die im Quellpfad für die angegebene Tabelle, Ansicht oder dynamische Tabelle angegeben sind.

Siehe auch:

CREATE DCM PROJECT, ALTER DCM PROJECT, DESCRIBE DCM PROJECT, DROP DCM PROJECT, SHOW DCM PROJECTS, SHOW DEPLOYMENTS IN DCM PROJECT

Syntax

EXECUTE DCM PROJECT <name>
  PLAN
  [ USING [ CONFIGURATION <config_name> ] [ (<expr>, [, <expr>, ...]) ] ]
  FROM '<source-files_path>'

EXECUTE DCM PROJECT <name>
  DEPLOY [ AS '<deployment_name_alias>' ]
  [ USING [ CONFIGURATION <name> ] [ (<expr>, [, <expr>, ...]) ] ]
  FROM '<source-files_path>'

EXECUTE DCM PROJECT <name>
  REFRESH ALL

EXECUTE DCM PROJECT <name>
  TEST ALL

EXECUTE DCM PROJECT <name>
  PREVIEW <fully_qualified_table_object_name>
  USING CONFIGURATION <config_name>
  FROM '<source_files_path>'

Erforderliche Parameter

name

Gibt den Bezeichner für das auszuführende DCM-Projekt 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.

PLAN

Weist Snowflake an, einen Leerlauf für das DCM project durchzuführen. Bei einem Testlauf analysiert Snowflake die Änderungen, die während einer Bereitstellung auf das Ziel angewendet werden, nimmt aber keine Änderungen vor.

DEPLOY [ AS 'deployment_name_alias' ]

Stellt die in den Definitionsdateien des Projekts definierten Änderungen für das Konto bereit; gibt optional einen Alias für die Bereitstellung an.

FROM 'source_files_path'

Gibt das Verzeichnis an, das die Quelldateien für das DCM project enthält. Das Verzeichnis muss eine Manifest-Datei und mindestens eine Definitionsdatei in /sources/definitions/ enthalten. Die Manifest-Datei enthält die Vorlagenwerte, falls eine Konfiguration angegeben wurde.

REFRESH ALL

Aktualisiert alle dynamischen Tabellen, die derzeit vom DCM project verwaltet werden.

TEST ALL

Testet alle Datenqualitätserwartungen, die mit Tabellen, dynamischen Tabellen oder Ansichten verbunden sind, die derzeit vom DCM project verwaltet werden.

PREVIEW fully_qualified_table_object_name

Gibt eine Datenprobe der aktuellen Definitionen zurück, die im Quellpfad für die angegebene Tabelle, Ansicht oder dynamische Tabelle angegeben sind – unabhängig vom bereitgestellten Status.

Optionale Parameter

USING CONFIGURATION config_name

Gibt die zu verwendende Konfiguration an. So können Sie Bereitstellungen für verschiedene Umgebungen anpassen, z. B. für Entwicklung, Staging oder Produktion, ohne verschiedene Projektdefinitionsdateien zu verwenden.

Wenn der Konfigurationsname nicht komplett in Großbuchstaben geschrieben ist, schließen Sie ihn in doppelte Anführungszeichen ein.

USING ( expr [, expr , ... ] )

Gibt optional Werte für Vorlagenvariablen an. Wenn Sie diese Option verwenden, werden alle Standard- oder Konfigurationswerte für diese spezielle Variable überschrieben. Der einzelne Ausdruck muss die folgende Form haben: <variable_name> => <variable_value>. Für Listen verwenden Sie die folgende Form: <variable_name> => [<value1>, <value2>, ...]. Beispiel: wh_size => 'MEDIUM' oder teams => ['TEAM_A', 'TEAM_B'].

So können Sie Bereitstellungen für verschiedene Umgebungen anpassen, z. B. für Entwicklung, Staging oder Produktion, ohne verschiedene Projektdefinitionsdateien zu verwenden.

Anforderungen an die Zugriffssteuerung

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

Berechtigung

Objekt

Anmerkungen

OWNERSHIP

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

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.

Ausgabe

Nachdem der Befehl DCM project ausgeführt wurde, gibt dieser Befehl je nach Variante die folgende Ausgabe zurück:

  • PLAN und DEPLOY: Eine einzelne Zeile, die ein JSON-Objekt mit dem Änderungsprotokoll enthält

  • PREVIEW: Ein Resultset

  • REFRESH ALL: Eine einzelne Zeile, die ein JSON-Objekt mit der vollständigen Antwort enthält

  • TEST ALL: Eine einzelne Zeile, die ein JSON-Objekt mit der vollständigen Antwort enthält

Nutzungshinweise

Beim Ausführen eines DCM project mit EXECUTE DCM PROJECT PLAN ist die Ausgabe des Befehls dieselbe wie für die eigentliche Bereitstellung. Der Unterschied besteht darin, dass keine Änderungen an dem betroffenen Konto vorgenommen werden. Mit diesem Feature können Sie überprüfen, ob die gerenderten Definitionsdateien eine gültige Syntax haben, welche Änderungen auf das Konto angewendet werden und ob die Eigentümerrolle des Projekts über die erforderlichen Berechtigungen zur Anwendung dieser Änderungen verfügt.

Um unbeabsichtigte Änderungen zu vermeiden und Fehler zu erkennen, führen Sie EXECUTE DCM PROJECT PLAN immer vor der Bereitstellung eines DCM project aus.

Unterstützung für Vorlagenvariablen

Mit Vorlagenvariablen können Sie den Inhalt der parametrisierten Definitionsdateien während der DCM project-Ausführung dynamisch auswählen. Sie können Vorlagenvariablen auf folgende Weise verwenden:

Im Abschnitt mit den Beispielen für Vorlagenvariablen finden Sie entsprechende Beispiele.

Beispiele

Grundlegende Beispiele

Führen Sie ein DCM project imPLAN-Modus aus, um Änderungen an einem Projekt zu validieren, ohne sie anzuwenden:

EXECUTE DCM PROJECT my_project
  PLAN
  FROM '@my_database.my_schema.my_stage/my_project';

Führen Sie ein DCM-Projekt imDEPLOY-Modus (zum Anwenden von Änderungen) aus, um einen Bereitstellungsalias und eine Konfiguration namens PROD anzugeben:

EXECUTE DCM PROJECT my_project
  DEPLOY AS "my_update"
  USING CONFIGURATION PROD
  FROM '@my_database.my_schema.my_stage/my_project';

Beispiele für Vorlagenvariablen

Die folgenden Beispiele zeigen, wie Sie den Wert für Vorlagenvariablen in einer EXECUTE DCM PROJECT-Anweisung angeben können.

Überschreiben der in der Manifest-Datei des DCM-Projekts definierten Vorlagenvariablen

  1. Definieren einer Vorlagenvariable namens desc in der Manifest-Datei:

    manifest_version: 2
    type: DCM_PROJECT
    default_target: DCM_DEV
    targets:
      DCM_DEV:
        desc: "created by hello world project"
    
  2. Erstellen Sie eine Definitionsdatei, die die Vorlagenvariable verwendet:

    DEFINE DATABASE NEW_DB;
    DEFINE TABLE NEW_DB.PUBLIC.TBL (ID INT) COMMENT = '{{desc}}';
    
  3. Rufen Sie den Befehl EXECUTE DCM PROJECT im DEPLOY-Modus auf und geben Sie einen Wert für die desc-Variable an, um ihren Standardwert im Manifest zu überschreiben:

    EXECUTE DCM PROJECT MY_PROJECT DEPLOY
      USING CONFIGURATION FIRST_CONFIG (desc => 'This object is mine')
      FROM '/my/project/source';
    

Angeben eines Werts für eine Vorlagenvariable, die nicht in der Manifest-Datei definiert ist

  1. Erstellen einer Definitionsdatei mit den gewünschten Befehlen:

    DEFINE DATABASE NEW_DB;
    DEFINE TABLE NEW_DB.PUBLIC.TBL (ID INT) COMMENT = '{{desc_new}}';
    
  2. Rufen Sie den Befehl EXECUTE DCM PROJECT auf und geben Sie einen Wert für die desc_new-Variable an:

    EXECUTE DCM PROJECT MY_PROJECT (desc_new => 'This object is mine');