リストの自動複製¶
プロバイダーであれば、リストにCross-Cloud Auto-Fulfillment (自動フルフィルメント)を使用することで、手動でデータを複製することなく、データ製品を自動的に他のSnowflakeリージョンに複製することができます。
リストで自動複製が有効になっている場合、Snowflakeはデータ製品を必要に応じてコンシューマーリージョンに自動複製します。データ製品とは、リストに添付されるシェアやアプリケーションパッケージのことです。
自動複製を使用すると、データ製品を手動で複製したり、リストのリクエストを承認したりする必要がなくなり、コンシューマーはリストにすばやくアクセスできるようになります。
注釈
Snowflake Native App with Snowpark Container Services のクロスクラウド自動複製の使用は、Amazon Web Services(AWS)とMicrosoft Azureでのみサポートされています。詳細については、 Snowflake Native Apps Frameworkの制限事項の理解 をご参照ください。
自動フルフィルメントについて¶
注釈
Auto-fulfillment isn't available on trial accounts. Auto-fulfillment is configured on listings, and to offer listings, you must use a full account.
自動フルフィルメントにより、リストで選択した可用性とアクセスオプションに基づいて、サポートされているSnowflakeリージョンでデータ製品を提供することができます。
リストがドラフトまたは公開状態の場合は、自動複製を構成して有効にすることができます。リストの自動複製が有効になっている場合、Snowflakeは必要に応じて製品をコンシューマーリージョンに自動で複製します。
データ製品を他のリージョンで使用できるようにする方法は、データ製品とコンシューマーがリストにアクセスする方法に応じて異なります。
データ製品がアプリケーションパッケージの場合は、自動複製を使用してデータ製品を他のリージョンで使用できるようにします。
データ製品が共有の場合は、ほとんどのケースで自動複製を使用します。
無料または限定トライアルリストでは、 Snowflake Marketplace クロスクラウド自動フルフィルメントを使用するか、 データを手動で複製 できます。
有料リストの場合は、自動複製を使用します。
特定のコンシューマーアカウントと共有されるすべてのリストの場合、 Snowsight はターゲットアカウントが別のリージョンにあるかどうかを自動的に検出し、自動複製を有効にします。プライベートリストを他のリージョンに手動で複製することはできません。
データ製品を他のリージョンで利用できるようにする場合は、追加コストが発生します。自動フルフィルメントコスト をご参照ください。
自動フルフィルメントの仕組み¶
プロバイダーとして、リストにCross-Cloud Auto-Fulfillmentをセットアップすると、Snowflakeは セキュア共有領域 (SSA) のプロビジョニングとリモートリージョンへのデータ製品の自動フルフィルメント を管理します。SSA はSnowflakeにより管理されています。データ製品がすでにリモートリージョンに存在する場合、そのリージョンのコンシューマーは即座にデータ製品を入手できます。
各リストには、シェアであれアプリケーション・パッケージであれ、データ製品が関連付けられています。そのデータ製品には、1つまたは複数のデータベースのオブジェクトと、アプリケーションパッケージのアプリケーションロジックが含まれています。データ製品がリモートリージョンに自動複製される正確なタイミングは、リストをどのように利用可能にするかによって異なります。
プライベートリストは、指定されたコンシューマーがリストを取得した後に自動複製されます。
Snowflake Marketplace で共有されたパブリックリストは、特定のリージョンのコンシューマーがリストを取得した後に自動複製されます。
When your data product is auto-fulfilled to a new region for the first time, it's transferred to an SSA in that region Auto-fulfillment can be configured with SUB_DATABASE or SUB_DATABASE_WITH_REFERENCE_USAGE settings.
SUB_DATABASE allows selected objects to be available on-demand.
SUB_DATABASE_WITH_REFERENCE_USAGE provides account-level scheduling for application packages.
注釈
Specifying FULL_DATABASE for the auto-fulfillment refresh type is deprecated.
複数のリストで同じデータベースを使用することができますが、データベースは新しいリージョンに一度だけ自動複製されます。
注釈
Business Critical Edition(BCE)の場合、共有データの扱いは VPS のような高セキュリティのデプロイメントとは異なります。BCE はリージョン用に個別の SSA を作成する必要はありませんが、Tri-Secret Secure暗号化などの機能により、厳格なデータセキュリティとコンプライアンスを実施しています。
Virtual Private Snowflake(VPS)や政府機関専用のSnowflake環境などのデプロイメントには、デプロイメントごとに個別の安全な共有領域(SSA)があります。これにより、自動複製は、これらの環境特有の厳しいセキュリティ要件やデータ分離要件に準拠していることが保証されます。
データ自動フルフィルメントの仕組み¶
リストに自動フルフィルメントをセットアップすると、データ商品の更新間隔を構成できます。
リージョンの SSA にデータ商品が最初に自動フルフィルメント された後、構成されたデータリフレッシュに基づいて、データ商品の変更がアカウントから同期されます。
データ更新タイプ |
説明 |
|---|---|
トリガーベースのデータ更新 |
プロバイダーは、 SYSTEM$TRIGGER_LISTING_REFRESH を使用してオンデマンドのデータ更新をトリガーできるため、コンシューマーは最新の情報を確実に受け取ることができます。 Snowflakeでは、アップストリームの抽出-変換-ロード (ETL) パイプラインプロセスが完了し、データの準備ができたときに複製をトリガーしたい場合に、トリガーベースのデータリフレッシュを使用することを推奨しています。例えば、金融機関に株式分析を提供するデータプロバイダーの場合、上流の ETL パイプラインで新しいデータセットが更新されると同時に、すべてのアナリストに更新をトリガーすることができます。 注: この機能は SQL でのみ利用可能です。 |
アプリケーションパッケージのトリガーベースのリフレッシュ |
リストのデータ製品がアプリケーション・パッケージの場合、プロバイダーは SYSTEM$TRIGGER_LISTING_REFRESH を、アプリケーション・パッケージのオンデマンド・リフレッシュをトリガーするようにセットできます。ただし、プロバイダーはアプリケーション・パッケージをリフレッシュする必要があるたびにこの関数を実行する必要があります。 リリースディレクティブが変更されるたびにアプリケーションパッケージをリフレッシュするように構成するには、 ALTER APPLICATION PACKAGE コマンドの LISTING_AUTO_REFRESH句を使用します。 |
インターバルベースのデータ更新 |
プロバイダーは、リストのすべてのコンシューマーに対して、1分から8日までの期間で、間隔ベースのデータ更新を確立することができます。データベースに関連付けられた各リストは、同じ更新間隔で動作します。 インターバル・ベースのデータ更新構成は、あらかじめ定義された間隔で更新が必要な場合に推奨されます。例えば、毎週データセットを更新するプロバイダーは、インターバル・ベースのリフレッシュを使用して、同じスケジュールでデータベースを更新することができます。リフレッシュが完了するごとに、ケイデンスに従って次のリフレッシュがトリガーされます。詳細については アカウントレベルの更新間隔を設定する をご参照ください。 注: この機能は、 Snowsight の SQL または Provider Studio を使用して利用可能です。 |
スケジュールベースのデータ更新 |
プロバイダーは、リストのすべてのコンシューマーにわたって、データ更新のタイムスタンプとスケジュールを設定できます。データベースを利用するすべてのリストは、同じ更新スケジュールに従います。 リスト更新を特定のタイムスタンプとスケジュールで行う必要がある大文字と小文字の使用には、スケジュールベースのデータ更新をお勧めします。例えば、データプロバイダーは、すべてのコンシューマーにリフレッシュが利用可能になるタイミングを予測可能なタイムスタンプで提供する必要があります。 インターバル・ベースとスケジュール・ベースのデータ・リフレッシュを同時に使用することはできません。両方セットされている場合、一方が他方を優先します。例えば、cron式がスケジュール更新のためにセットアップされ、すでに更新間隔が設定されている場合、スケジュール更新をサポートするために上書きされます。詳細については auto_fulfillment をご参照ください。 注: この機能は、 Snowsight の SQL または Provider Studio を使用して利用可能です。 |
自動複製に関する考慮事項¶
リストに自動複製を使用する場合は、以下を考慮します。
Snowflakeは、同じ名前の複数のデータベースを持つことをサポートしています。自動フルフィルメントでは、ターゲット・リージョンに1つのセキュリティ共有領域 (SSA) アカウントが作成され、 SSA は、同じ名前のデータベースを2つ持つことはできません。その結果、ソースアカウントに同じ名前のデータベースが 2 つ以上ある場合、 SSA アカウントでの競合を避けるために、自動フルフィルメントはデータベース名に一意のプレフィックスを付加します。例えば、次のようなシナリオを想像してみてください。
組織にはproductionとdevの2つのアカウントがあります。
productionとdevはそれぞれ、
AnyCompanyDataという名前のデータベースを持っています。
配信先には常に、2つのデータベースを持つ1つの SSA アカウントがあるため、自動フルフィルメントでは重複するデータベース名にプレフィックスが付加され、
AnyCompanyDataとPrefixXXXXX_AnyCompanyDataの2つのデータベースになります。AWS Marketplace、Google Cloud Marketplace、またはAzure Marketplaceを使用してSnowflakeにサインアップした場合、それらのクラウドでのみアカウントと SSAs を作成できます。現在のクラウドサービスリージョン外にリストを複製することはできません。
複製されるデータ製品のサイズによっては、データ製品をコンシューマーに提供するまでに時間のかかる場合があります。データ製品のサイズも自動複製のコストに影響を与える可能性があります。コストの詳細については、 自動フルフィルメントコスト をご参照ください。
オブジェクトレベルモード(SUB_DATABASE)がデフォルトで使用されます。
(Deprecated) If a listing uses objects that are located in a database that's already in full database mode (FULL_DATABASE), a warning displays in Snowsight and the database remains in full database mode.
Snowflakeはリストの自動フルフィルメントのリフレッシュ履歴をコンパイルし、リストのリフレッシュに失敗した場合に毎日メールを送信します。これらのメッセージは、リストで指定されたメールアドレスに送信されます。
If the provider has a tag that includes a masking policy at the account level, auto-fulfillment doesn't take that masking policy into account when auto-fulfilling the data product. For auto-fulfillment, the scope of sharing is at the database, schema, and table level, but not at the account level.
Auto-fulfillment enforces a 10TB limit on the size of the data product. For more information, refer to the データベースが10テラバイトを超える場合 troubleshooting topic. After assessing the cost implications, you can contact Snowflake Support to increase the size limit.
Tri-Secret Secure を使用する場合は、 Snowflakeサポート に連絡して、自動フルフィルメントに使用する安全な共有領域でTri-Secret Secureを有効にする必要があります。
Tri-Secret Secureでは、クエリ結果はプロバイダーのキー、Snowflakeのキー、コンシューマーのキーを1つずつ使用して暗号化されます。それぞれのキーは独立してアクセスを管理します。キーが取り消されると、その所有者だけがアクセス権を失います。例えば、プロバイダーキーを取り消したとしても、コンシューマーがすでに取得されたデータにアクセスすることは妨げられません。