Unterstützte Objekttypen in DCM Projects¶
Die DEFINE-Anweisung ist ein spezieller Befehl, der ausschließlich in DCM project-Definitionsdateien verwendet wird. Seine Syntax ist ähnlich wie beim Befehl CREATEORALTER, jedoch mit den folgenden wesentlichen Unterschieden:
Die Reihenfolge und der Speicherort von DEFINE-Anweisungen spielt keine Rolle. Snowflake sammelt und sortiert während der Ausführung des Projekts alle Anweisungen aus allen Definitionsdateien.
Wenn Sie eine DEFINE-Anweisung entfernen, die zuvor bereitgestellt wurde, löscht Snowflake das entsprechende Objekt, wenn Sie das Projekt das nächste Mal bereitstellen. Das Gleiche gilt für GRANT- und ATTACH-Anweisungen, die nach ihrer vorherigen Bereitstellung entfernt werden.
Es wird nur eine Teilmenge der Snowflake-Objekttypen unterstützt.
Alle Objekte müssen mit einem voll qualifizierten Namen definiert werden (
database.schema.object_name).Verweise auf andere Objekte müssen mit vollqualifizierten Namen versehen sein.
Die folgenden Objekttypen werden in DCM Projects-Definitionsdateien mit DEFINE-, GRANT- oder ATTACH-Anweisungen nativ unterstützt.
Authentifizierungsrichtlinie
Datenbank¶
🚫 Nicht unterstützte Änderungen:
Jegliche CREATE OR ALTER-Beschränkung einschließlich der Umbenennung der Datenbank
Schema¶
🚫 Nicht unterstützte Änderungen:
Jegliche CREATE OR ALTER-Beschränkung einschließlich der Umbenennung des Schemas
Tabelle¶
🚫 Nicht unterstützte Änderungen:
Jegliche `CREATEORALTER-Beschränkung<https://docs.snowflake.com/en/sql-reference/sql/create-table#create-or-alter-table-usage-notes>`_ _ einschließlich der folgenden Operationen:
Umbenennen von Tabellen
Umbenennen von Spalten
Neuordnen von Spalten
Ändern von Spaltentypen in inkompatible Typen
Hinzufügen einer Suchoptimierung zu einer Tabelle oder Spalten
Hinzufügen von Tags und Richtlinien zu einer Tabelle oder Spalten
Dynamische Tabelle¶
✅ Unterstützte Änderungen:
Ohne vollständige Aktualisierung:
Warehouse
Zielverzögerung
Bei Neuinitialisierung oder vollständiger Aktualisierung:
Aktualisierungsmodus
Alle Änderungen des Textkörpers, einschließlich:
Löschen von Spalten
Hinzufügen von Spalten am Ende
⚠️ Unveränderliche Argumente:
INITIALIZE
🚫 Nicht unterstützte Änderungen:
Jegliche `CREATEORALTER-Beschränkung<https://docs.snowflake.com/en/sql-reference/sql/create-dynamic-table#create-or-alter-dynamic-table-usage-notes>`_ _ einschließlich der folgenden Operationen:
Neuordnen von Spalten
Umbenennen von dynamischen Tabellen
Ansicht¶
🚫 Nicht unterstützte Änderungen:
Jegliche `CREATEORALTER-Beschränkung<https://docs.snowflake.com/en/sql-reference/sql/create-view#create-or-alter-view-usage-notes>`_ _ einschließlich der folgenden Operationen:
Umbenennen von Ansichten
Neuordnen von Spalten
Interner Stagingbereich¶
✅ Unterstützte Änderungen:
Verzeichnistabelle
Kommentar
⚠️ Unveränderliche Attribute:
Verschlüsselungstyp
Warehouse¶
⚠️ Unveränderliche Attribute:
INITIALLY_SUSPENDED
Rolle und Datenbankrolle¶
🚫 Nicht unterstützte Typen:
Anwendungsrolle
Grant¶
🚫 Nicht unterstützte GRANT-Typen:
APPLICATION ROLE-Zuweisungen
CALLER-Zuweisungen
Bemerkung
Beim Entfernen einer GRANT OWNERSHIP-Anweisung, die zuvor bereitgestellt wurde, versucht DCM Projects, die aktuelle Eigentümerrolle zu verwenden, um die Eigentümerschaft wieder an den DCM project-Eigentümer zurückzugeben. Wenn die Rolle des Projekteigentümers nicht die Eigentümerrolle des Objekts enthält, muss die Eigentümerschaft manuell außerhalb von DCM Projects zurückübertragen werden.
DCM Projects kennt nur Berechtigungen, die über DCM Projects definiert und bereitgestellt wurden. Alle Berechtigungen, die außerhalb von DCM Projects hinzugefügt wurden, koexistieren und werden von DCM Projects nicht entfernt.
Datenmetrikfunktion¶
Mit Datenmetrikfunktionen (DMFs) können Sie Erwartungen an die Datenqualität definieren und diese Erwartungen mit Tabellen verknüpfen. Sie können aus den bestehenden System-DMFs auswählen oder Ihre eigenen benutzerdefinierten Datenmetrikfunktionen (UDMFs) schreiben. Sie können sie dann mit einer Viele-zu-eins-Beziehung an Tabellen, Ansichten und dynamische Tabellen anhängen. Weitere Informationen dazu finden Sie unter Verwenden von SQL zum Einrichten von Datenmetrikfunktionen.
Um Datenmetrikfunktionen anzuhängen, müssen Sie zunächst einen DATA_METRIC_SCHEDULE zu jeder Tabelle, dynamischen Tabelle oder Ansichtsdefinition hinzufügen. Beispiel: DATA_METRIC_SCHEDULE = TRIGGER_ON_CHANGES. Der TRIGGER_ON_CHANGES-Zeitplan ist für Ansichten nicht verfügbar.
Die benutzerdefinierten Namen von Erwartungen müssen pro Projekt und Anhang eindeutig sein.
Das Definieren von Erwartungen ist optional, wird aber empfohlen, wenn Sie DMFs an Tabellenspalten anhängen. Angehängte DMFs ohne gesetzte Erwartungen werden bei der Ausführung von EXECUTE DCM PROJECT <my_project> TEST ALL nicht berücksichtigt.
✅ Unterstützte Änderungen:
Definieren von UDMFs (benutzerdefinierte Datenmetrikfunktionen)
Anhängen von System-DMFs und UDMFs für Tabellen, Ansichten oder dynamische Tabellen innerhalb und außerhalb eines DCM project
Definieren der Datenerwartungen für Tabellenspalten
Beispiel:
Ein Beispiel für die Definition einer UDMF:
Beispiel für das Anhängen einer System-DMF mit einer Erwartung:
Beispiel für das Anhängen einer UDMF mit einer Erwartung:
Um alle verfügbaren System-DMFs zu sehen, fragen Sie SHOW DATA METRIC FUNCTIONS IN DATABASE SNOWFLAKE ab.
Aufgabe¶
Wenn Definitionsänderungen für eine bereits gestartete Aufgabe vorgenommen werden, hält Snowflake diese Aufgabe (oder deren Stammaufgabe) automatisch vorübergehend an, wendet die Änderung an und setzt sie dann wieder fort.
Neu bereitgestellte Aufgaben sind standardmäßig angehalten.
🚫 Nicht unterstützte Änderungen:
Beschränkungen in CREATE OR ALTER TASK-Anweisungen Weitere Informationen dazu finden Sie unter CREATE TASK.
Funktion SQL¶
🚫 Nicht unterstützte Änderungen:
Beschränkungen in CREATE OR ALTER-Anweisungen Weitere Informationen dazu finden Sie unter CREATE FUNCTION.
Tag¶
🚫 Nicht unterstützte Attribute:
Weitergabe