ALTER STORAGE LIFECYCLE POLICY¶
Ändert die Eigenschaften einer vorhandenen Lebenszyklusrichtlinie des Speichers.
Achtung
Änderungen an einer Speicherlebenszyklusrichtlinie können erhebliche Auswirkungen auf alle zugehörigen Tabellen haben. Verwenden Sie die QUERY_HISTORY-Ansicht im ACCOUNT_USAGE-Schema, um Richtlinienänderungen regelmäßig zu prüfen. Weitere Informationen dazu finden Sie unter Ansicht QUERY_HISTORY.
- Siehe auch:
CREATE STORAGE LIFECYCLE POLICY, DESCRIBE STORAGE LIFECYCLE POLICY, DROP STORAGE LIFECYCLE POLICY, SHOW STORAGE LIFECYCLE POLICIES
Syntax¶
ALTER STORAGE LIFECYCLE POLICY [ IF EXISTS ] <name> RENAME TO <new_name>
ALTER STORAGE LIFECYCLE POLICY [ IF EXISTS ] <name> SET
BODY -> <expression_on_arg_name>
| ARCHIVE_TIER = { COOL | COLD }
| ARCHIVE_FOR_DAYS = <number_of_days>
| COMMENT = '<string_literal>'
| TAG <tag_name> = '<tag_value>' [ , <tag_name> = '<tag_value>' ... ]
ALTER STORAGE LIFECYCLE POLICY [ IF EXISTS ] <name> UNSET
ARCHIVE_FOR_DAYS
| COMMENT
| TAG <tag_name> [ , <tag_name> ... ]
Parameter¶
nameGibt den Bezeichner für die zu ändernde Richtlinie 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_nameGibt den neuen Bezeichner für die Richtlinie an. Dieser muss für Ihr Schema eindeutig sein.
Weitere Informationen dazu 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 Formatdb_name.schema_name.object_namebzw.schema_name.object_nameenthä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.
SET ...Gibt eine oder mehrere Eigenschaften an, die für die Richtlinie festgelegt werden sollen:
BODY -> expression_on_arg_nameSQL-Ausdruck, der die abzulaufenden Zeilen bestimmt.
Um die Daten zu transformieren, können Sie integrierte Funktionen wie Funktionen für bedingte Ausdrücke oder benutzerdefinierte Funktionen (UDFs) verwenden.
Bemerkung
Derzeit werden nur SQL und JavaScript UDFs im Tetxtteil einer Speicherlebenszyklusrichtlinie unterstützt.
ARCHIVE_TIER = { COOL | COLD }Gibt eine Speicherebene an, bei der eine Verfallsrichtlinie konvertiert werden soll, wobei ARCHIVE_FOR_DAYS in eine Archivrichtlinie aufgenommen wird.
COOLerfordert, dass Sie eine Archivierungsfrist (ARCHIVE_FOR_DAYS) von 90 Tagen oder länger festlegen.COLDerfordert, dass Sie eine Archivierungsfrist (ARCHIVE_FOR_DAYS) von 180 Tagen oder länger festlegen.
ARCHIVE_FOR_DAYS = number_of_daysGibt die Anzahl der Tage an, in denen Zeilen, die mit dem Richtlinienausdruck übereinstimmen, im Archivspeicher aufbewahrt werden sollen. Wenn dieser Wert gesetzt ist, verschiebt Snowflake die Daten gemäß dem Wert, den Sie für ARCHIVE_TIER auswählen, in den Archivspeicher. Wenn dieser Wert nicht gesetzt ist, lässt Snowflake die Zeilen in der Tabelle ablaufen, ohne die Daten zu archivieren.
Werte:
ARCHIVE_TIER = COOL:
90–2147483647ARCHIVE_TIER = COLD:
180–2147483647
Standard: Nicht gesetzt
COMMENT = 'string_literal'Fügt einen Kommentar hinzu oder überschreibt den vorhandenen Kommentar zur Richtlinie.
Standard: Kein Wert
TAG tag_name = 'tag_value' [ , tag_name = 'tag_value' , ... ]Gibt den Namen des Tags und den Wert der Tag-Zeichenfolge an.
Der Tag-Wert ist immer eine Zeichenfolge, die maximale 256 Zeichen lang sein kann.
Weitere Informationen zur Angabe von Tags in einer Anweisung finden Sie unter Tag quotas.
UNSET ...Gibt die Eigenschaften an, die für die Richtlinie deaktiviert werden sollen, wodurch sie auf die Standardeigenschaften zurückgesetzt werden:
ARCHIVE_FOR_DAYSCOMMENTTAG tag_name [ , tag_name ... ]
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 dieser Operation verwendet wird, muss mindestens die folgenden Berechtigungen haben:
Berechtigung |
Objekt |
Anmerkungen |
|---|---|---|
OWNERSHIP |
Richtlinie für den Lebenszyklus des Speichers |
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. Beachten Sie, dass eine Rolle, die eine beliebige Berechtigung für ein Schema erhalten hat, es dieser Rolle erlaubt, das Schema aufzulösen. Zum Beispiel kann eine Rolle, der die CREATE-Berechtigung für ein Schema gewährt wurde, Objekte in diesem Schema erstellen, ohne auch USAGE für dieses Schema gewährt bekommen zu haben.
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.
Nutzungshinweise¶
Wenn Sie eine bestehende Richtlinie aktualisieren möchten und dazu die aktuelle Definition der Richtlinie anzeigen müssen, können Sie die Funktion GET_DDL aufrufen oder den Befehl DESCRIBE STORAGE LIFECYCLE POLICY ausführen.
Sie können die Richtliniensignatur mit diesem Befehl nicht ändern. Um die Signatur zu ändern, verwenden Sie den DROP STORAGE LIFECYCLE POLICY-Befehl, und erstellen Sie dann eine neue Richtlinie.
Nachdem Sie die ARCHIVE_TIER für eine Richtlinie eingestellt haben, können Sie diese nicht ändern. Sie können diesen Befehl zum Beispiel nicht verwenden, um die ARCHIVE_TIER für eine Richtlinie von COOL in COLD zu ändern.
Wenn Sie ARCHIVE_FOR_DAYS für eine Richtlinie deaktivieren, ändert sich die Speicherebene nicht. Wenn Sie den Archivspeicher für die Richtlinie später wieder aktivieren, können Sie die Speicherebene nicht mehr ändern.
Das Einfügen einer oder mehrerer Unterabfragen in den Richtlinientext kann zu Fehlern führen. Wenn möglich, begrenzen Sie die Anzahl der Unterabfragen, begrenzen Sie die Anzahl der JOIN-Operationen, und vereinfachen Sie die Bedingungen der WHERE-Klausel.
Hinweis zu 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 die Speicherlebenszyklusrichtlinie so aktualisiert, dass geschlossene Konten nach 30 Tagen verfallen.
ALTER STORAGE LIFECYCLE POLICY expire_storage_for_closed_accounts
SET BODY ->
event_ts < DATEADD(DAY, -30, CURRENT_TIMESTAMP())
AND EXISTS (
SELECT 1 FROM closed_accounts
WHERE id = account_id
);