複数のアカウントにわたるデータベースの複製の概要

この機能により、(同じ組織内の)Snowflakeアカウント間でデータベースを複製し、データベースオブジェクトと保存データの同期を維持できます。データベース複製は、 地域 および クラウドプラットフォーム でサポートされています。

このトピックの内容:

プライマリデータベースとは何ですか?

複製は、既存の永続データベースまたは一時データベースに対して有効にできます。複製を有効にすると、データベースが プライマリデータベース として指定されます。アカウント内の任意の数のデータベースをプライマリデータベースとして指定できます。同様に、プライマリデータベースは組織内の任意の数のアカウントに複製できます。これには、各ターゲットアカウントで指定されたプライマリデータベースのレプリカとして セカンダリデータベース を作成することが含まれます。これらのアカウントは通常、同じまたは異なるクラウドプラットフォーム上の他の地域にあります。

すべての DML/DDL 操作はプライマリデータベースで実行されます。各読み取り専用のセカンダリデータベースは、プライマリデータベースのスナップショットで定期的に更新し、すべてのデータとデータベースオブジェクト(つまり、スキーマ、テーブル、ビュー)の DDL 操作を複製できます。

複製の概要

このセクションでは、複製に使用できるオブジェクトと設定の概要を説明します。

複製されたデータベースオブジェクト

プライマリデータベースが複製されると、そのデータベースオブジェクトとデータのスナップショットがセカンダリデータベースに転送されます。ただし、一部のデータベースオブジェクトは複製されません。次の表には、セカンダリデータベースに複製されるデータベースオブジェクトが示されています。

これらのオブジェクトに関する特定の使用情報については、 データベースの複製の考慮事項 をご参照ください。

オブジェクト

タイプまたは機能

複製

メモ

テーブル

永続テーブル

一時テーブル

仮テーブル

クラスタ化されたテーブルの自動クラスタリング

外部テーブル

プライマリデータベースに外部テーブルが存在する場合、セカンダリデータベースの作成または更新はブロックされます。 . データベース複製の将来のバージョンを計画しています。

テーブルの制約

データベースの外部キーが別のデータベースのプライマリ/ユニークキーを参照する場合を除きます。 .

シーケンス

ビュー

ビュー

ビューが別のデータベースのオブジェクト(例:テーブル列、他のビュー、 UDFs、またはステージ)を参照する場合、 . 両方のデータベースを複製する必要があります。

マテリアライズドビュー

ファイル形式

ステージ

ステージ

データベース複製の将来のバージョンを計画しています。

一時的なステージ

パイプ

データベース複製の将来のバージョンを計画しています。

ストアドプロシージャ

ストリーム

データベース複製の将来のバージョンを計画しています。

タスク

データベース複製の将来のバージョンを計画しています。

ユーザー定義関数(UDF)

マスキングポリシー

次のいずれかのユースケースが当てはまる場合、複製操作はブロックされます。 . プライマリデータベースがEnterprise(またはそれ以上)アカウントにあり、マスキングポリシーが含まれているが、複製が承認された1つ以上のアカウントが下位エディションにある場合。 . プライマリデータベースに含まれるマスキングポリシーが、別のデータベースのテーブルまたはビューの列に適用されるか、その逆である場合。

アカウント内の他のオブジェクト

現在、複製は データベースのみ でサポートされています。アカウント内の他のタイプのオブジェクトは 複製できません。このリストには次が含まれます。

  • ユーザー

  • ロール

  • ウェアハウス

  • リソースモニター

  • 共有

アクセス制御

データベースオブジェクトに付与された権限は、セカンダリデータベースに複製されません。

パラメーター

アカウントパラメーターは複製されません。

次の例外を除き、オブジェクトパラメーターは複製されません。

パラメーター

オブジェクト

DATA_RETENTION_TIME_IN_DAYS

スキーマ、テーブル

データベースの複製と暗号化

データベースが別のアカウントに複製されるとき(最初の複製中、およびその後、セカンダリデータベースが更新されるとき)、Snowflakeはソースアカウントからターゲットアカウントへの転送中にデータベースファイル(データベースオブジェクトメタデータとデータセット)を暗号化します。Snowflakeは、複製ジョブごとにランダムで一意のキーを使用して、データベース複製操作用のファイルを暗号化します。

さらに、複製アカウント(ソースアカウントとターゲットアカウント)で Tri-Secret Secure が有効になっている場合、ファイルはアカウントマスターキー(AMK)で保護されたターゲットアカウント用の暗号化キーペアの公開キーを使用して暗号化されます。Tri-Secret Secureが提供する追加レベルのセキュリティは AMK を保護するため、この保護は転送中のデータファイルにも適用されます。

Tri-Secret保証は、転送中のデータファイルにも有効であることに注意してください。(Snowflakeアカウントをホストするクラウドプロバイダーのキー管理サービス内の)顧客管理キーへのアクセスを取り消すと、Snowflakeが送信中のデータファイルを復号化できなくなります。

Snowflakeのデータ暗号化の詳細については、 データ暗号化 をご参照ください。

下位エディションのアカウントへのデータベース複製

次のいずれかの条件に該当する場合、ローカルデータベースをプライマリデータベースとして機能するように昇格すると、Snowflakeはエラーメッセージを表示します。

  • プライマリデータベースは、Business Critical(またはそれ以上)のアカウントにありますが、下位エディションには、複製が承認された1つ以上のアカウントがあります。Business Critical Editionは、非常に機密性の高いデータを有するSnowflakeアカウントを対象としています。

  • プライマリデータベースは、Business Critical(またはそれ以上)のアカウントにあり、 HIPAA 規制に従ってアカウントに PHI データを保存するために署名されたビジネスアソシエイト契約が整っています。しかし、Business Critical(またはそれ以上)のアカウントであるかどうかにかかわりなく、複製が承認された1つ以上のアカウントに対してはそのような契約がありません。

この動作は、Business Critical(またはそれ以上)のアカウントの管理者が機密データを下位エディションのアカウントに誤って複製することを防ぐために実装されています。

アカウント管理者は、 ALTER DATABASE ... ENABLE REPLICATION TO ACCOUNTS ステートメントを実行するときに IGNORE EDITION CHECK 句を含めることにより、このデフォルトの動作を上書きできます。IGNORE EDITION CHECK が設定されている場合、プライマリデータベースは任意のSnowflakeエディションの指定されたアカウントに複製できます。

複製の現在の制限

  • プライマリデータベースに外部テーブルが存在する場合、セカンダリデータベースの更新はブロックされます。

  • 共有から作成されたデータベースは複製できません。