CREATE SNAPSHOT POLICY

Erstellt eine Snapshot -Richtlinie Sie verknüpfen die Richtlinie mit einem oder mehreren Snapshot-Sets. Die Einstellungen in der Richtlinie definieren den Zeitplan und die Verfallsfristen für jedes Snapshot-Set, das die Richtlinie verwendet.

Der Zeitplan bestimmt, wie oft Snowflake automatisch ein Backup erstellt und den resultierenden Snapshot zum Snapshot-Set hinzufügt, das der Richtlinie unterliegt. Die Ablauffrist bestimmt, wie lange jeder Snapshot aufbewahrt wird, bevor Snowflake ihn automatisch aus dem zugehörigen Snapshot-Set löscht.

Tipp

Die Snapshot-Richtlinie ist für ein Snapshot-Set optional. Wenn Sie keine geplanten Backups, eine Aufbewahrungssperre oder einen Ablaufzeitraum benötigen, können Sie ein Snapshot-Set ohne Snapshot-Richtlinie erstellen. Sie können auch ALTER SNAPSHOT SET verwenden, um eine Snapshot-Richtlinie später auf ein bestehendes Snapshot-Set anzuwenden, oder um die in der Snapshot-Richtlinie angegebenen geplanten Backups anzuhalten und fortzusetzen.

Siehe auch:

ALTER SNAPSHOT POLICY, DROP SNAPSHOT POLICY, SHOW SNAPSHOT POLICIES, CREATE SNAPSHOT SET ALTER SNAPSHOT SET

Syntax

CREATE [OR REPLACE] SNAPSHOT POLICY [IF NOT EXISTS] <name>
   [ WITH RETENTION LOCK ]
   [ SCHEDULE = '{ <num> MINUTE | USING CRON <expr> <time_zone> }' ]
   [ EXPIRE_AFTER_DAYS = <days_integer> ]
   [ COMMENT = <string> ];
Copy

Erforderliche Parameter

name

Bezeichner für die Snapshot-Richtlinie. Dieser muss für Ihr Konto eindeutig sein.

Darüber hinaus muss der Bezeichner mit einem Buchstaben beginnen und darf keine Leer- oder Sonderzeichen enthalten, es sei denn, die gesamte Bezeichnerzeichenfolge wird in doppelte Anführungszeichen gesetzt (z. B. "My object"). Bei Bezeichnern, die in doppelte Anführungszeichen eingeschlossen sind, ist auch die Groß-/Kleinschreibung zu beachten.

Weitere Informationen dazu finden Sie unter Anforderungen an Bezeichner.

Optionale Parameter

OR REPLACE

Wenn bereits eine Snapshot-Richtlinie mit diesem Namen existiert, löschen Sie diese und erstellen Sie eine neue. Diese Klausel schließt IF NOT EXISTS aus (und umgekehrt).

IF NOT EXISTS

Erstellt die Snapshot-Richtlinie nur, wenn es keine Snapshot-Richtlinie mit demselben Namen gibt. Wenn bereits eine Snapshot-Richtlinie vorhanden ist, gibt der Befehl eine Erfolgsmeldung zurück, obwohl er keine Auswirkungen hat. Diese Klausel schließt OR REPLACE aus (und umgekehrt).

WITH RETENTION LOCK

Gibt die obligatorische Aufbewahrungsfrist für Snapshots an. Snapshots mit Aufbewahrungssperren können nicht gelöscht werden, selbst von einem berechtigten Benutzer. Weitere Informationen dazu finden Sie unter -Einschränkungen für einen Snapshot mit einer Aufbewahrungssperre.

Bemerkung

Nur ein Benutzer mit der Berechtigung APPLY SNAPSHOT RETENTION LOCK kann eine Snapshot-Richtlinie mit Aufbewahrungssperre erstellen.

Wichtig

Das Anwenden einer Snapshot-Richtlinie mit einer Aufbewahrungssperre auf einen Snapshot-Satz ist irreversibel. Aufgrund der starken Garantien, die für die Einhaltung gesetzlicher Vorschriften erforderlich sind, können Sie die Sperre nicht mehr widerrufen, nachdem Sie einem Snapshot-Set eine Aufbewahrungssperre erteilt haben. Der Snowflake-Support kann eine solche Aufbewahrungssperre auch nicht widerrufen. Planen Sie sorgfältig, bevor Sie eine Aufbewahrungssperre für ein Snapshot-Set mit einer langen Ablauffrist festlegen, um unerwartete Speichergebühren für nicht löschbare Snapshot-Sets und die Schemas und Datenbanken, die sie enthalten, zu vermeiden.

