再共有者としての受信データの再共有

再共有者として、プロバイダーのリストからデータを取得し、元の状態で、または自身のデータで変換して他のアカウントと共有できます。このトピックでは、受信データを再共有する方法について説明します。

前提条件

  • プロバイダーのリストは、``resharing.enabled``が``true``に設定されている必要があります。

  • 独自のデータベースにセキュアビューを作成する必要があります。インポートしたデータベースを直接変更することはできません。

  • 同じロールが共有を作成し、リストに付与する必要があります。

制限事項

  • 再共有はリスト経由でのみ有効になります。直接共有やアプリを再共有することはできません。

  • インポートしたデータベースやUniform Listing Locator(ULLs)からのデータオブジェクトを別の共有に直接アタッチすることはできません。受信リストからデータオブジェクトを再共有するには、データベースにセキュアビューを作成する必要があります。

  • 再共有者は、再共有が許可されている受信データ製品のテーブル、動的テーブル、およびビューのみを再共有できます。

  • 再共有リストは障害復旧をサポートしていません。

再共有ワークフロー

  1. プロバイダーのリストからインポートしたデータベースを作成します。

  2. インポートしたデータベースのデータを参照するセキュアビューを独自のデータベースに作成します。

  3. 共有を作成し、セキュアビューのSELECTを共有に付与します。

  4. 共有を使用して新しいリストを作成します。

CREATE DATABASE imported_db FROM LISTING provider_listing;
CREATE DATABASE reshared_db;
CREATE SECURE VIEW reshared_db.public.reshared_view
  AS SELECT * FROM imported_db.public.provider_table;

CREATE SHARE my_reshare;
GRANT USAGE ON DATABASE reshared_db TO SHARE my_reshare;
GRANT USAGE ON SCHEMA reshared_db.public TO SHARE my_reshare;
GRANT SELECT ON VIEW reshared_db.public.reshared_view TO SHARE my_reshare;

注釈

再共有リストから作成されたインポートしたデータベースには、REFERENCE_USAGEの付与は必要ありません。

クロスリージョンの再共有

注釈

再共有リストの自動フルフィルメントを有効にする前に、自動フルフィルメントのコスト</collaboration/provider-understand-cost-auto-fulfillment>`を理解してください。Snowflakeでは、自動フルフィルメントのコストと使用状況をモニターするためのいくつかのビューも提供しています。詳細については、 :doc:/collaboration/provider-listings-auto-fulfillment-monitor-view-costs` をご参照ください。

他のリージョンのコンシューマーとデータを再共有するには、リストの自動フルフィルメントを有効にする必要があります。:codenowrap:`auto-fulfillment`プロパティには、リージョン間で再共有する際に指定する必要がある``warehouse``フィールドが含まれています。同じリージョン内で再共有する場合、このフィールドは省略できます。

クロスリージョンでデータを再共有するには、下流でさらに複製するためのデータのローカルコピーが必要です。Snowflakeは、これを管理するための動的テーブルを自動的に作成します。指定したウェアハウスは、これらの動的テーブルの作成とリフレッシュに使用されます。

auto_fulfillment:
  warehouse: my_wh

再共有用に作成された動的テーブルを表示するには、:doc:`SYSTEM$SHOW_DYNAMIC_TABLES_CREATED_FOR_RESHARING </sql-reference/functions/system_show_dynamic_tables_created_for_resharing>`システム関数を使用できます。

コンシューマーによるさらなる再共有の有効化

作成したリストをコンシューマーにさらに再共有してもらうには、``resharing.enabled``を``true``に設定して、ご自身のリストで再共有を有効にします。これをプロバイダーとして構成する詳細については、:doc:`/collaboration/resharing-as-provider`を参照してください。

トラブルシューティング

コンシューマーに「The listing has resharing restrictions that prevent access to the underlying data(リストには、基盤となるデータへのアクセスを妨げる再共有の制限があります)」というエラーが表示される場合は、プロバイダーと協力して問題を解決してください。このエラーは次の場合に発生する可能性があります。

  • プロバイダーが``enabled``を``false``に設定して再共有を無効にした。

  • プロバイダーが、再共有と互換性のないガバナンスポリシーまたはコンテキスト関数をベーステーブルに追加または変更した。