動的テーブルのデータ共有

動的テーブルは共有可能なオブジェクトです。動的テーブルを共有するには、データ共有プロバイダーが動的テーブルに対する権限を共有に付与します。これにより、データ共有コンシューマーがその権限を使用できるようになります。

動的テーブルとデータを共有する方法

動的テーブルを他のSnowflakeアカウントと共有するには、動的テーブルを共有またはアプリケーションパッケージに追加します。

  • 動的・テーブルをリージョン内のアカウントと共有するには、ダイレクト共有を使用できます。詳細については、 Snowflakeでのデータ共有とコラボレーション をご参照ください。

  • 動的テーブルを他のリージョンのアカウントと共有するには、共有またはアプリケーションパッケージをデータ製品としてリストに追加し、Cross-Cloud Auto-Fulfillment をセットアップします。詳細情報については、 リストの作成と公開 を参照してください。

データ共有プロバイダーは、次の例に示すように、単一の動的テーブルに SELECT 権限を付与するか、データベース内のすべての動的テーブルに SELECT 権限を付与するかを選択できます。

GRANT SELECT ON ALL DYNAMIC TABLES IN SCHEMA mydb.public TO SHARE share1;

GRANT SELECT ON DYNAMIC TABLE mydb.public TO SHARE share1;
Copy

詳細については、 GRANT <権限> ... TO SHARE をご参照ください。

共有データをインジェストするための動的テーブルの作成

動的テーブルを使用して共有データをインジェストする場合、クエリは共有動的テーブルまたは上流の動的テーブルを参照する共有セキュアビューから選択できません。

共有データをインジェストするための動的テーブルを作成するには、次を実行します。

  1. 正しい権限 を持っていることを確認し、共有からデータベースを作成して権限を付与します。

    CREATE DATABASE my_shared_db FROM SHARE provider_account.share1;
    
    Copy
  2. 共有データベースに 権限を付与 します。

  3. 共有動的テーブルを作成します。

CREATE OR REPLACE DYNAMIC TABLE my_dynamic_table
  TARGET_LAG = '1 day'
  WAREHOUSE = mywh
  AS
    SELECT * FROM my_shared_db.public.mydb;
Copy

注釈

変更追跡は、動的テーブルで使用される基になるオブジェクトすべてで有効にする必要があります。共有データをインジェストするために動的テーブルを使用するには、データ共有プロバイダーは共有オブジェクトで change_tracking を有効にする必要があります。詳細については、 変更の追跡を有効にする をご参照ください。