Wenn eine Snowflake-Organisation gelöscht wird, ist die Organisation nicht mehr ein Snowflake-Kunde. In diesem Fall löscht Snowflake alle Snapshots, auch solche mit Aufbewahrungssperren. Das Löschen einer Snowflake-Organisation erfordert die Einbeziehung des Snowflake-Supports. Das kann ein Administrator nicht versehentlich tun.

SCHEDULE = '{ num MINUTE | USING CRON expr time_zone }'

Gibt den Zeitplan für das Erstellen von Snapshots eines Objekts an.

Bemerkung

Der Mindestzeitplan für Snapshots muss 60 Minuten betragen.

Jede Snapshot-Richtlinie muss eine oder beide Eigenschaften des Zeitplans und des Ablaufzeitraums haben. Weitere Informationen dazu finden Sie unter Snapshot-Richtlinie.

  • USING CRON expr time_zone

    Gibt einen Cron-Ausdruck und eine Zeitzone für den Zeitpunkt an, zu dem ein Snapshot eines Objekts erstellt wird. Unterstützt eine Teilmenge der Standardsyntax des Cron-Dienstprogramms.

    Eine Liste der Zeitzonen finden Sie unter List of tz database time zones (Liste der Zeitzonen aus der IANA-Zeitzonen-Datenbank) (Wikipedia).

    Der Cron-Ausdruck besteht aus folgenden Feldern:

    # __________ minute (0-59)
    # | ________ hour (0-23)
    # | | ______ day of month (1-31, or L)
    # | | | ____ month (1-12, JAN-DEC)
    # | | | | __ day of week (0-6, SUN-SAT, or L)
    # | | | | |
    # | | | | |
      * * * * *
    

    Folgende Sonderzeichen werden unterstützt:

    *

    Platzhalter. Gibt jedes vorkommende Feld an.

    L

    Steht für „last“ (letzte). Bei Verwendung im Wochentag-Feld können Sie Konstrukte wie „den letzten Freitag“ („5L“) eines bestimmten Monats angeben. Im Feld Tag des Monats wird der letzte Tag des Monats angegeben.

    /n

    Gibt die n-te Instanz einer bestimmten Zeiteinheit an. Jeder Zeitanteil wird unabhängig berechnet. Wenn beispielsweise im Monatsfeld 4/3 angegeben ist, ist der Snapshot für April, Juli und Oktober geplant (d. h. alle 3 Monate, beginnend ab dem 4. Monat des Jahres). In den Folgejahren wird derselbe Zeitplan beibehalten. Das heißt, für den Snapshot ist ``4/3``keine:emph:` Ausführung im Januar (3 Monate nach der Oktober-Ausführung) geplant.

    Bemerkung

    • Der Cron-Ausdruck wird derzeit nur für die angegebene Zeitzone ausgewertet. Das Ändern des TIMEZONE-Parameterwerts für das Konto (oder das Festlegen des Werts auf Benutzer- oder Sitzungsebene) führt nicht zur Änderung der Zeitzone des Snapshots.

    • Der Cron-Ausdruck definiert alle gültigen Ausführungszeiten für den Snapshot. Snowflake versucht, einen Snapshot auf der Grundlage dieses Zeitplans zu erstellen. Eine gültige Laufzeit wird jedoch übersprungen, wenn ein vorheriger Lauf nicht vor dem Start der nächsten gültigen Laufzeit abgeschlossen wurde.

    • Wenn sowohl ein bestimmter Tag des Monats als auch ein bestimmter Wochentag im Cron-Ausdruck enthalten sind, wird der Snapshot an Tagen geplant, die entweder dem Tag des Monats oder dem Wochentag entsprechen. Beispielsweise plant SCHEDULE = 'USING CRON 0 0 10-20 * TUE,THU UTC' einen Snapshot um 0AM (0:00 Uhr) an jedem 10. bis 20. Tag des Monats und auch an jedem Dienstag oder Donnerstag außerhalb dieser Tage.

  • num MINUTE

    Gibt ein Intervall (in Minuten) der Wartezeit zwischen den Snapshots an. Akzeptiert nur positive ganze Zahlen.

    Unterstützt auch die Syntax num M.

    Um Mehrdeutigkeiten zu vermeiden, wird in den folgenden Fällen eine Basisintervallzeit festgelegt:

    • Wenn das Objekt erstellt wird (mit CREATE SNAPSHOT SET … WITH SNAPSHOT POLICY).

    • Wenn ein anderes Intervall eingerichtet wird (mit ALTER SNAPSHOT SET … APPLY SNAPSHOT POLICY oder ALTER SNAPSHOT POLICY … SET SCHEDULE).

    Die Basisintervallzeit startet den Intervallzähler ab der aktuellen Uhrzeit. Wenn beispielsweise ein INTERVAL-Wert von 10 festgelegt ist und der geplante Snapshot um 9:03 Uhr AM aktiviert ist, dann werden die nächsten Snapshots um 9:13 Uhr AM, 9:23 AM und so weiter erstellt. Beachten Sie, dass wir uns nach besten Kräften bemühen, absolute Präzision sicherzustellen. Dennoch garantieren wir aber nur, dass Snapshots nicht INTERVALvor``10`` ihrem festgelegten Intervall ausgeführt werden (im aktuellen Beispiel könnte es also sein, dass der Snapshot erst um 9:14 Uhr ausgeführt wird, aber definitiv nicht um 9:12 Uhr).

EXPIRE_AFTER_DAYS = days_integer

Gibt die Anzahl der Tage bis zum Ablaufen des Snapshots an. Snowflake löscht automatisch abgelaufene Snapshots. Wenn dieser Parameter nicht angegeben wird, verbleiben die Snapshots im Snapshot-Satz, bis sie manuell aus dem Satz gelöscht werden.

Bemerkung

Jede Snapshot-Richtlinie muss eine oder beide Eigenschaften des Zeitplans und des Ablaufzeitraums haben. Weitere Informationen dazu finden Sie unter Snapshot-Richtlinie.

COMMENT = 'string_literal'

Gibt einen Kommentar zur Snapshot-Richtlinie an.

Standard: Kein Wert

Anforderungen an die Zugriffssteuerung

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

Berechtigung

Anmerkungen

CREATE SNAPSHOT POLICY

Die Rolle, mit der eine Snapshot-Richtlinie erstellt wird, muss über diese Berechtigung für das Schema verfügen, in dem die Richtlinie erstellt wird.

APPLY SNAPSHOT RETENTION LOCK

Nur ein Benutzer mit dieser Berechtigung für das Konto kann eine Snapshot-Richtlinie mit Aufbewahrungssperre erstellen.

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

  • Time Travel und Failsafe-Aufbewahrungsfristen gelten nicht für Snapshots. Ein Snapshot kann nach Ablauf nicht wiederhergestellt werden.

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

Wichtig

Wenn auf die Snapshot-Richtlinie eine Aufbewahrungssperre angewendet wurde und noch nicht abgelaufene Snapshots im Snapshot-Satz enthalten sind, können Sie den Snapshot-Satz nicht löschen. In diesem Fall müssen Sie warten, bis alle Snapshots im Satz abgelaufen sind. Diese Einschränkung gilt auch für privilegierte Rollen wie ACCOUNTADMINund für den Snowflake-Support. Aus diesem Grund sollten Sie vorsichtig sein, wenn Sie in einer Snapshot-Richtlinie eine Aufbewahrungssperre und einen langen Ablaufzeitpunkt angeben.

Beispiele

Erstellen Sie eine Snapshot-Richtlinie, die jede Stunde einen Snapshot erstellt und nach 90 Tagen abläuft:

CREATE SNAPSHOT POLICY hourly_snapshot_policy
  SCHEDULE = '60 MINUTE'
  EXPIRE_AFTER_DAYS = 90
  COMMENT = 'Hourly snapshots that expire after 90 days';
Copy

Erstellen Sie eine Snapshot-Richtlinie mit einer Aufbewahrungssperre, die alle 24 Stunden einen Snapshot erstellt und nach 90 Tagen abläuft. Die Snapshots, die mit dieser Snapshot-Richtlinie erstellt wurden, können vor Ablauf des Zeitraums nicht geändert oder gelöscht werden:

CREATE SNAPSHOT POLICY daily_snapshot_policy_with_lock
  WITH RETENTION LOCK
  SCHEDULE = '1440 MINUTE'
  EXPIRE_AFTER_DAYS = 90
  COMMENT = 'regulatory backups expire after 90 days with retention lock';
Copy

Erstellen Sie eine Snapshot-Richtlinie unter Verwendung eines Cron-Ausdrucks für den Zeitplan. Mit der folgenden Anweisung wird eine Richtlinie erstellt, die jeden Dienstag und Freitag der Woche um 11PM erstellt wird:

CREATE SNAPSHOT POLICY twice_weekly_snapshot_policy
  SCHEDULE = 'USING CRON 0 23 * * 2,5 UTC'
  EXPIRE_AFTER_DAYS = 7
  COMMENT = 'Twice-weekly snapshots that expire after 7 days';
Copy