EXECUTE DCM PROJECT¶
Führt eine der folgenden Aktionen für ein DCM-Projekt aus:
EXECUTE DCM PROJECT <name> PLANfü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> DEPLOYstellt die in den Definitionsdateien des Projekts definierten Änderungen für das Konto bereit.EXECUTE DCM PROJECT <name> REFRESH ALLaktualisiert dynamische Tabellen, die vom DCM project verwaltet werden.EXECUTE DCM PROJECT <name> TEST ALLtestet alle Erwartungen an die angehängten Datenmetrikfunktionen, die vom DCM project verwaltet werden.EXECUTE DCM PROJECT <name> PREVIEWgibt 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¶
Erforderliche Parameter¶
nameGibt 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.
PLANWeist 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 ALLAktualisiert alle dynamischen Tabellen, die derzeit vom DCM project verwaltet werden.
TEST ALLTestet alle Datenqualitätserwartungen, die mit Tabellen, dynamischen Tabellen oder Ansichten verbunden sind, die derzeit vom DCM project verwaltet werden.
PREVIEW fully_qualified_table_object_nameGibt 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_nameGibt 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'oderteams => ['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
PLAN- und DEPLOY-Ausgabe¶
Bemerkung
Während der Vorschauphase kann sich das genaue Ausgabeformat ändern.
Die Standardausgabe des Plans enthält die folgenden Informationen zur Ausführung des Plans im JSON-Format:
Eigenschaft |
Beschreibung |
|---|---|
|
Schemaversion des Ausgabeformats. Version 2 ist die neueste und einzige unterstützte Version. |
|
Kontextinformationen zur Ausführung. |
|
ISO 8601-Zeitstempel, wann der Befehl ausgeführt wurde. |
|
Eindeutiger Bezeichner der Abfrage, die diesen Plan erzeugt hat. |
|
Vollqualifizierter Name des DCM-Projektobjekts. |
|
Name des Benutzers, der den Befehl ausgeführt hat. |
|
Aktive Rolle, die zur Ausführung des Befehls verwendet wird. |
|
Der ausgeführte Befehl: |
|
Ein Array von Änderungseinträgen. Jeder Eintrag steht für ein Objekt, das erstellt, geändert oder gelöscht werden würde oder wurde. Ein leeres Array bedeutet, dass die Projektdefinitionen bereits mit dem Konto synchronisiert sind. |
|
Die geplante Aktion für das Objekt. Mögliche Werte: |
|
Identifiziert das Zielobjekt. |
|
Der Snowflake-Objekttyp. |
|
Name des Objekts. |
|
Vollqualifizierter Name des Objekts. |
|
Datenbank, die das Objekt enthält. Wird bei Objekten auf Kontoebene weggelassen. |
|
Schema, welches das Objekt enthält. Wird bei Objekten auf Datenbank- und Kontoebene weggelassen. |
|
Ein Array von Änderungsdeskriptoren, die die spezifischen Attributänderungen genau angeben. |
|
Der Typ der Änderung. Mögliche Werte: |
|
Name des Attributs, das festgelegt oder geändert wird. Vorhanden, wenn |
|
Der neue Wert für das Attribut. Vorhanden, wenn |
|
Der vorherige Wert des Attributs vor der Änderung. Nur vorhanden, wenn |
|
Name der Sammlung, die geändert wird (zum Beispiel |
|
Label, das zur Identifizierung von Elementen innerhalb der Sammlung verwendet wird (z. B.``name``). Nur für bestimmte Sammlungen vorhanden. |
|
Ein verschachteltes Array von Deskriptoren für Sammlungselemente. Nur vorhanden, wenn |
|
Der Typ der Änderung des Sammlungselements. Mögliche Werte: |
|
Identifiziert das Element innerhalb der Sammlung. Kann je nach Sammlungstyp eine Zeichenfolge oder ein Objekt sein. |
|
Ein Array weiterer Änderungsdeskriptoren für dieses Element. Vorhanden für |
Ein Beispiel für eine Planausgabe:
REFRESH ALL-Ausgabe¶
Die JSON-Ausgabe enthält die Ergebnisse der Aktualisierungsoperation der dynamischen Tabelle im folgenden Format:
Eigenschaft |
Beschreibung |
|---|---|
|
Enthält die Ergebnisse der Aktualisierungsoperation der dynamischen Tabelle. |
|
Ein Array von Einträgen, einer für jede dynamische Tabelle, die aktualisiert wurde. |
|
Vollqualifizierter Name der dynamischen Tabelle, die aktualisiert wurde. |
|
Aktualisierungsstatistiken für die Tabelle. |
|
Anzahl der Zeilen, die bei der Aktualisierung eingefügt wurden. |
|
Anzahl der Zeilen, die bei der Aktualisierung gelöscht wurden. |
|
ISO 8601-Zeitstempel, der die Aktualität der Daten nach der Aktualisierung angibt. |
Ein Beispiel für die JSON-Ausgabe für die Aktualisierung einer dynamischen Tabelle:
TEST ALL-Ausgabe¶
Die TEST-Ausgabe enthält den Gesamtstatus und die Erwartungen mit ihren Werten im folgenden Format:
Bemerkung
Während der Vorschauphase kann sich das genaue Ausgabeformat ändern.
Eigenschaft |
Beschreibung |
|---|---|
|
Gesamtergebnis des Testlaufs. Mögliche Werte: |
|
Ein Array von Erwartungsergebnissen, eines für jede ausgewertete Datenqualitätserwartung. |
|
Vollqualifizierter Name der Tabelle oder Ansicht, für die die Erwartung ausgewertet wurde. |
|
Datenbank, die die Datenmetrikfunktion enthält. |
|
Schema, das die Datenmetrikfunktion enthält. |
|
Name der Datenmetrikfunktion (zum Beispiel |
|
Name der Erwartung, wie im Projekt definiert. |
|
Boolescher Ausdruck, mit dem der Kennzahlwert ausgewertet wird (zum Beispiel |
|
Das Ergebnis der Evaluierung der Datenmetrikfunktion. Nur vorhanden, wenn |
|
Ob die Erwartung erfüllt wurde. |
|
Ein Array mit den Namen der Spalten, für die die Datenmetrikfunktion ausgewertet wurde. |
Ein Beispiel für die JSON-Ausgabe für einen Datenqualitätstest:
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:
Führen Sie ein DCM-Projekt imDEPLOY-Modus (zum Anwenden von Änderungen) aus, um einen Bereitstellungsalias und eine Konfiguration namens PROD anzugeben:
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
Definieren einer Vorlagenvariable namens
descin der Manifest-Datei:Erstellen Sie eine Definitionsdatei, die die Vorlagenvariable verwendet:
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:
Angeben eines Werts für eine Vorlagenvariable, die nicht in der Manifest-Datei definiert ist
Erstellen einer Definitionsdatei mit den gewünschten Befehlen:
Rufen Sie den Befehl EXECUTE DCM PROJECT auf und geben Sie einen Wert für die
desc_new-Variable an: