アカウント複製およびフェールオーバーの概要¶
この機能により、 ソース アカウントから同じ組織内にある1つ以上の ターゲット アカウントにオブジェクトを複製できるようになります。各ターゲットアカウントで複製されたオブジェクトは、 セカンダリ オブジェクトと呼ばれ、ソースアカウントの プライマリ オブジェクトのレプリカです。複製は、 リージョン および クラウドプラットフォーム 全般でサポートされています。
このトピックの内容:
複製およびフェールオーバー/フェールバックのリージョンサポート¶
Amazon Web Services、Google Cloud Platform、およびMicrosoft AzureにわたるSnowflakeの全リージョンで、アカウント複製をサポートしています。
お客様は、 リージョングループ 内のすべてのリージョンで複製できます。異なるリージョングループ内のリージョン間(つまり、Snowflake商用リージョンからSnowflake政府またはVirtual Private Snowflakeリージョン)で複製するには、 Snowflakeサポート にお問い合わせください。
複製グループおよびフェールオーバーグループ¶
複製グループ は、1つ以上のターゲットアカウントにユニットとして複製される、ソースアカウント内のオブジェクトの定義済みコレクションです。複製グループは、複製されたオブジェクトへの読み取り専用アクセスを提供します。
フェールオーバーグループ は、フェールオーバーも可能な複製グループです。ターゲットアカウントのセカンダリフェールオーバーグループは、複製されたオブジェクトに読み取り専用アクセスを提供します。セカンダリフェールオーバーグループがプライマリフェールオーバーグループに昇格すると、読み取り/書き込みアクセスが利用可能になります。フェールオーバーグループで許可されているアカウントのリストで指定されているターゲットアカウントは、プライマリフェールオーバーグループとして機能するように昇格できます。
複製グループとフェールオーバーグループは、ターゲットアカウント上のオブジェクトに対して特定時点における一貫性を提供します。複製またはフェールオーバーグループに含めることができるオブジェクトは、以下の 複製されたオブジェクト (このトピック内)にリストされています。
一部のオブジェクト複製機能は、Business Critical Edition(またはそれ以上)でのみ使用可能であることに注意してください。次のテーブルに、各Snowflakeエディションにおけるアカウントとデータベースオブジェクトの複製機能の可用性をリストします。
機能 |
標準 |
Enterprise |
Business Critical |
VPS |
---|---|---|---|---|
データベース複製 |
✔ |
✔ |
✔ |
✔ |
共有複製 |
✔ |
✔ |
✔ |
✔ |
複製グループ |
✔ |
✔ |
✔ |
✔ |
アカウントオブジェクト(データベースおよび共有以外)複製 |
✔ |
✔ |
||
フェールオーバーグループ |
✔ |
✔ |
複製されたオブジェクト¶
この機能は、以下にリストされているオブジェクトの複製をサポートします。データベース複製および共有複製は、すべてのエディションで利用できます。その他すべてのオブジェクトの複製は、Business Critical Edition(またはそれ以上)でのみ使用できます。機能の可用性の詳細については、この テーブル をご参照ください。
オブジェクト |
タイプまたは機能 |
複製 |
メモ |
---|---|---|---|
データベース |
✔ |
||
統合 |
セキュリティ、 API |
✔ |
ストレージ統合は、将来のリリースで計画されています。 |
ネットワークポリシー |
✔ |
||
パラメーター(アカウントレベル) |
✔ |
||
リソースモニター |
✔ |
||
ロール |
✔ |
ロールに付与された権限、およびロールに付与されたロール(つまり、ロールの階層)が含まれます。 ユーザーとロールが複製されると、ユーザーに付与されたロールも複製されます。 データベースのロール の複製は、この機能の将来のマイルストーンとして計画されています。 |
|
共有 |
✔ |
||
ユーザー |
✔ |
||
ウェアハウス |
✔ |
データベースの複製¶
この機能は、データベースの複製をサポートします。スナップショットには、オブジェクトとデータへの変更が含まれます。 roles
が(同じまたは異なる複製またはフェールオーバーグループで)複製される場合、データベースの更新では、アカウントにあるセカンダリデータベースとデータベース内のオブジェクト(スキーマ、テーブル、ビューなど)に対する権限の付与も同期されます。詳細については、 データベースオブジェクトの付与 をご参照ください。
複製されたデータベースオブジェクト¶
プライマリデータベースが複製されると、そのデータベースオブジェクトとデータのスナップショットがセカンダリデータベースに転送されます。ただし、一部のデータベースオブジェクトは複製されません。次の表には、セカンダリデータベースに複製されるデータベースオブジェクトが示されています。
これらのオブジェクトに関する特定の使用情報については、 データベースの複製の考慮事項 をご参照ください。
オブジェクト |
タイプまたは機能 |
複製 |
メモ |
---|---|---|---|
テーブル |
永続テーブル |
✔ |
|
一時テーブル |
✔ |
||
仮テーブル |
|||
クラスタ化されたテーブルの自動クラスタリング |
✔ |
||
外部テーブル |
プライマリデータベースに外部テーブルが存在する場合、セカンダリデータベースの作成または更新はブロックされます。 . データベース複製の将来のバージョンを計画しています。 |
||
テーブルの制約 |
✔ |
データベースの外部キーが別のデータベースのプライマリ/ユニークキーを参照する場合を除きます。 . |
|
シーケンス |
✔ |
||
ビュー |
ビュー |
✔ |
ビューが別のデータベースのオブジェクト(例: テーブル列、他のビュー、 UDFs、またはステージ)を参照する場合は、 . 両方のデータベースを複製する必要があります。 |
マテリアライズドビュー |
✔ |
||
セキュアビュー |
✔ |
||
ファイル形式 |
✔ |
||
ステージ |
ステージ |
データベース複製の将来のバージョンを計画しています。 |
|
一時的なステージ |
|||
パイプ |
データベース複製の将来のバージョンを計画しています。 |
||
ストアドプロシージャ |
✔ |
詳細については、 ストアドプロシージャとユーザー定義関数の複製(UDFs) をご参照ください。 |
|
ストリーム |
✔ |
詳細については、 複製およびストリーム をご参照ください。 |
|
タスク |
✔ |
詳細については、 複製およびタスク をご参照ください。 |
|
UDFs |
✔ |
詳細については、 ストアドプロシージャとユーザー定義関数の複製(UDFs) をご参照ください。 |
|
ポリシー |
列レベルのセキュリティ(マスキング) |
✔ |
マスキング、行アクセス、およびタグベースのマスキングポリシーについては、 ポリシー複製に関する考慮事項 をご参照ください。 |
行アクセスポリシー |
✔ |
||
タグベースのマスキングポリシー |
✔ |
||
セッションポリシー |
✔ |
セッションポリシーとパスワードポリシーについては、 複製およびセキュリティポリシー をご参照ください。 |
|
パスワードポリシー |
✔ |
||
タグ |
オブジェクトのタグ付け |
✔ |
タグ複製の動作は、ポリシー複製と同じです。 |
統合複製¶
この機能は、 SAML2、 SCIM、Snowflake OAuth、外部 OAuth、および API 統合のセキュリティ統合の複製をサポートします。ストレージ統合は現在サポートされていませんが、将来のリリースで計画されています。
セキュリティ統合の詳細については、 複数のアカウントにわたるセキュリティ統合およびネットワークポリシーの複製 をご参照ください。
API 統合複製では、統合がターゲットアカウントに複製された後で追加の設定が必要です。複製された関数には、リモートサービスへのアクセスを許可する必要があります。詳細については、 API 統合のリモートサービスを更新する をご参照ください。
パラメーターの複製¶
この機能は、アカウントレベルのパラメーターとオブジェクトパラメーターの複製をサポートします。オブジェクトパラメーターは、オブジェクトが複製グループに含まれている場合に複製されます。たとえば、 WAREHOUSES
が複製される場合は、ウェアハウス固有のパラメーター(例: STATEMENT_TIMEOUT_IN_SECONDS)が複製されます。完全なリストについては、 オブジェクトパラメーター をご参照ください。
アカウントレベルのパラメーター複製には、すべての アカウントパラメーター および アカウントに設定されたパラメーター が含まれます。複製グループのオブジェクトタイプのリストに ACCOUNT PARAMETERS
が含まれている場合は、アカウントレベルのパラメーター(例: DATA_RETENTION_TIME_IN_DAYS)が複製されます。
リソースモニター複製¶
この機能は、リソースモニターと、リソースモニターで付与された権限をロールに複製することをサポートします。セカンダリリソースモニターは、プライマリと同じクォータリセットスケジュールに従います。たとえば、プライマリリソースモニターのクォータが月の1日にリセットされ、セカンダリがその月の15日に最初に複製された場合、そのクォータはプライマリとともに翌月の1日にリセットされます。
メール通知の設定は複製 されません。アカウント管理者は、各ターゲットアカウントにメール通知を設定する必要があります。 アカウント管理者の通知受信の有効化 をご参照ください。通知の設定の複製は、今後のリリースで追加される予定です。
ロール複製¶
この機能は、ロール階層を含む、ロールの複製をサポートします。アクセス権限を複製するには、ロールオブジェクトを複製する必要があります。複製されたアクセス権限は、以下の ロールおよび付与の複製 にリストされています。
注釈
ORGADMIN ロールを含む、すべてのロールが複製されます。
ユーザー複製¶
この機能は、ユーザーとそのプロパティをターゲットアカウントに複製すること、および次のユーザー認証方法をサポートします。
認証方法 |
ターゲットアカウントで動作 |
メモ |
---|---|---|
パスワード |
✔ |
|
MFA のパスワード(多要素認証) |
✔ |
ソースアカウントの MFA に登録されているユーザーは、各ターゲットアカウントにログインする際、 MFA に個別に登録する必要があります。 |
✔ |
ソースアカウントの MFA に登録されているユーザーは、各ターゲットアカウントにログインする際、 MFA に個別に登録する必要があります。 |
|
キーペア |
✔ |
|
✔ |
フェデレーション SSO (つまり、 SAML2)セキュリティ統合の複製の詳細については、 複数のアカウントにわたるセキュリティ統合およびネットワークポリシーの複製 をご参照ください。 |
|
✔ |
OAuth セキュリティ統合の複製の詳細については、 複数のアカウントにわたるセキュリティ統合およびネットワークポリシーの複製 をご参照ください。 |
|
✔ |
OAuth セキュリティ統合の複製の詳細については、 複数のアカウントにわたるセキュリティ統合およびネットワークポリシーの複製 をご参照ください。 |
|
✔ |
SCIM セキュリティ統合の複製の詳細については、 複数のアカウントにわたるセキュリティ統合およびネットワークポリシーの複製 をご参照ください。 |
注釈
USERS
および ROLES
オブジェクトがターゲットアカウントに複製される場合、これらのオブジェクト型はターゲットアカウントで読み取り専用であり、変更できません。ユーザーとロールは、ソースアカウント内で作成してから、各ターゲットアカウントに複製する必要があります。 複製および読み取り専用のセカンダリオブジェクト (このトピック内)をご参照ください。
ウェアハウス複製¶
この機能は、ウェアハウスとウェアハウスに付与された権限をロールに複製することをサポートします(roles
が複製される場合)。プライマリウェアハウスの状態は複製されません。ウェアハウスは一時停止状態で各ターゲットアカウントに複製され、ターゲットアカウントで再開できます。
ロールおよび付与の複製¶
オブジェクトの付与をロールに複製するには、ロールをソースアカウントからターゲットアカウントに複製する必要があります。複製またはフェールオーバーグループでロールを複製するには、 object_types
リストに roles
を含める必要があります。ロールは、権限が付与されているデータオブジェクトとは別の複製グループまたはフェールオーバーグループに含めることができます。
roles
が複製されると、次の場合に 限り、オブジェクトに対する付与はターゲットアカウントに複製されます。
権限が、オブジェクトの所有者によって、またはオブジェクトの所有者により WITH GRANT OPTION パラメーターを使用して権限を付与されたロールで間接的に付与された。
権限付与の被付与者と付与者の両方のロールが、ターゲットアカウントにある。
オブジェクトが複製されます(つまり、オブジェクト型が
object_types
リストに含まれます)。
上記以外の場合は、オブジェクトに対する付与は複製されません。
注釈
ターゲットアカウントのアクティブなパイプに対する OWNERSHIP 権限を持つロールがドロップされた場合は、更新操作に失敗します。
複製グループおよびフェールオーバーグループ(このトピック内の 複製権限 を参照)の権限は、複製 されません。REPLICATE または FAILOVER 権限が複製グループまたはフェールオーバーグループに付与されている場合、これらの権限はソース および ターゲットアカウントの両方で付与する必要があります。
データベースオブジェクトの付与¶
roles
と databases
がターゲットアカウント(同じ、または異なる複製、またはフェールオーバーグループ内)に複製される場合は、セカンダリデータベースを更新すると、データベースとデータベース内のオブジェクト(スキーマ、テーブル、ビューなど)の権限付与が、ターゲットアカウントの既存のロール(つまり、ターゲットアカウントに複製されたロール)と同期されます。データベース複製でサポートされているオブジェクトに対する権限付与のみが同期されることに注意してください。サポートされるオブジェクトのリストについては、 複製されたデータベースオブジェクト をご参照ください。
次のデータベースオブジェクトの複製は、現在サポートされていません。その結果、これらのオブジェクトに対する権限の付与も複製されません。
ステージ
パイプ
外部テーブル
オブジェクトに対する将来の付与¶
ロールがターゲットアカウントに複製される場合は、データベースまたはスキーマレベルで付与される 将来の付与 がターゲットアカウントに複製されます。これには、複製でサポートされていないオブジェクトに対する将来の付与も含まれます。たとえば、ステージ複製はまだサポートされていませんが、ステージに対する将来の付与は複製されます。ターゲットアカウントでステージを作成すると、将来のステージで付与される権限が意図したとおりに実現されます。
オブジェクトの作成および所有権¶
ソースアカウントからの更新中にターゲットアカウントに新しいオブジェクトが作成され、ロールがターゲットアカウントに複製されない場合は、新しいオブジェクトの OWNERSHIP 権限が ACCOUNTADMIN ロールに付与されます。
ロールがターゲットアカウントに複製されると、 OWNERSHIP 権限は、ロールが次に複製されるときに、ソースアカウントの OWNERSHIP 権限を持つロールと同じターゲットアカウントのロールに付与されます。オブジェクトとロールが同じ複製(またはフェールオーバー)グループにあると、ターゲットアカウントで新しいオブジェクトが作成されると同時にロールが複製される場合があります。
ターゲットアカウントのオブジェクトを更新するユーザー¶
ALTER FAILOVER GROUP ... REFRESH コマンドを実行して、ソースアカウントからターゲットアカウントのオブジェクトを更新するユーザーは、フェールオーバーグループに対して REPLICATE 権限を持つロールを使用する必要があります。Snowflakeは、次のシナリオで失敗することにより、ターゲットアカウントでこのユーザーを保護します。
ユーザーがソースアカウントに存在しない場合は、更新操作に失敗します。
ユーザーがソースアカウントに存在するが、 REPLICATE 権限を持つロールがユーザーに付与されていない場合は、更新操作に失敗します。
複製スケジュール¶
ベストプラクティスとして、Snowflakeは、 REPLICATION_SCHEDULE パラメーターを使用して自動更新をスケジュールすることをお勧めします。スケジュールは、 CREATE <オブジェクト> を使用して、新しい複製またはフェールオーバーグループを作成するときか、後で(ALTER <オブジェクト> を使用して)定義できます。
セカンダリ複製またはフェールオーバーグループが作成されると、最初の更新が自動的に実行されます。次回の更新は、前回の更新が開始された日時とスケジュール間隔、またはcron式に基づいた次の有効時間に基づいてスケジュールされます。たとえば、更新スケジュール間隔が10分で、前回の更新操作(スケジュールされた更新または手動でトリガーされた更新)が12:01に開始される場合、次の更新は12:11にスケジュールされます。
Snowflakeは、一度に1回の更新のみが実行されるようにします。次回の更新がスケジュールされているときに更新がまだ実行中の場合、現在実行中の更新が完了後に次回の更新が遅れて開始されます。たとえば、更新が毎時正時15分後に実行されるようにスケジュールされており、前の更新が12:16に完了する場合、次の更新は、前に実行中の更新完了後に実行がスケジュールされます。
スケジュールされた複製を一時停止および再開する¶
更新の実行中は、セカンダリフェールオーバーグループをプライマリグループに昇格させることはできません。正常にフェールオーバーするには、ターゲットアカウントでスケジュールされた複製を一時停止します。フェールオーバーの完了後に、スケジュールされた複製を再開します。構文については、 ALTER FAILOVER GROUP をご参照ください。
注釈
スケジュールされた複製を一時停止しても、現在進行中の更新操作は一時停止されません。現在の更新が完了した後に追加の更新がスケジュールされないように、スケジュールを一時停止します。
下位エディションのアカウントへの複製¶
次のいずれかの条件に該当する場合、Snowflakeはステートメントの実行時にエラーメッセージを表示します。
データベースのみおよび/または共有オブジェクトがあるプライマリ複製グループはBusiness Critical(またはそれ以上)のアカウントにあるが、複製を承認された1つ以上のアカウントは下位エディションにある。Business Critical Editionは、非常に機密性の高いデータを有するSnowflakeアカウントを対象としています。
任意の オブジェクトタイプ があるプライマリ複製またはフェールオーバーグループがBusiness Critical(またはそれ以上)のアカウントにあり、 HIPAA および HITRUST CSF 規制に従ってアカウントに PHI データを格納するための署名済みビジネスアソシエイト契約が整っている。しかし、Business Critical(またはそれ以上)のアカウントであるかどうかにかかわりなく、複製が有効化された1つ以上のアカウントに対してはそのような契約がない。
この動作は、Business Critical(またはそれ以上)のアカウントの管理者が機密データを下位エディションのアカウントに誤って複製することを防ぐために実装されています。
アカウント管理者(ACCOUNTADMIN ロールを持つユーザー)または CREATE REPLICATION GROUP/CREATE FAILOVER GROUP または OWNERSHIP 権限のあるロールを持つユーザーは、 CREATE <オブジェクト> または ALTER <オブジェクト> ステートメントの実行時に IGNORE EDITION CHECK 句を含めることで、このデフォルトの動作を上書きできます。IGNORE EDITION CHECK が設定されている場合、プライマリ複製またフェールオーバーグループは、これらの特定のシナリオでSnowflakeの下位エディション上の指定されたアカウントに複製できます。
注釈
フェールオーバーグループは、Business Critical Edition(またはそれ以上)のアカウントでのみ作成できます。したがって、フェールオーバーグループは、Business Critical Edition(またはそれ以上)のアカウントに のみ 複製できます。