CREATE BACKUP SET¶
テーブル、スキーマ、またはデータベースに設定する バックアップ を作成します。バックアップセットが存在すると、ALTER BACKUP SET コマンドを実行していつでもバックアップに新しいバックアップ(バックアップ)を追加できます。バックアップポリシー でスケジュールを定義し、バックアップセットにそのバックアップポリシーを関連付けた場合、Snowflakeは、バックアップセットにバックアップも自動的に追加します。
各バックアップセットは、特定のテーブル、特定のスキーマ内のオブジェクト、または特定のデータベース内のオブジェクトのバックアップセットを表します。そうすることで、非常に細かい、または包括的なバックアップにすることができます。また、各テーブル、スキーマ、またはデータベースのバックアップには、それぞれ独立したスケジュールを設定できます。
スキーマバックアップとデータベースバックアップに含まれるオブジェクトの種類については、 バックアップオブジェクト をご参照ください。
- こちらもご参照ください。
ALTER BACKUP SET、 DROP BACKUP SET、 SHOW BACKUP SETS、 CREATE BACKUP POLICY
構文¶
CREATE [ OR REPLACE ] BACKUP SET [ IF NOT EXISTS ] <name>
FOR [ DYNAMIC ] TABLE <table_name>
[ [ WITH ] TAG ( <tag_name> = '<tag_value>' [ , <tag_name> = '<tag_value>' , ... ] ) ]
[ WITH BACKUP POLICY <policy_name> ]
[ COMMENT = <string> ]
CREATE [ OR REPLACE ] BACKUP SET [ IF NOT EXISTS ] <name>
FOR SCHEMA <schema_name>
[ [ WITH ] TAG ( <tag_name> = '<tag_value>' [ , <tag_name> = '<tag_value>' , ... ] ) ]
[ WITH BACKUP POLICY <policy_name> ]
[ COMMENT = <string> ]
CREATE [ OR REPLACE ] BACKUP SET [ IF NOT EXISTS ] <name>
FOR DATABASE <database_name>
[ [ WITH ] TAG ( <tag_name> = '<tag_value>' [ , <tag_name> = '<tag_value>' , ... ] ) ]
[ WITH BACKUP POLICY <policy_name> ]
[ COMMENT = <string> ]
必須パラメーター¶
nameバックアップセットの識別子。アカウントに対して一意である必要があります。
また、識別子はアルファベット文字で始まる必要があり、識別子文字列全体が二重引用符で囲まれていない限り、スペースや特殊文字を含めることはできません(例:
"My object")。二重引用符で囲まれた識別子も大文字と小文字が区別されます。詳細については、 識別子の要件 をご参照ください。
FOR [ DYNAMIC ] TABLE table_nameテーブルまたは動的テーブルの名前を指定します。その場合、バックアップセットは単一テーブルのバックアップを表します。
FOR SCHEMA schema_nameスキーマの名前を指定します。その場合、バックアップセットは特定のスキーマにあるすべてのテーブルとその他のオブジェクトのバックアップを表します。
FOR DATABASE database_nameデータベースの名前を指定します。その場合、バックアップセットは特定のデータベース内のすべてのテーブル、スキーマ、およびその他のオブジェクトのバックアップを表します。
オプションのパラメーター¶
OR REPLACEこの名前のバックアップセットが既に存在する場合は、削除して新しいものを作成します。保持ロック、法的保持、および有効期限に関するバックアップポリシールールのためにバックアップセットを削除できない場合、コマンドは失敗します。この句は
IF NOT EXISTSと相互に排他的です。IF NOT EXISTS同じ名前のバックアップセットがない場合にのみ、バックアップセットを作成します。バックアップセットが既に存在する場合、コマンドは影響がなくても成功メッセージを返します。この句は
OR REPLACEと相互に排他的です。
TAG ( tag_name = 'tag_value' [ , tag_name = 'tag_value' , ... ] )タグ の名前とタグ文字列の値を指定します。
タグ値は常に文字列であり、タグ値の最大文字数は256です。
ステートメントでのタグの指定に関する情報については、 Tag quotas をご参照ください。
WITH BACKUP POLICY policy_nameセットのバックアップポリシーの名前を指定します。バックアップポリシーは、バックアップのスケジュール、各バックアップの保持期間、保持期間の終了前にバックアップが削除されるのを防ぐかどうかなど、バックアップセットのプロパティを定義します。
CREATE BACKUP SET コマンドからこのパラメーターを省略した場合、後から ALTER BACKUP SET コマンドを使用してポリシーを適用できます。
重要
保持ロック付きのバックアップポリシーをバックアップセットに適用すると、 元に戻せません 。規制コンプライアンスに必要な強力な保証により、バックアップセットに保持ロックを設定すると、ロックを取り消すことはできません。Snowflakeサポートもそのような保持ロックを取り消すことはできません。削除できないバックアップセットとそれを含むスキーマとデータベースの予期しないストレージ料金を回避するために、長い有効期間のバックアップセットに保持ロックを設定する前には慎重に計画してください。
Snowflake組織が削除された場合、その組織はSnowflakeカスタマーではなくなります。この場合、Snowflakeは保持ロック付きのバックアップを含むすべてのバックアップを削除します。Snowflake組織を削除するには、Snowflakeサポートの関与が必要です。これは、管理者が誤って実行できるものではありません。
COMMENT = 'string_literal'バックアップセットのコメントを指定します。
デフォルト: 値なし
アクセス制御の要件¶
この操作の実行に使用される ロール には、少なくとも次の 権限 が必要です。
権限 |
メモ |
|---|---|
CREATE BACKUP SET |
バックアップセットの作成に使用するロールには、バックアップセットが作成されるスキーマに対してこの権限が付与されている必要があります。バックアップセットを実際に作成するには、バックアップセットの対象となるオブジェクトに対する適切な権限も必要です。テーブルバックアップには SELECT、スキーマバックアップまたはデータベースバックアップには USAGE が必要です。 |
SELECT |
テーブルのバックアップセットの作成に使用されるロールには、テーブルに対する SELECT 権限が必要です。 |
USAGE |
スキーマまたはデータベースのバックアップセットの作成に使用するロールには、そのスキーマまたはデータベースに対する USAGE 権限が必要です。 |
APPLY |
バックアップセットにバックアップポリシーを適用するために使用されるロールには、バックアップポリシーに対するこの権限が必要です。 |
APPLY BACKUP RETENTION LOCK |
バックアップセットに対して保持ロックを持つバックアップポリシーを適用するために使用するロールには、アカウントに対するこの権限が必要です。 |
これらの権限は、セカンダリロールではなく、現在アクティブなプライマリロールに対して必要です。
指定された権限のセットを使用してカスタムロールを作成する手順については、 カスタムロールの作成 をご参照ください。
セキュリティ保護可能なオブジェクト に対して SQL アクションを実行するためのロールと権限付与に関する一般的な情報については、 アクセス制御の概要 をご参照ください。
使用上の注意¶
メタデータについて:
注意
Snowflakeサービスを使用する場合、お客様は、個人データ(ユーザーオブジェクト向け以外)、機密データ、輸出管理データ、またはその他の規制されたデータがメタデータとして入力されていないことを確認する必要があります。詳細については、 Snowflakeのメタデータフィールド をご参照ください。
重要
バックアップポリシーに保持ロックが適用されており、バックアップセットに有効期限が切れていないバックアップがある場合は、バックアップセットを削除できません。その場合は、セット内のすべてのバックアップの有効期限が切れるのを待つ必要があります。この制限は、 ACCOUNTADMINなどの権限ロールにも適用され、Snowflakeをサポートします。そのため、バックアップポリシーで保持ロックと長期の有効期限を指定する場合は注意してください。
例¶
テーブル t1 に対して t1_backups という名前のバックアップセットを作成します。
CREATE BACKUP SET t1_backups
FOR TABLE t1;
テーブル t1 に対してバックアップポリシーを使用するバックアップセット t1_backups を作成します。
CREATE BACKUP SET t1_backups
FOR TABLE t1
WITH BACKUP POLICY hourly_backup_policy;
スキーマ s1 に対してバックアップポリシーを使用するバックアップセット s1_backups を作成します。
CREATE BACKUP SET s1_backups
FOR SCHEMA s1
WITH BACKUP POLICY hourly_backup_policy;
データベース d1 に対してバックアップポリシーを使用するバックアップセット d1_backups を作成します。
CREATE BACKUP SET d1_backups
FOR DATABASE d1
WITH BACKUP POLICY hourly_backup_policy;