Thanks to visit codestin.com
Credit goes to docs.snowflake.com

CREATE SNAPSHOT

注釈

この操作は現在、 Snowflake’s Support Policy and Service Level Agreement に規定されたService Levelセットの対象外です。

指定したボリュームとサービスインスタンスの ブロックストレージ量のスナップショット を作成または置換します。スナップショットは現在のスキーマで作成されます。

こちらもご参照ください。

ALTER SNAPSHOTDESCRIBE SNAPSHOTDROP SNAPSHOTSHOW SNAPSHOTS

構文

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

必須パラメーター

name

スナップショットの識別子(つまり、名前)を指定する文字列。スナップショットが作成されるスキーマで一意にする必要があります。

また、識別子はアルファベット文字で始まる必要があり、識別子文字列全体が二重引用符で囲まれていない限り、スペースや特殊文字を含めることはできません(例: "My object")。二重引用符で囲まれた識別子も大文字と小文字が区別されます。

詳細については、 識別子の要件 をご参照ください。

FROM SERVICE service_name

サービスの名前を指定します。

VOLUME "volume_name"

サービスに関連付けられたボリュームの名前を指定します。スナップショットは、ブロックストレージボリュームに対してのみ実行できます(ローカルボリューム、メモリボリューム、ステージボリュームに対しては実行できません)。

ボリューム名は大文字と小文字を区別します。したがって、サービス仕様の対応する名前と一致するように、常に二重引用符を使用する必要があります。

INSTANCE instance_id

サービスインスタンスのインデックス。サービスインスタンスインデックスは0から始まり、範囲は [0, ...,  MAX_INSTANCES - 1] です。SYSTEM$GET_SERVICE_STATUS --- 非推奨 関数を呼び出して関連情報を取得できます。

オプションのパラメーター

COMMENT = 'string_literal'

サービスのコメントを指定します。

デフォルト: 値なし

TAG ( tag_name = 'tag_value' [ , tag_name = 'tag_value' , ... ] )

タグ の名前とタグ文字列の値を指定します。

タグ値は常に文字列であり、タグ値の最大文字数は256です。

ステートメントでのタグの指定に関する情報については、 オブジェクトのタグクォータ をご参照ください。

アクセス制御の要件

この操作の実行に使用される ロール には、少なくとも次の 権限 が必要です。

権限

オブジェクト

注意

CREATE SNAPSHOT

スキーマ

OPERATE

サービス

スキーマ内のオブジェクトに対して操作を実行するには、親データベースとスキーマに対する USAGE 権限が必要です。スキーマに対する 任意の権限を付与されたロールは、そのロールがスキーマを解決できることに注意してください。たとえば、スキーマに対するCREATE権限を付与されたロールは、そのスキーマにオブジェクトを作成できますが、そのスキーマに対するUSAGE*も*付与されている必要はありません。

指定された権限のセットを使用してカスタムロールを作成する手順については、 カスタムロールの作成 をご参照ください。

セキュリティ保護可能なオブジェクト に対して SQL アクションを実行するためのロールと権限付与に関する一般的な情報については、 アクセス制御の概要 をご参照ください。

使用上の注意

  • メタデータについて:

    注意

    Snowflakeサービスを使用する場合、お客様は、個人データ(ユーザーオブジェクト向け以外)、機密データ、輸出管理データ、またはその他の規制されたデータがメタデータとして入力されていないことを確認する必要があります。詳細については、 Snowflakeのメタデータフィールド をご参照ください。

  • OR REPLACEIF NOT EXISTS 句は互いに排他的です。両方を同じステートメントで使うことはできません。

  • CREATE OR REPLACE <オブジェクト> ステートメントはアトミックです。つまり、オブジェクトが置き換えられると、単一のトランザクションで、古いオブジェクトが削除されて新しいオブジェクトが作成されます。

  • Snowflakeは、ジョブサービスの実行が完了してから約10分後にジョブサービスを削除します。ジョブサービスが使用するブロックストレージボリュームのコンテンツを保持するには、Snowflakeがジョブを削除する前にスナップショットを作成する必要があります。たとえば、ストアドプロシージャを使用して最初にジョブサービスを実行し、その直後にスナップショットを作成することができます。

  • スキーマに同じ名前のスナップショットを含めることはできません。スナップショットを作成する際、同じ名前のスナップショットがスキーマにすでに存在する場合はエラーが返され、スナップショットは作成されません。ただし、オプションの OR REPLACE キーワードがコマンドに含まれている場合は例外で、Snowflakeは既存のスナップショットを削除し、新しいスナップショットを作成します。

    重要

    DROP SNAPSHOT または CREATE OR REPLACE SNAPSHOT コマンドを使用して削除されたスナップショットは復元できません。重要なデータを含むボリュームについては、スナップショット名にタイムスタンプを使用するなどして、一意の名前で新しいスナップショットを作成します。

「data」という名前のボリュームを持つ2つのインスタンス(コンテナーの数は関係ありません)でサービスを作成する場合は、次の SQL を使用して、最初のインスタンスに関連付けられたボリュームのスナップショットを作成します。

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

2番目のサービスインスタンスに関連するボリュームのスナップショットを作成するには、前述の SQL で INSTANCE 1 を指定します。