CREATE SNAPSHOT SET

Erstellt ein Snapshot-Set für eine Tabelle, ein Schema oder eine Datenbank. Sobald das Snapshot-Set existiert, können Sie dem Snapshot-Set jederzeit ein neues Backup (Snapshot) hinzufügen, indem Sie einen ALTER SNAPSHOT SET-Befehl ausführen. Snowflake fügt dem Snapshot-Set auch automatisch Snapshots hinzu, wenn Sie einen Zeitplan in einer :ref:` Snapshot-Richtlinie <label-snapshots_concept_snapshot_policy> definiert und diese Snapshot-Richtlinie mit dem Snapshot-Set verknüpft haben.

Jedes Snapshot-Set repräsentiert ein Set von Backups für eine bestimmte Tabelle oder die Objekte in einem bestimmten Schema oder die Objekte in einer bestimmten Datenbank. Auf diese Weise können Sie Ihre Backups sehr detailliert oder sehr vollständig gestalten. Und die Sicherungen für jede Tabelle, jedes Schema oder jede Datenbank können ihre eigenen unabhängigen Zeitpläne haben.

Informationen zu den Arten von Objekten, die in Schema-Snapshots und Datenbank-Snapshots enthalten sind, finden Sie unter Snapshot-Objekte.

Siehe auch:

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

Syntax

CREATE [OR REPLACE] SNAPSHOT SET [IF NOT EXISTS] <name>
   FOR [DYNAMIC] TABLE <table_name>
   [ WITH SNAPSHOT POLICY <policy_name> ]
   [ COMMENT = <string> ]
Copy
CREATE [OR REPLACE] SNAPSHOT SET [IF NOT EXISTS] <name>
  FOR SCHEMA <schema_name>
   [ WITH SNAPSHOT POLICY <policy_name> ]
   [ COMMENT = <string> ]
Copy
CREATE [OR REPLACE] SNAPSHOT SET [IF NOT EXISTS] <name>
  FOR DATABASE <database_name>
   [ WITH SNAPSHOT POLICY <policy_name> ]
   [ COMMENT = <string> ]
Copy

Erforderliche Parameter

name

Bezeichner für das Snapshot-Set; der Bezeichner 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.

FOR [DYNAMIC] TABLE table_name

Gibt den Namen der Tabelle oder der dynamischen Tabelle an. In diesem Fall besteht das Snapshot-Set aus Backups einer einzelnen Tabelle.

FOR SCHEMA schema_name

Gibt den Namen des Schemas an. In diesem Fall repräsentiert das Snapshot-Set Backups aller Tabellen und anderer Objekte in einem bestimmten Schema.

FOR DATABASE database_name

Gibt den Namen der Datenbank an. In diesem Fall repräsentiert das Snapshot-Set Backups aller Tabellen, Schemas und anderen Objekte in einer bestimmten Datenbank.

Optionale Parameter

OR REPLACE

Wenn bereits ein Snapshot-Set mit diesem Namen existiert, löschen Sie ihn und erstellen Sie einen neuen. Wenn der Snapshot-Satz aufgrund von Snapshot-Richtlinienregeln für Aufbewahrungssperren, gesetzlichen Bestimmungen und Ablaufzeiten nicht gelöscht werden kann, schlägt der Befehl fehl. Diese Klausel schließt IF NOT EXISTS aus (und umgekehrt).

IF NOT EXISTS

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

WITH SNAPSHOT POLICY policy_name

Gibt den Namen der Snapshot-Richtlinie für das Set an. Die Snapshot-Richtlinie definiert die Eigenschaften des Snapshot-Sets, wie z. B. den Zeitplan für Backups, die Aufbewahrungsfrist für jeden Snapshot und ob verhindert werden soll, dass Snapshots vor dem Ende der Aufbewahrungsfrist entfernt werden.

Wenn Sie diesen Parameter von dem CREATE SNAPSHOT SET-Befehl weglassen, können Sie eine Richtlinie später mit dem ALTER SNAPSHOT SET-Befehl anwenden.

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.

COMMENT = 'string_literal'

Gibt einen Kommentar für das Snapshot-Set 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 SET

Die Rolle, mit der ein Snapshot-Set erstellt wird, muss diese Berechtigung für das Schema haben, in dem das Snapshot-Set erstellt wird. Um das Snapshot-Set tatsächlich zu erstellen, benötigt er auch die entsprechende Berechtigung für das Objekt, das Subjekt des Snapshot-Set ist: SELECT für einen Tabellen-Snapshot oder USAGE für einen Schema-Snapshot oder einen Datenbank-Snapshot.

SELECT

Die Rolle, mit der ein Snapshot-Set für eine Tabelle erstellt wird, muss die SELECT -Berechtigung für diese Tabelle haben.

USAGE

Die Rolle, mit der ein Snapshot-Set für ein Schema oder eine Datenbank erstellt wird, muss die Berechtigung USAGE-Berechtigung für dieses Schema oder diese Datenbank haben.

APPLY SNAPSHOT RETENTION LOCK

Die Rolle, die zum Anwenden einer Snapshot-Richtlinie mit Aufbewahrungssperre auf einem Snapshot-Set verwendet wird, muss über diese Berechtigung für das Konto verfügen.

Diese Berechtigungen sind für die derzeit aktive Primärrolle erforderlich, nicht für eine Sekundärrolle.

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

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 ein Snapshot-Set namens t1_snapshots für Tabelle t1:

CREATE SNAPSHOT SET t1_snapshots
  FOR TABLE t1;
Copy

Erstellen Sie ein Snapshot-Set t1_snapshots für Tabelle t1 mit einer Snapshot-Richtlinie:

CREATE SNAPSHOT SET t1_snapshots
  FOR TABLE t1
  WITH SNAPSHOT POLICY hour_snapshot_policy;
Copy

Erstellen Sie ein Snapshot-Set s1_snapshots für Schema s1 mit einer Snapshot-Richtlinie:

CREATE SNAPSHOT SET s1_snapshots
  FOR SCHEMA s1
  WITH SNAPSHOT POLICY hour_snapshot_policy;
Copy

Erstellen Sie ein Snapshot-Set d1_snapshots für Datenbank d1 mit einer Snapshot-Richtlinie:

CREATE SNAPSHOT SET d1_snapshots
  FOR DATABASE d1
  WITH SNAPSHOT POLICY hour_snapshot_policy;
Copy