CREATE SNAPSHOT

Bemerkung

Diese Operation fällt derzeit nicht unter den Service Level, der in Support-Richtlinie und dem Service Level Agreement von Snowflake festgelegt ist.

Erstellt oder ersetzt einen Snapshot eines benannten Volumes aus der angegebenen Dienstinstanz. Der Snapshot wird im aktuellen Schema erstellt.

Siehe auch:

ALTER SNAPSHOT, DESCRIBE SNAPSHOT, DROP SNAPSHOT, SHOW SNAPSHOTS

Syntax

CREATE [ OR REPLACE ] SNAPSHOT [ IF NOT EXISTS ] <name>
  FROM SERVICE <service_name>
  VOLUME "<volume_name>"
  INSTANCE <instance_id>
  [ COMMENT = '<string_literal>']
  [ [ WITH ] TAG ( <tag_name> = '<tag_value>' [ , ... ] ) ]
Copy

Erforderliche Parameter

name

Zeichenfolge, die den Bezeichner (d. h. den Namen) für den Snapshot angibt. Der Wert muss für das Schema, in dem der Snapshot erstellt wird, 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.

FROM SERVICE service_name

Gibt den Namen des Dienstes an.

VOLUME "volume_name"

Gibt den Namen des mit dem Dienst verbundenen Volumes an. Snapshots können nur für Blockspeicher-Volumes erstellt werden (und nicht für lokale, Arbeitsspeicher- oder Staging-Volumes).

Bei Volume-Namen wird zwischen Groß- und Kleinschreibung unterschieden. Daher sollten doppelte Anführungszeichen immer verwendet werden, um den entsprechenden Namen in der Dienstspezifikation zu finden.

INSTANCE instance_id

Index der Dienstinstanz. Der Index der Dienstinstanz beginnt bei 0 und der Bereich ist [0, ...,  MAX_INSTANCES - 1]. Sie können die Funktion SYSTEM$GET_SERVICE_STATUS – Veraltet aufrufen, um die entsprechenden Informationen zu erhalten.

Optionale Parameter

COMMENT = 'string_literal'

Gibt einen Kommentar für den Dienst an.

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-Kontingente für Objekte und Spalten.

Anforderungen an die Zugriffssteuerung

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

Berechtigung

Objekt

Anmerkungen

CREATE SNAPSHOT

Schema

OPERATE

Dienst

USAGE-Berechtigung für die übergeordnete Datenbank und das Schema ist erforderlich, um Operationen an einem beliebigen Objekt in einem Schema durchzuführen.

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 „Benutzer“), sensible Daten, exportkontrollierte Daten oder andere regulierte Daten als Metadaten eingegeben werden. Weitere Informationen dazu finden Sie unter Metadatenfelder in Snowflake.

  • CREATE OR REPLACE <Objekt>-Anweisungen sind atomar. Das heißt, wenn ein Objekt ersetzt wird, erfolgt das Löschen des alten Objekts und das Erstellen des neuen Objekts in einer einzigen Transaktion.

  • Snowflake löscht die Jobdienste etwa 10 Minuten nach Abschluss der Ausführung. Um den Inhalt eines Blockspeicher-Volumes zu bewahren, das vom Jobdienst verwendet wird, müssen Sie einen Snapshot erstellen, bevor Snowflake den Auftrag löscht. Sie könnten beispielsweise eine gespeicherte Prozedur verwenden, um zunächst einen Jobdienst auszuführen und unmittelbar danach einen Snapshot zu erstellen.

  • Ein Schema darf keine Snapshots mit demselben Namen enthalten. Wenn beim Erstellen eines Snapshots bereits ein Snapshot mit demselben Namen im Schema existiert, wird ein Fehler zurückgegeben und der Snapshot wird nicht erstellt, es sei denn, das optionale Schlüsselwort OR REPLACE ist im Befehl enthalten. In diesem Fall löscht Snowflake den vorhandenen Snapshot und erstellt einen neuen Snapshot.

    Wichtig

    Ein Snapshot, der mit dem Befehl DROP SNAPSHOT oder CREATE OR REPLACE SNAPSHOT gelöscht wurde, kann nicht wiederhergestellt werden.

Beispiele

Wenn Sie einen Dienst mit zwei Instanzen (die Anzahl der Container ist nicht relevant) mit einem Volume namens „data“ erstellen, würden Sie einen Snapshot des Volumes, das mit der ersten Instanz verbunden ist, mit der folgenden SQL erstellen:

CREATE SNAPSHOT snapshot_0
  FROM SERVICE example_service
  VOLUME "data"
  INSTANCE 0
  COMMENT='new snapshot';
Copy

Um einen Snapshot des Volumes zu erstellen, das mit der zweiten Dienstinstanz verbunden ist, geben Sie INSTANCE 1 in der vorhergehenden SQL an.