Snowflake Data Clean Rooms Collaboration API

概要

これは Snowflake Data Clean Rooms Collaboration API の参照ページです。この API は、Provider および Consumer APIs が使用する PROVIDER または CONSUMER 名前空間 ではなく、COLLABORATION および REGISTRY を使用します。

注釈

Collaboration API を使用する場合、環境内のセカンダリロールを無効にする必要があります。

USE SECONDARY ROLES NONE;
Copy

DCR Collaboration API へのアクセスを管理する

コラボレーターは高レベルの SAMOOHA_APP_ROLE ロールを使用してすべての DCR Collaboration API プロシージャを呼び出すことができます。

ただし、管理者はニーズに応じて、特定のコラボレーションまたは特定のロールに、よりきめ細かいアクセスを許可することをお勧めします。よりきめ細かい権限については、アクセス管理のプロシージャ を参照してください。

よりきめ細かい API 権限をユーザーに付与するには、次の手順を実行します。

  1. ロールを作成します。

  2. 使用されるウェアハウスの使用権をロールに付与します。

  3. 必要に応じて、GRANT_PRIVILEGE_ON_OBJECT_TO_ROLE を呼び出して、特定のコラボレーションに対する適切な権限をロールに付与します。

  4. 必要に応じて、GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE を呼び出して、アカウント内のすべてのコラボレーションに対する適切な高レベルの権限をロールに付与します。

  5. ユーザーにロールを付与します。これで、そのユーザーがコラボレーションプロシージャを呼び出してコラボレーションに参加できるようになります。

2つのCollaboration API ロールを作成する例を次に示します。1つはコラボレーションを作成して参加できるロール、もう1つはコラボレーションでリソースを表示して分析を実行できる(ただし、コラボレーションの参加や変更はできない)ロールです。

-- Create a role that can create and join collaborations.
USE ROLE ACCOUNTADMIN;
CREATE ROLE COLLABORATION_CREATOR_ROLE;
GRANT USAGE ON WAREHOUSE APP_WH TO COLLABORATION_CREATOR_ROLE;
GRANT APPLY ROW ACCESS POLICY ON ACCOUNT TO ROLE COLLABORATION_CREATOR_ROLE;
GRANT CREATE APPLICATION ON ACCOUNT TO ROLE COLLABORATION_CREATOR_ROLE;
GRANT CREATE DATABASE ON ACCOUNT TO ROLE COLLABORATION_CREATOR_ROLE;
GRANT CREATE LISTING ON ACCOUNT TO ROLE COLLABORATION_CREATOR_ROLE;
GRANT CREATE SHARE ON ACCOUNT TO ROLE COLLABORATION_CREATOR_ROLE;
GRANT IMPORT SHARE ON ACCOUNT TO ROLE COLLABORATION_CREATOR_ROLE;
GRANT MANAGE SHARE TARGET ON ACCOUNT TO ROLE COLLABORATION_CREATOR_ROLE;
CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.ADMIN.GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('CREATE COLLABORATION', 'COLLABORATION_CREATOR_ROLE');
GRANT ROLE COLLABORATION_CREATOR_ROLE TO USER george_washington;

-- Create a role that can run analyses on a specific collaboration.
USE ROLE COLLABORATION_CREATOR_ROLE;
CREATE ROLE ANALYST_ROLE;

CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.ADMIN.GRANT_PRIVILEGE_ON_OBJECT_TO_ROLE(
  'RUN',
  'COLLABORATION',
  $collaboration_name,
  'ANALYST_ROLE'
);

-- Also grant READ, which gives permission to read the resources available to use in a collaboration.
CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.ADMIN.GRANT_PRIVILEGE_ON_OBJECT_TO_ROLE(
  'READ',
  'COLLABORATION',
  $collaboration_name,
  'ANALYST_ROLE'
);

GRANT ROLE ANALYST_ROLE to USER alexander_hamilton;
Copy

メタデータのチートシート

コラボレーションについてよく検索される情報を見つける方法は、次のとおりです。

知りたい情報

呼び出すプロシージャ

私はどのコラボレーションに参加できますか?

``VIEW_COLLABORATIONS``COLLABORATION_NAME 列が NULL のコラボレーションを探します。

私はどのコラボレーションに参加していますか?

``VIEW_COLLABORATIONS``COLLABORATION_NAME 列が NULL でないコラボレーションを探します。これは、あなたがコラボレーションを作成または参加したことを意味します。

私はどのコラボレーションを所有していますか?

``VIEW_COLLABORATIONS``OWNER_ACCOUNT 列を参照してください。

コラボレーション内の全コラボレーターのステータスは何ですか?

GET_STATUS

コラボレーションへの参加または作成に関する私のステータスは何ですか?

GET_STATUS または VIEW_COLLABORATIONS

誰がコラボレーションを所有していますか?

``GET_STATUS``ROLES 列で OWNER を確認してください。

特定のコラボレーションにおける私のロールは何ですか?

``GET_STATUS``ROLES 列を参照してください。

特定のコラボレーションで、私はどのようなロールが割り当てられていますか?

``GET_STATUS``ROLES 列を参照してください。

特定のコラボレーションの仕様は何ですか?

``VIEW_COLLABORATIONS``COLLABORATION_SPEC 列を参照してください。

仕様は最新ですか?

VIEW_COLLABORATIONS を呼び出して最新の更新がいつ適用されたかを確認できます。ただし、指定された仕様の変更が進行中かどうかを知る方法はありません。

保留中の更新リクエストにはどのようなものがありますか?

``VIEW_UPDATE_REQUESTS``STATUS = PENDING である行を探します。

特定のコラボレーションの仕様を表示してください。

REVIEW はコラボレーション仕様を返します。すでに REVIEW を呼び出している場合、またはコラボレーションに参加している場合は、コラボレーション名を指定して以下の SQL コマンドを呼び出します。

CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.COLLABORATION.VIEW_COLLABORATIONS() ->>
  SELECT "COLLABORATION_SPEC" FROM $1
    WHERE "SOURCE_NAME" = <collaboration name>;
Copy

テンプレートのプロシージャ

REGISTER_TEMPLATE

スキーマ:

REGISTRY

コラボレーションで使用できるようにテンプレートを登録します。登録されたすべてのテンプレートは、アカウントにあるすべてのレジストリですべてのテンプレートに対して一意の名前とバージョンを持っている必要があります。

構文

REGISTER_TEMPLATE( ['<registry_name>' ,] <template_spec> )
Copy

引数

registry_name (オプション)

このテンプレートを登録する カスタムレジストリ の名前。指定しない場合、テンプレートはデフォルトのアカウントレジストリに登録されます。

template_spec

YAML 形式の :ref:`テンプレート定義 <label-dcr_collaboration_template_yaml>`(文字列)。

戻り値

コラボレーション仕様で使用するテンプレート ID。

デフォルトのレジストリにテンプレートを登録します。

CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.REGISTRY.REGISTER_TEMPLATE(
  $$
  api_version: 2.0.0
  spec_type: template
  name: my_test_template
  version: 2026_01_12_V1
  type: sql_analysis
  description: A test template
  template:
    SELECT * FROM IDENTIFIER({{ source_table[0] }}) LIMIT 10;
$$);
Copy

カスタムレジストリにテンプレートを登録します。

CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.REGISTRY.REGISTER_TEMPLATE(
  'my_custom_registry',
  $$
  api_version: 2.0.0
  spec_type: template
  name: my_test_template
  version: 2026_01_12_V1
  type: sql_analysis
  description: A test template
  template:
    SELECT * FROM IDENTIFIER({{ source_table[0] }}) LIMIT 10;
$$);
Copy

アクセス要件

SAMOOHA_APP_ROLEロールを使用していない場合は、以下のプロシージャを呼び出して権限を付与されたロールを使用する必要があります。

デフォルトのレジストリにオブジェクトを登録するには:

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('REGISTER TEMPLATE', 'role name')

カスタムレジストリにアイテムを登録するには:

  • 自分で作成したカスタムレジストリに対する読み取りおよび書き込みの権限があります。

  • 他のユーザーが作成したカスタムレジストリにアクセスするには、:samp:`GRANT_PRIVILEGE_ON_OBJECT_TO_ROLE('REGISTER', 'REGISTRY', 'MY_REGISTRY', '{role name}')`が必要です。


VIEW_REGISTERED_TEMPLATES

スキーマ:

REGISTRY

登録したすべてのテンプレートを一覧表示します。テンプレートを登録するには、REGISTRY.REGISTER_TEMPLATE を呼び出します。

構文

VIEW_REGISTERED_TEMPLATES( [ '<registry_name>' ] )
Copy

引数

registry_name (オプション)

テンプレートをリストする:doc:`カスタムレジストリ</user-guide/cleanrooms/v2/registries>`の名前。指定しない場合、デフォルトのアカウントレジストリからテンプレートを一覧表示します。

戻り値

このアカウントで登録したすべてのテンプレートの詳細をリストしたテーブル。

CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.REGISTRY.VIEW_REGISTERED_TEMPLATES();
Copy

アクセス要件

SAMOOHA_APP_ROLEロールを使用していない場合、以下のプロシージャのいずれかを呼び出して権限を付与されたロールを使用する必要があります。

デフォルトのレジストリのアイテムを表示するには:

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('VIEW REGISTERED TEMPLATES', 'role name')

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('CREATE COLLABORATION', 'role name')

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('JOIN COLLABORATION', 'role name')

カスタムレジストリのアイテムを表示するには:

  • 自分で作成したカスタムレジストリに対する読み取りおよび書き込みの権限があります。

  • 他のユーザーが作成したカスタムレジストリにアクセスするには、:samp:`GRANT_PRIVILEGE_ON_OBJECT_TO_ROLE('READ', 'REGISTRY', 'MY_REGISTRY', '{role name}')`が必要です。


ADD_TEMPLATE_REQUEST

スキーマ:

COLLABORATION

既存のコラボレーションにテンプレートを追加するリクエストを送信します。送信者がリクエストの影響を受ける場合、送信者では自動的にリクエストが承認されます。変更が適用されるためには、影響を受ける他のすべてのコラボレーターが各自でリクエストを承認する必要があります。既存のコラボレーションにテンプレートを追加するには、コラボレーションの所有者も含めてすべてのコラボレーターがこのプロシージャを呼び出す必要があります。

テンプレートの共有者を追加するには、エイリアスを指定してこのプロシージャを再度呼び出します。呼び出しごとに、share_with にリストされているユーザーが追加されます。

リクエストのステータスを見るには、VIEW_UPDATE_REQUESTS を呼び出します。

テンプレート追加フローをご覧ください。

構文

ADD_TEMPLATE_REQUEST( <collaboration_name>, <template_id>, <share_with> )
Copy

引数

collaboration_name

テンプレートを追加するコラボレーションの名前。

template_id

コラボレーションに追加するテンプレートの ID。この値を取得するには、テンプレートを登録します。

share_with

このテンプレートを共有する分析実行者の*エイリアス*の配列。このテンプレートに関連付けられている他のコラボレーターに加えて、ここにリストされているコラボレーターが追加されます。ここにリストされているすべてのコラボレーターは分析実行者である必要があります。そうでない場合、このプロシージャは失敗し、このテンプレートは誰とも共有されません。

戻り値

文字列の成功メッセージ。

-- Ask to add the template only for Collaborator3 in this collaboration.
CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.COLLABORATION.ADD_TEMPLATE_REQUEST(
  $collaboration_name,
  $template_alias,
  ['Collaborator3']
);
Copy

アクセス要件

SAMOOHA_APP_ROLEロールを使用していない場合は、以下のプロシージャを呼び出して権限を付与されたロールを使用する必要があります。

  • GRANT_PRIVILEGE_ON_OBJECT_TO_ROLE('UPDATE', 'COLLABORATION', 'collaboration name', 'role name')

  • 次のいずれかの権限です。

    • :samp:`GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('CREATE COLLABORATION', '{role name}')`に加えて、ロールに手動で付与する必要があるすべての追加のアカウントレベルの権限。

    • :samp:`GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('JOIN COLLABORATION', '{role name}')`に加えて、ロールに手動で付与する必要があるすべての追加のアカウントレベルの権限。

  • テンプレートがカスタムレジストリにある場合は、:samp:`GRANT_PRIVILEGE_ON_OBJECT_TO_ROLE( 'READ', '{registry name}', '{role name}')`も必要です。


REMOVE_TEMPLATE

スキーマ:

COLLABORATION

指定されたコラボレーターの特定のコラボレーションからテンプレートを削除する非同期リクエスト。テンプレートを登録したコラボレーターのみがテンプレートを削除できます。登録したテンプレートを削除するのに、他の承認は必要ありません。テンプレートが削除されたコラボレーターはそのテンプレートを表示できなくなります。

構文

REMOVE_TEMPLATE( <collaboration_name>, <template_id>, <remove_for> )
Copy

引数

collaboration_name

テンプレートを削除するコラボレーションの名前。

template_id

コラボレーションから削除するテンプレートの ID。

remove_for

このコラボレーションで、このテンプレートを表示または使用できなくなった分析実行者の1つ以上の*エイリアス*の配列。

戻り値

文字列の成功メッセージ。コラボレーターのテンプレートが削除されたかどうかを確認するには、コラボレーション仕様を表示します。

-- Prevent collaborator_1234 from using the specified template
CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.COLLABORATION.REMOVE_TEMPLATE(
  $collaboration_name,
  $template_id,
  ['collaborator_1234']
);
Copy

アクセス要件

SAMOOHA_APP_ROLEロールを使用していない場合は、以下のプロシージャを呼び出して権限を付与されたロールを使用する必要があります。

  • GRANT_PRIVILEGE_ON_OBJECT_TO_ROLE('UPDATE', 'COLLABORATION', 'collaboration name', 'role name')

  • 次のいずれかの権限です。

    • :samp:`GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('CREATE COLLABORATION', '{role name}')`に加えて、ロールに手動で付与する必要があるすべての追加のアカウントレベルの権限。

    • :samp:`GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('JOIN COLLABORATION', '{role name}')`に加えて、ロールに手動で付与する必要があるすべての追加のアカウントレベルの権限。

  • テンプレートがカスタムレジストリにある場合、またはカスタムレジストリのコード仕様を参照している場合は、:samp:`GRANT_PRIVILEGE_ON_OBJECT_TO_ROLE( 'READ', '{registry name}', '{role name}')`も必要です。


VIEW_TEMPLATES

スキーマ:

COLLABORATION

指定したコラボレーションで実行できるすべてのテンプレート、またはそのコラボレーション宛てに送信したすべてのテンプレートを表示します。

構文

VIEW_TEMPLATES( <collaboration_name> )
Copy

引数

collaboration_name

コラボレーションの名前。テンプレートをリストする前に、このコラボレーションを確認または参加する必要があります。

戻り値

自分で登録したテンプレートなど、このコラボレーションで実行できるテンプレートに関する情報を一覧表示したテーブル。情報にはテンプレート ID(テンプレートの実行に使用)、テンプレート本文、パラメーター、作成者、実行可能者が含まれます。

CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.COLLABORATION.VIEW_TEMPLATES(
  $collaboration_name
);
Copy

アクセス要件

SAMOOHA_APP_ROLE ロールを使用していない場合、以下のプロシージャのいずれかを呼び出して権限を付与されたロールを使用する必要があります。

  • GRANT_PRIVILEGE_ON_OBJECT_TO_ROLE('VIEW TEMPLATES', 'COLLABORATION', 'collaboration name', 'role name')

  • GRANT_PRIVILEGE_ON_OBJECT_TO_ROLE('READ', 'COLLABORATION', 'collaboration name', 'role name')

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('CREATE COLLABORATION', 'role name')

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('JOIN COLLABORATION', 'role name')


ENABLE_TEMPLATE_AUTO_APPROVAL

スキーマ:

COLLABORATION

他のコラボレーターから送信されたすべてのテンプレート更新リクエストが自動的に承認されるようにします。リクエストは引き続きリクエストログに表示されます。これは、自動承認を有効した後に送信されたリクエストのみに影響します。

構文

ENABLE_TEMPLATE_AUTO_APPROVAL( <collaboration_name> )
Copy

引数

collaboration_name

コラボレーションの名前。

戻り値

文字列の成功メッセージ。

CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.COLLABORATION.ENABLE_TEMPLATE_AUTO_APPROVAL(
  $collaboration_name
);
Copy

アクセス要件

SAMOOHA_APP_ROLE ロールを使用していない場合、以下のプロシージャのいずれかを呼び出して権限を付与されたロールを使用する必要があります。

  • GRANT_PRIVILEGE_ON_OBJECT_TO_ROLE('MANAGE TEMPLATE AUTO APPROVAL', 'COLLABORATION', 'collaboration name', 'role name')

  • GRANT_PRIVILEGE_ON_OBJECT_TO_ROLE('UPDATE', 'COLLABORATION', 'collaboration name', 'role name')

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('CREATE COLLABORATION', 'role name')

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('JOIN COLLABORATION', 'role name')


DISABLE_TEMPLATE_AUTO_APPROVAL

スキーマ:

COLLABORATION

他のコラボレーターから送信されたテンプレートリクエストの自動承認を無効にします。今後のリクエストはすべて、APPROVE_UPDATE_REQUEST を呼び出して手動で承認する必要があります。

構文

DISABLE_TEMPLATE_AUTO_APPROVAL( <collaboration_name> )
Copy

引数

collaboration_name

コラボレーションの名前。

戻り値

文字列の成功メッセージ。

CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.COLLABORATION.DISABLE_TEMPLATE_AUTO_APPROVAL(
  $collaboration_name
);
Copy

アクセス要件

SAMOOHA_APP_ROLE ロールを使用していない場合、以下のプロシージャのいずれかを呼び出して権限を付与されたロールを使用する必要があります。

  • GRANT_PRIVILEGE_ON_OBJECT_TO_ROLE('MANAGE TEMPLATE AUTO APPROVAL', 'COLLABORATION', 'collaboration name', 'role name')

  • GRANT_PRIVILEGE_ON_OBJECT_TO_ROLE('UPDATE', 'COLLABORATION', 'collaboration name', 'role name')

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('CREATE COLLABORATION', 'role name')

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('JOIN COLLABORATION', 'role name')

データ提供のプロシージャ

REGISTER_DATA_OFFERING

スキーマ:

REGISTRY

コラボレーション定義に追加できるよう、データ提供を登録します。登録済みデータ提供の登録を解除することはできません。既存のデータ提供を上書きすることはできませんが、同じ名前で新しいバージョンの新しいデータ提供を登録することはできます。データ提供の新しいバージョンを作成しても、以前のバージョンは削除されません。

すべてのデータ提供には、アカウントにあるすべてのレジストリのすべてのデータ提供に対して一意の名前とバージョンが必要です。

このテーブルをコラボレーションの他の人と共有したい場合は、コラボレーションを作成する前に、コラボレーション仕様にテーブルを追加します。

コラボレーションで共有するデータに対する OWNERSHIP 権限が必要です。そうでないと、コラボレーションに参加しようとしたときやオブジェクトを登録しようとしたときに、「参照使用許可がありません」というエラーが表示されます。この問題の処理方法についての詳細。

構文

REGISTER_DATA_OFFERING( ['<registry_name>' ,] <data_offering_spec> )
Copy

引数

registry_name (オプション)

このデータ提供を登録する カスタムレジストリ の名前。指定しない場合、データ提供はデフォルトのアカウントレジストリに登録されます。

data_offering_spec

このデータ提供を説明する YAML 形式の データ提供定義

戻り値

コラボレーションの data_offerings.id フィールドに使用されるデータ提供 ID。

デフォルトのレジストリにデータ提供を登録します。

CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.REGISTRY.REGISTER_DATA_OFFERING(
    $$
    api_version: 2.0.0
    spec_type: data_offering
    version: v1
    name: customers
    datasets:
     - alias: customers_1
       data_object_fqn: SAMOOHA_SAMPLE_DATABASE.DEMO.CUSTOMERS
       allowed_analyses: template_only
       schema_and_template_policies:
         hashed_email:
           category: join_custom
         status:
           category: passthrough
    $$
  );
Copy

カスタムレジストリにデータ提供を登録します。

CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.REGISTRY.REGISTER_DATA_OFFERING(
    'my_custom_registry',
    $$
    api_version: 2.0.0
    spec_type: data_offering
    version: v1
    name: customers
    datasets:
     - alias: customers_1
       data_object_fqn: SAMOOHA_SAMPLE_DATABASE.DEMO.CUSTOMERS
       allowed_analyses: template_only
       schema_and_template_policies:
         hashed_email:
           category: join_custom
         status:
           category: passthrough
    $$
  );
Copy

アクセス要件

SAMOOHA_APP_ROLEロールを使用していない場合は、以下のプロシージャを呼び出して権限を付与されたロールを使用する必要があります。

デフォルトのレジストリにデータ提供を登録するには:

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('REGISTER DATA OFFERING', 'role name')

カスタムレジストリにアイテムを登録するには:

  • 自分で作成したカスタムレジストリに対する読み取りおよび書き込みの権限があります。

  • 他のユーザーが作成したカスタムレジストリにアクセスするには、:samp:`GRANT_PRIVILEGE_ON_OBJECT_TO_ROLE('REGISTER', 'REGISTRY', 'MY_REGISTRY', '{role name}')`が必要です。






VIEW_REGISTERED_DATA_OFFERINGS

スキーマ:

REGISTRY

登録したすべてのデータ提供をリストします。コラボレーションに存在する、他のユーザーが追加したデータ提供物を表示するには、COLLABORATION.VIEW_DATA_OFFERINGS を呼び出します。

構文

VIEW_REGISTERED_DATA_OFFERINGS( [ '<registry_name>' ] )
Copy

引数

registry_name (オプション)

データ提供をリストする:doc:`カスタムレジストリ</user-guide/cleanrooms/v2/registries>`の名前。指定しない場合、デフォルトのアカウントレジストリからデータ提供を一覧表示します。

戻り値

このアカウントを使用して登録したすべてのデータ提供を一覧表示したテーブル。

CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.REGISTRY.VIEW_REGISTERED_DATA_OFFERINGS();
Copy

アクセス要件

SAMOOHA_APP_ROLEロールを使用していない場合、以下のプロシージャのいずれかを呼び出して権限を付与されたロールを使用する必要があります。

デフォルトのレジストリのアイテムを表示するには:

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('VIEW REGISTERED DATA OFFERINGS', 'role name')

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('CREATE COLLABORATION', 'role name')

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('JOIN COLLABORATION', 'role name')

カスタムレジストリのアイテムを表示するには:

  • 自分で作成したカスタムレジストリに対する読み取りおよび書き込みの権限があります。

  • 他のユーザーが作成したカスタムレジストリにアクセスするには、:samp:`GRANT_PRIVILEGE_ON_OBJECT_TO_ROLE('READ', 'REGISTRY', 'MY_REGISTRY', '{role name}')`が必要です。


VIEW_DATA_OFFERINGS

スキーマ:

COLLABORATION

指定したコラボレーションに存在する、分析実行者としてアクセスできる、または自分で追加したすべてのデータ提供物を一覧表示します。自分が登録したデータ提供のみを表示するには、REGISTRY.VIEW_REGISTERED_DATA_OFFERINGS を呼び出します

コラボレーターXがコラボレーションに参加した後にのみ、コラボレーターXからのデータ提供を見ることができます。

構文

VIEW_DATA_OFFERINGS( <collaboration_name> )
Copy

引数

collaboration_name

探索するコラボレーションの名前。

戻り値

指定されたコラボレーションにおけるすべてのデータ提供に関する情報。テーブルには、次の列が含まれています。

  • FREEFORM_SQL_COLUMN_POLICIES:このコラボレーション内にあるすべての 自由形式の列ポリシー の、ポリシータイプをキーとした JSON 表現。

  • FREEFORM_SQL_VIEW_NAME:自由形式の SQL クエリで使用される完全修飾テーブル名(データセットが自由形式の SQL クエリをサポートしている場合)。データセットが自由形式の SQL クエリを提供しない場合、このセルは空です。

  • SHARE_WITH:分析でデータを使用できる人。この値が LOCAL の場合は、データをホストする人物以外、どのコラボレーターとも共有されないローカルデータセットです。

  • TEMPLATE_VIEW_NAME:COLLABORATION.RUN を呼び出す際にテンプレートで使用される完全修飾テーブル名。

CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.COLLABORATION.VIEW_DATA_OFFERINGS(
  $collaboration_name
);
Copy

アクセス要件

SAMOOHA_APP_ROLE ロールを使用していない場合、以下のプロシージャのいずれかを呼び出して権限を付与されたロールを使用する必要があります。

  • GRANT_PRIVILEGE_ON_OBJECT_TO_ROLE('VIEW DATA OFFERINGS', 'COLLABORATION', 'collaboration name', 'role name')

  • GRANT_PRIVILEGE_ON_OBJECT_TO_ROLE('READ', 'COLLABORATION', 'collaboration name', 'role name')

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('CREATE COLLABORATION', 'role name')

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('JOIN COLLABORATION', 'role name')

リクエストプロシージャの更新

これらのプロシージャは、テンプレートフローの追加 など、承認を必要とするコラボレーション更新リクエストを管理するために使用されます。

VIEW_UPDATE_REQUESTS

スキーマ:

COLLABORATION

指定したコラボレーションで作成した更新リクエスト、または承認または拒否できるすべての更新リクエストを表示できます。更新リクエストが登録されるまでに数秒かかる場合があるため、直前に送信したばかりのリクエストが表示されない場合があります。

テンプレート追加フローをご覧ください。

構文

VIEW_UPDATE_REQUESTS( <collaboration_name> )
Copy

引数

collaboration_name

コラボレーションの名前。

戻り値

このコラボレーションで送信された更新リクエストのテーブル。以下の情報が含まれます。

  • ID:リクエストの ID。リクエストの承認または拒否に使用します。

  • TYPE:リクエストのタイプ。次の値がサポートされています。

    • 「テンプレート追加」

  • STATUS:リクエストの現在のステータス。次のステータスが報告されます。

    • REJECTED:コラボレーションの参加者がこのリクエストを拒否しました。

    • PENDING:リクエストは承認または拒否待ちです。

    • AWAITING_PARTNER_APPROVAL:あなたはリクエストを承認しましたが、まだ1人以上の他のコラボレーターがそのリクエストを承認する必要があります。

    • APPROVED:すべての必要な承認者がリクエストを承認し、変更がコラボレーションに適用されました。

  • APPROVAL_LOG:リクエストのすべての承認と拒否のログ。リクエストが拒否された場合、拒否理由もここに記載されます。

  • DETAILS:テンプレートの名前、説明、共有者(「テンプレート追加」リクエストの場合)など、リクエストタイプに固有の詳細。

  • SPEC:更新されるリソースの詳細。たとえば、「テンプレート追加」リクエストの場合は、テンプレート仕様。

  • UPDATED_ON:このリクエスト(たとえば、承認や拒否)に対して最後のアクションが行われたときのタイムスタンプ。

CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.COLLABORATION.VIEW_UPDATE_REQUESTS(
  $collaboration_name
);
Copy

アクセス要件

SAMOOHA_APP_ROLE ロールを使用していない場合、以下のプロシージャのいずれかを呼び出して権限を付与されたロールを使用する必要があります。

  • GRANT_PRIVILEGE_ON_OBJECT_TO_ROLE('UPDATE', 'COLLABORATION', 'collaboration name', 'role name')

  • GRANT_PRIVILEGE_ON_OBJECT_TO_ROLE('READ', 'COLLABORATION', 'collaboration name', 'role name')

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('CREATE COLLABORATION', 'role name')

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('JOIN COLLABORATION', 'role name')


APPROVE_UPDATE_REQUEST

スキーマ:

COLLABORATION

コラボレーション更新リクエストを承認します。保留中のリクエストのリストを表示するには、VIEW_UPDATE_REQUESTS を呼び出します。いったん承認したリクエストを後で拒否することはできません。

影響を受けるすべてのコラボレーターがリクエストを承認すると、変更が実際にコラボレーションに適用されます。

テンプレート追加フローをご覧ください。

構文

APPROVE_UPDATE_REQUEST( <collaboration_name>, <request_id> )
Copy

引数

collaboration_name

コラボレーションの名前。

request_id

リクエストの ID。

戻り値

文字列の成功メッセージ。

CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.COLLABORATION.APPROVE_UPDATE_REQUEST(
  $collaboration_name,
  $request_id
);
Copy

アクセス要件

SAMOOHA_APP_ROLE ロールを使用していない場合、以下のプロシージャのいずれかを呼び出して権限を付与されたロールを使用する必要があります。

  • GRANT_PRIVILEGE_ON_OBJECT_TO_ROLE('MANAGE UPDATE REQUEST', 'COLLABORATION', 'collaboration name', 'role name')

  • GRANT_PRIVILEGE_ON_OBJECT_TO_ROLE('UPDATE', 'COLLABORATION', 'collaboration name', 'role name')

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('CREATE COLLABORATION', 'role name')

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('JOIN COLLABORATION', 'role name')


REJECT_UPDATE_REQUEST

スキーマ:

COLLABORATION

コラボレーション更新リクエストを拒否します。1つでも拒否があると、コラボレーションに変更が適用されません。リクエストを拒否した後は承認できません。

構文

REJECT_UPDATE_REQUEST( <collaboration_name>, <request_id>, <reason> )
Copy

引数

collaboration_name

コラボレーションの名前。

request_id

リクエストの ID。

reason

リクエストが拒否された理由の人間が読める説明。この引数は必須ですが、空の文字列を送信することができます。

戻り値

文字列の成功メッセージ。

CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.COLLABORATION.REJECT_UPDATE_REQUEST(
  $collaboration_name,
  'request_1324f934457',
  'Needs more cowbell'
);
Copy

アクセス要件

SAMOOHA_APP_ROLE ロールを使用していない場合、以下のプロシージャのいずれかを呼び出して権限を付与されたロールを使用する必要があります。

  • GRANT_PRIVILEGE_ON_OBJECT_TO_ROLE('MANAGE UPDATE REQUEST', 'COLLABORATION', 'collaboration name', 'role name')

  • GRANT_PRIVILEGE_ON_OBJECT_TO_ROLE('UPDATE', 'COLLABORATION', 'collaboration name', 'role name')

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('CREATE COLLABORATION', 'role name')

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('JOIN COLLABORATION', 'role name')

コラボレーション管理プロシージャ

INITIALIZE

スキーマ:

COLLABORATION

所有者はこれを呼び出してコラボレーションを作成し、任意でコラボレーションに参加します。

既存のコラボレーションと同じ name 値でコラボレーション定義を送信すると、エラーがスローされます。

コラボレーションの作成および参加には時間がかかるため、GET_STATUSを呼び出して、コラボレーションに参加したことを確認する必要があります。

所有者が参加した後、リストされたすべてのコラボレーターはVIEW_COLLABORATIONSを呼び出すことでそのコラボレーションを表示して、レビューおよび参加ができるようになります。

構文

INITIALIZE( <collaboration_spec> [, '<auto_join_warehouse>'] )
Copy

引数

collaboration_spec

YAML 形式の :ref:`コラボレーション定義 <label-dcr_collaboration_invitation_yaml>`(文字列)。

auto_join_warehouse (オプション)

有効なSnowflake識別子としてウェアハウス名を指定する文字列。指定した場合、このウェアハウスを使用してコラボレーションの作成と参加が行われます。指定しない場合は、現在のウェアハウスを使用してコラボレーションが作成されます。その後、JOINを呼び出してコラボレーションに参加する必要があります。XSウェアハウスをお勧めします。

戻り値

以下の列を持つテーブル。

  • COLLABORATION_NAME:コラボレーションの名前。コラボレーションを指定する必要があるプロシージャで使用します。

  • MESSAGE:初期化リクエストに関する情報。

次の例では、Aliceが所有者で、Bobから提供されたデータを使って分析を実行できるコラボレーションを作成します。

CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.COLLABORATION.INITIALIZE(
  $$
  api_version: 2.0.0
  spec_type: collaboration
  name: basic_collaboration
  owner: alice
  collaborator_identifier_aliases:
    alice: corp_id.account_id
    bob: corp2_id.account2_id
  analysis_runners:
    alice:
      data_providers:
        bob:
          data_offerings:
          - id: bob_data_v1
      templates:
      - id: alice_test_template_2026_01_12_V1
  $$,
  'APP_WH'
);
Copy

アクセス要件

SAMOOHA_APP_ROLE ロールを使用していない場合は、次のプロシージャを呼び出して権限を付与されたロールを使用する必要があります。

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('CREATE COLLABORATION', 'role name')

    ``auto-join-warehouse``パラメーターを指定し、SAMOOHA_APP_ROLE以外のロールを使用する場合、そのロールにはEXECUTETASKアカウントレベルの権限も付与されている必要があります。

追加の必要なロール権限については、GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE を参照してください。


TEARDOWN

スキーマ:

COLLABORATION

すべての関係者のコラボレーションを削除するために、所有者によって呼び出されます。

**このプロシージャは2回呼び出す必要があります。**1回呼び出した後、LOCAL_DROP_PENDING が返されるまで GET_STATUS を呼び出し、その後、このプロシージャを再度呼び出します。

注釈

このプロシージャは、自分が作成して参加したコラボレーションに対してのみ呼び出すことができます。コラボレーションを作成したが、まだ参加していない場合は、コラボレーションを破棄する前に参加する必要があります。

構文

TEARDOWN( <collaboration_name> )
Copy

引数

collaboration_name

削除するコラボレーションの名前。

戻り値

文字列の成功メッセージ。

-- Start the process.
CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.COLLABORATION.TEARDOWN($collaboration_name);

-- Call until it returns LOCAL_DROP_PENDING.
CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.COLLABORATION.GET_STATUS($collaboration_name);

-- Final call.
CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.COLLABORATION.TEARDOWN($collaboration_name);
Copy

アクセス要件

SAMOOHA_APP_ROLE ロールを使用していない場合、以下のプロシージャのいずれかを呼び出して権限を付与されたロールを使用する必要があります。

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('CREATE COLLABORATION', 'role name')

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('JOIN COLLABORATION', 'role name')

追加の必要なロール権限については、GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE を参照してください。


GET_STATUS

スキーマ:

COLLABORATION

指定されたコラボレーションのすべてのコラボレーターに関する情報を表示します。

コラボレーションの作成や参加などの非同期操作を実行した場合は、それらの操作が完了したことを確認してから、そのコラボレーションで追加のアクション(分析の実行など)を実行する必要があります。このプロシージャは、コラボレーションに招待された人は誰でも呼び出すことができます。

コラボレーションの所有者は、以下のステータスパスを表示できます。

  • CREATING|ra|CREATED|ra|INSTALLING|ra|IN_REVIEW(またはINSTALLATION_FAILED)|ra|JOINING|ra|JOINED(またはJOIN_FAILED)

非所有者には、以下のステータスパスが表示されます。

  • INSTALLING|ra|IN_REVIEW(またはINSTALLATION_FAILED)|ra|JOINING|ra|JOINED(またはJOIN_FAILED)

構文

GET_STATUS( <collaboration_name> )
Copy

引数

collaboration_name

ステータスを確認するコラボレーションの名前。コラボレーションのリストを表示するには、COLLABORATION.VIEW_COLLABORATIONS を呼び出します。GET_STATUS を呼び出すには、コラボレーションに招待されているか、参加している必要があります。

戻り値

指定されたコラボレーションの全コラボレーターの最新の参加試行の詳細を示すテーブル。テーブルには、次の列が含まれています。

  • UPDATED_ON:システムからステータスが報告されたときのタイムスタンプ。

  • COLLABORATOR_ACCOUNT:このコラボレーターのデータ共有アカウント ID。

  • COLLABORATOR_NAME:コラボレーション仕様で宣言されている、コラボレーターのエイリアス。

  • COLLABORATOR_ROLES:このコラボレーターの実際のロールと潜在的なロール。値は、ownerdata_provideranalysis_runner などです。

  • STATUS:更新時のステータス。以下の値がサポートされており、指定されたコラボレーションにおける名前付きコラボレーターのステータスが表示されます。

    • CREATING:コラボレーションの作成が開始されました。

    • CREATE_FAILED:コラボレーションの作成に失敗しました。

    • CREATED:コラボレーションが作成され、操作する準備ができました。

    • INSTALLING:アプリケーションパッケージをインストールし、レビューのためにコラボレーションの詳細を準備します。

    • IN_REVIEW:コラボレーションはレビュー中です。

    • INSTALLATION_FAILED:インストールに失敗しました。アプリケーションパッケージはインストールされておらず、レビューできません。

    • INVITED:参加者が招待されました。

    • REVIEWING:コラボレーションを現在確認中。

    • JOINING:参加プロセスが開始されました。

    • JOIN_FAILED:参加プロセスに失敗しました。

    • JOINED:コラボレーションに正常に参加しました。コラボレーションの使用を開始できます。

    • INVITE_STARTED:招待プロセスが開始されました。

    • INVITE_ACCEPTED:招待が受け入れられました。

    • LEAVING:終了プロセスが開始されました。

    • LEAVE_FAILED:終了処理が失敗しました。

    • LEFT:コラボレーションを正常に終了しました。

    • LOCAL_DROP_PENDING:コラボレーションを削除または終了するリクエストを正常に行いました。TEARDOWN または LEAVE を再び呼び出してプロセスを完了してください。

    • DROPPING:削除プロセスが開始されました。

    • DROPPED:正常に削除されました。

    • DROP_FAILED:削除プロセスが失敗しました。

CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.COLLABORATION.GET_STATUS(
  $collaboration_name
);
Copy

アクセス要件

SAMOOHA_APP_ROLE ロールを使用していない場合、以下のプロシージャのいずれかを呼び出して権限を付与されたロールを使用する必要があります。

  • GRANT_PRIVILEGE_ON_OBJECT_TO_ROLE('READ', 'COLLABORATION', 'collaboration name', 'role name')

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('CREATE COLLABORATION', 'role name')

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('JOIN COLLABORATION', 'role name')


ENABLE_EXTERNAL_TABLE_ANALYSIS_FOR_COLLABORATION

スキーマ:

ADMIN

アカウントで分析を実行するために使用される外部テーブルおよび Apache Iceberg™ テーブルを有効化します。分析実行者は、外部テーブルまたはIcebergテーブルを含む分析を実行する前に、これを呼び出す必要があります。このプロシージャは、分析ごとに1回ではなく、コラボレーションごとに1回呼び出します。

構文

ENABLE_EXTERNAL_TABLE_ANALYSIS_FOR_COLLABORATION( <collaboration_name> )
Copy

引数

collaboration_name

コラボレーションの名前。

戻り値

文字列の成功メッセージ。

CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.ADMIN.ENABLE_EXTERNAL_TABLE_ANALYSIS_FOR_COLLABORATION(
  $collaboration_name
);
Copy

アクセス要件

SAMOOHA_APP_ROLE ロールを使用していない場合は、MANAGEFIREWALLCONFIGURATION 権限が付与されたロールを使用してこのプロシージャを呼び出す必要があります。


VIEW_COLLABORATIONS

スキーマ:

COLLABORATION

自分が作成したか、確認できるか、または参加したコラボレーションに関する情報を表示します。

構文

VIEW_COLLABORATIONS()
Copy

引数

なし

戻り値

アクセス可能なすべてのコラボレーションの詳細を一覧表示したテーブル。テーブルには、次の列が含まれています。

  • SOURCE_NAME:コラボレーション仕様の name 値で指定されたコラボレーションの名前。

  • COLLABORATION_NAME:インストールされたコラボレーションの名前。これは、``JOIN``(所有者)または ``REVIEW``(非所有者)の呼び出しによってコラボレーションがインストールされるまで NULL です。

  • OWNER_ACCOUNT:コラボレーションを作成したアカウントのデータ共有 ID。

  • UPDATED_ON:コラボレーションが最後に更新された時刻。

  • COLLABORATION_SPEC:このコラボレーションの仕様(YAML 形式)。これは、コラボレーションの最新バージョンを示しており、コラボレーションが作成された後に追加または削除されたリソースも含まれます。ただし、新規または削除されたテンプレートやデータ提供など、まもなく追加される進行中の更新リクエストが存在する可能性があります。

すべてのコラボレーションを表示します。

CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.COLLABORATION.VIEW_COLLABORATIONS();
Copy

名前で指定されたコラボレーションの仕様を表示します。

CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.COLLABORATION.VIEW_COLLABORATIONS() ->>
SELECT "COLLABORATION_SPEC" FROM $1 WHERE "SOURCE_NAME" = $collaboration_name;
Copy

アクセス要件

SAMOOHA_APP_ROLE ロールを使用していない場合、以下のプロシージャのいずれかを呼び出して権限を付与されたロールを使用する必要があります。

  • GRANT_PRIVILEGE_ON_OBJECT_TO_ROLE('READ', 'COLLABORATION', 'collaboration name', 'role name')

  • GRANT_PRIVILEGE_ON_OBJECT_TO_ROLE('RUN', 'COLLABORATION', 'collaboration name', 'role name')

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('VIEW COLLABORATIONS', 'role name')

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('CREATE COLLABORATION', 'role name')

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('JOIN COLLABORATION', 'role name')


REVIEW

スキーマ:

COLLABORATION

招待されたコラボレーションの詳細を提供します。COLLABORATION.VIEW_COLLABORATIONS を呼び出して、招待されているがまだ参加していないコラボレーションを確認できます。所有者を除くすべてのコラボレーターは、JOIN を呼び出す前に、このプロシージャを呼び出す必要があります。参加済みのコラボレーションでは、このプロシージャを呼び出すことはできません。REVIEW および JOIN を呼び出すときは、同じロールを使用する必要があります。アカウントが所有者と異なるクラウドホスティングリージョンにある場合は、正常な応答が返されるまでこのプロシージャを数回呼び出すことが必要になることがあります。

このプロシージャは、基になるアプリケーションをアカウントにインストールします。

重要な注意点:

  • 所有者は自分のコラボレーションで REVIEW を呼び出すことができません。

  • 所有者以外は全員、JOIN を呼び出す前に REVIEW を呼び出す必要があります。

  • コラボレーションに参加した後は、REVIEW を呼び出せなくなります。

構文

REVIEW( <source_name>, <owner_account> )
Copy

引数

source_name

参加するよう招待されたコラボレーションの名前。コラボレーションのリストを表示するには、COLLABORATION.VIEW_COLLABORATIONS を呼び出します。

owner_account

所有者の データ共有アカウント識別子。これは、COLLABORATION.VIEW_COLLABORATIONS の応答にあります。

戻り値

コラボレーション ID、所有者、コラボレーション仕様を含む、コラボレーションに関する情報のテーブル。

アカウントが 異なるクラウドホスティング地域 にある場合、コラボレーション所有者の REVIEW は追加のセットアップ手順がまだ実行中であることを示すメッセージを返す場合があります。このメッセージが表示された場合は、コラボレーションに関する情報テーブルが返されるまで引き続き REVIEW を呼び出してください。

-- View the collaboration for your own usage.
CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.COLLABORATION.REVIEW(
  $collaboration_name,
  'org1.account1234'
);
Copy

アクセス要件

SAMOOHA_APP_ROLE ロールを使用していない場合、以下のプロシージャのいずれかを呼び出して権限を付与されたロールを使用する必要があります。

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('CREATE COLLABORATION', 'role name')

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('JOIN COLLABORATION', 'role name')

追加の必要なロール権限については、GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE を参照してください。


JOIN

スキーマ:

COLLABORATION

指定されたコラボレーションに参加する非同期メソッド。アクセスできるのは、参加した時点でコラボレーションにリストされているリソースのみであることに注意してください。このプロシージャの実行には時間がかかります。

データをアクティブ化できるコラボレーションに参加するための REGISTERDATAOFFERING アカウント権限を付与されている必要があります(つまり、ご自身は分析実行者であり、コラボレーション仕様に activation_destinations フィールドが含まれています)。アクセス管理 API リファレンスガイド を参照してください。

このプロシージャを実行するときは、アクティブなセカンダリロールを持てません。次の SQL コードを実行してセカンダリロールを無効にします。

USE SECONDARY ROLES NONE;
Copy

コラボレーション作成者以外は全員、このプロシージャを呼び出す前に COLLABORATION.REVIEW を呼び出す必要があります。

このプロシージャは非同期です。GET_STATUS を呼び出して、コラボレーションに正常に参加したことを確認してください。

コラボレーションにリソースを提出する場合、またはコラボレーションでテンプレートを実行したい場合は、まずコラボレーションに参加する必要があります。``INITIALIZE``を呼び出すと、(``auto_join_warehouse``が提供されていない限り)コラボレーション作成者は自動的に参加します。

構文

JOIN( <collaboration_name> )
Copy

引数

collaboration_name

参加するコラボレーションの名前。コラボレーションのリストを表示するには、COLLABORATION.VIEW_COLLABORATIONS を呼び出します。同じ名前の複数のコラボレーションに参加するように招待されている場合、デフォルトでは最後に COLLABORATION.REVIEW を呼び出したコラボレーションが呼び出されます。

戻り値

文字列の成功メッセージ。「参照使用許可がありません」というエラーが表示された場合は、トラブルシューティングガイド を参照してください。

CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.COLLABORATION.JOIN(
  $collaboration_name
);
Copy

アクセス要件

SAMOOHA_APP_ROLE ロールを使用していない場合、以下のプロシージャのいずれかを呼び出して権限を付与されたロールを使用する必要があります。

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('CREATE COLLABORATION', 'role name')

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('JOIN COLLABORATION', 'role name')

追加の必要なロール権限については、GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE を参照してください。


LEAVE

スキーマ:

COLLABORATION

参加したコラボレーションを終了します。コラボレーションを終了した後は、そのコラボレーションに再度参加することはできません。

**このプロシージャは2回呼び出す必要があります。**1回呼び出した後、LOCAL_DROP_PENDING が返されるまで GET_STATUS を呼び出し、その後、このプロシージャを再度呼び出します。

構文

LEAVE( <collaboration_name> )
Copy

引数

collaboration_name

終了するコラボレーションの名前。

戻り値

文字列の成功メッセージ。

-- Start the process.
CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.COLLABORATION.LEAVE($collaboration_name);

-- Call until it returns LOCAL_DROP_PENDING.
CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.COLLABORATION.GET_STATUS($collaboration_name);

-- Final call.
CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.COLLABORATION.LEAVE($collaboration_name);
Copy

アクセス要件

SAMOOHA_APP_ROLE ロールを使用していない場合、以下のプロシージャのいずれかを呼び出して権限を付与されたロールを使用する必要があります。

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('CREATE COLLABORATION', 'role name')

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('JOIN COLLABORATION', 'role name')

追加の必要なロール権限については、GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE を参照してください。

分析とアクティベーションの実行

RUN

スキーマ:

COLLABORATION

データクリーンルームで分析を実行します。実行の詳細は個々のパラメーターとして渡すか、分析 YAML 仕様文字列 で渡すことができます。

データクリーンルームでのテンプレート実行の背景情報については、consumer.run_analysis 参照をお読みください。

このプロシージャには2つのバージョンがあります。1つは実行引数を単一の YAML 形式の文字列として受け取るもので、もう1つは、引数を個々のパラメーターとして受け取るものです。

YAML 引数構文

RUN( <collaboration_name>, <analysis_spec> )
Copy
引数
collaboration_name

この分析を実行するコラボレーションの名前。

analysis_spec

YAML 形式の文字列としての 分析定義。この分析で使用するテンプレート、テーブル、およびテンプレート値が記述されています。

明示的なパラメーター構文

RUN( <collaboration_name>, <template_id>, <template_view_names>, <local_template_view_names>, <arguments> )
Copy
引数
collaboration_name

この分析を実行するコラボレーションの名前。

template_id

実行するテンプレートの ID。

template_view_names

分析で使用するソーステーブルの文字列名の配列。VIEW_DATA_OFFERINGS が TEMPLATE_VIEW_NAME 列で返すテーブル名を使用。各エントリの形式は user_alias.data_offering_id.dataset_alias

local_template_view_names

分析で使用する自分のテーブルの文字列 IDs の配列。最初に LINK_LOCAL_DATA_OFFERING を呼び出して、これらのテーブルをリンクする必要があります。

arguments

テンプレートが使用する名前付き引数を含む JSON オブジェクト。ここで、各キーはテンプレート引数名であり、値はその引数の値です。

戻り値

表形式の分析結果。

渡すパラメーターの例:

CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.COLLABORATION.RUN(
  $collaboration_name,
  $template_name,
  ['Provider.data_offering_1_2026_01_12_v0.test_dataset'], -- Tables to pass to source_tables variable.
  [],
  {} -- Template takes no parameters.
);
Copy

アクセス要件

SAMOOHA_APP_ROLE ロールを使用していない場合、以下のプロシージャのいずれかを呼び出して権限を付与されたロールを使用する必要があります。

  • GRANT_PRIVILEGE_ON_OBJECT_TO_ROLE('RUN', 'COLLABORATION', 'collaboration name', 'role name')

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('CREATE COLLABORATION', 'role name')

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('JOIN COLLABORATION', 'role name')


VIEW_ACTIVATIONS

スキーマ:

COLLABORATION

自分がトリガーしてコラボレーターに送信した分析実行、またはコラボレーターがトリガーして自分に送信した分析実行のアクティベーションステータスを表示します。自分自身にデータを送信するアクティベーションリクエストはリストされません。

アクティベーションについて詳しくは、クエリ結果のアクティブ化 を参照してください。

構文

VIEW_ACTIVATIONS( <collaboration_name> )
Copy

引数

collaboration_name

コラボレーションの名前。

戻り値

各アクティベーションの詳細を含むテーブル。テーブルには、次の列が含まれています。

  • UPDATED_ON:ステータスが最後に更新された時刻。

  • SEGMENT_NAME:このアクティベーションを識別するために分析実行者によって割り当てられた任意の文字列。詳細については、 クエリ結果のアクティベーション をご参照ください。

  • ACTIVATION_ID:このアクティベーションリクエストの ID。詳細については、 プロバイダーとコンシューマーのアクティベーション結果を表示する をご参照ください。

  • TEMPLATE_ID:このアクティベーションデータを作成するために使用されたテンプレート。

  • SHARED_BY:分析を実行したコラボレーター。

  • SHARED_WITH:分析データを受け取るコラボレーター。

  • STATUS:アクティベーションのステータス。次の値がサポートされています。

    • PENDING:アクティベーションがリクエストされましたが、処理待ちです。

    • SHARED:アクティベーションデータは処理する準備ができています。PROCESS_ACTIVATION を呼び出して、結果をアカウントに送信してください。

    • FAILED:アクティベーション処理に失敗しました。DETAILS 列の情報を確認してください。

    • PROCESSED:アクティベーション結果がアクティベーションリクエストで指定されたアカウントに送信されました。

  • DETAILS:失敗の詳細(アクティベーションが失敗した場合)。

CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.COLLABORATION.VIEW_ACTIVATIONS(
  $collaboration_name
);
Copy

アクセス要件

SAMOOHA_APP_ROLE ロールを使用していない場合、以下のプロシージャのいずれかを呼び出して権限を付与されたロールを使用する必要があります。

  • GRANT_PRIVILEGE_ON_OBJECT_TO_ROLE('VIEW ACTIVATIONS', 'COLLABORATION', 'collaboration name', 'role name')

  • GRANT_PRIVILEGE_ON_OBJECT_TO_ROLE('RUN', 'COLLABORATION', 'collaboration name', 'role name')

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('CREATE COLLABORATION', 'role name')

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('JOIN COLLABORATION', 'role name')


PROCESS_ACTIVATION

スキーマ:

COLLABORATION

分析実行者が他のコラボレーターのアカウントにデータを送信する場合、そのコラボレーターは PROCESS_ACTIVATION を呼び出してアクティベーションデータをアカウントにインポートする必要があります。コラボレーターは VIEW_ACTIVATIONS を呼び出して、指定されたセグメントのアクティベーションステータスが SHARED であることを出力が示すまで待ち、その後に PROCESS_ACTIVATION を呼び出す必要があります。

構文

PROCESS_ACTIVATION( <collaboration_name>, <segment_name> )
Copy

引数

collaboration_name

コラボレーションの名前。

segment_name

結果テーブルでこのアクティベーションを識別するために割り当てられた任意の文字列。セグメント名は分析クエリで template_configuration.arguments.segment_name を使用して割り当てられます。詳細については、 クエリ結果のアクティベーション をご参照ください。

戻り値

ユーザーが結果を取得できるテーブル名と、結果のために指定されたセグメント名。結果の読み方について詳しくは、クエリ結果のアクティブ化 を参照してください。

CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.COLLABORATION.PROCESS_ACTIVATION(
  $collaboration_name,
  'q1_2025_segment'
);
Copy

アクセス要件

SAMOOHA_APP_ROLE ロールを使用していない場合、以下のプロシージャのいずれかを呼び出して権限を付与されたロールを使用する必要があります。

  • GRANT_PRIVILEGE_ON_OBJECT_TO_ROLE('PROCESS ACTIVATION', 'COLLABORATION', 'collaboration name', 'role name')

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('CREATE COLLABORATION', 'role name')

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('JOIN COLLABORATION', 'role name')

レジストリ管理のプロシージャ

CREATE_REGISTRY

スキーマ:

REGISTRY

テンプレートやデータ提供などのリソースを管理するためのカスタムレジストリを作成します。カスタムレジストリは、レジストリの作成時に指定した単一の型のリソースを保存できます。

カスタムレジストリを使用して、デフォルトのローカルレジストリとは別に、関連リソースをグループ化できます。このレジストリにリソースを追加するには、オプションのレジストリ名パラメーターを使用します。

構文

CREATE_REGISTRY( '<registry_name>', <registry_type> )
Copy

引数

registry_name

作成するレジストリの名前。アカウント内のすべてのレジストリで一意の名前にする必要があります。

registry_type

このレジストリに含まれるリソースの型。サポートされている値: TEMPLATEDATA OFFERING

戻り値

文字列の成功メッセージ。

CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.REGISTRY.CREATE_REGISTRY(
  'my_custom_registry',
  'TEMPLATE'
);
Copy

アクセス要件

SAMOOHA_APP_ROLE ロールを使用していない場合は、次のプロシージャを呼び出して権限を付与されたロールを使用する必要があります。

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('CREATE REGISTRY', 'role name')


DROP_REGISTRY

スキーマ:

REGISTRY

カスタムレジストリをドロップし、それが含まれるすべてのオブジェクトの登録を解除します。自分が作成したレジストリのみをドロップできます。

構文

DROP_REGISTRY( '<registry_name>' )
Copy

引数

registry_name

ドロップするレジストリの名前。

戻り値

文字列の成功メッセージ。

CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.REGISTRY.DROP_REGISTRY(
  'my_custom_registry'
);
Copy

アクセス要件

SAMOOHA_APP_ROLE ロールを使用していない場合は、次のプロシージャを呼び出して権限を付与されたロールを使用する必要があります。

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('CREATE REGISTRY', 'role name')

アクセス管理のプロシージャ

SAMOOHA_APP_ROLE ロールはすべての DCR Collaboration API プロシージャへのアクセスを付与します。しかし、管理者が特定のロールによりきめ細かい権限を付与したい場合は、このセクションで説明する手順でロールを作成し、それに特定の権限を付与できます。

アクセスを付与する方法について詳しくは、DCR Collaboration API へのアクセスを管理する を参照してください。

次の手順を使用して、Snowflake Data Clean Room Collaboration API へのアクセスをきめ細かく管理できます。

GRANT_PRIVILEGE_ON_OBJECT_TO_ROLE

スキーマ:

ADMIN

特定のオブジェクト上で特定のプロシージャを呼び出す権限を特定のロールに付与します。オブジェクトの型は、OBJECT_TYPE 引数を使用して定義されます。

このプロシージャを複数回呼び出すことで、同じロールに複数の権限を付与できます。このプロシージャは、オブジェクトを所有するロールを使用して実行してください。

構文

GRANT_PRIVILEGE_ON_OBJECT_TO_ROLE(
  <privilege>,
  <object_type>,
  <object_name>,
  <account_role_name> )
Copy

引数

privilege

このロールに付与する必要がある権限。どの権限がどのオブジェクトに対して利用可能かについては、以下のテーブルをご参照ください。

object_type

このロールに権限を付与するオブジェクトの型。サポートされている値:

  • COLLABORATION

  • REGISTRY

object_name

オブジェクトの仕様で指定された、オブジェクトの ID。

account_role_name

付与されるロール。

次の権限とオブジェクト型の組み合わせがサポートされています。

権限

オブジェクト型

有効化済みプロシージャ

READ

COLLABORATION

VIEW_COLLABORATIONSGET_STATUSVIEW_DATA_OFFERINGSVIEW_UPDATE_REQUESTSVIEW_TEMPLATES

RUN

COLLABORATION

RUNVIEW_ACTIVATIONSVIEW_COLLABORATIONS

UPDATE

COLLABORATION

LINK_DATA_OFFERINGUNLINK_DATA_OFFERINGLINK_LOCAL_DATA_OFFERINGUNLINK_LOCAL_DATA_OFFERINGADD_TEMPLATE_REQUESTREMOVE_TEMPLATEAPPROVE_UPDATE_REQUESTREJECT_UPDATE_REQUESTENABLE_TEMPLATE_AUTO_APPROVALDISABLE_TEMPLATE_AUTO_APPROVALVIEW_UPDATE_REQUESTS

READ

REGISTRY

カスタムレジストリ に登録されているリソースを表示します。

REGISTER

REGISTRY

テンプレートやデータ提供などのリソースを カスタムレジストリ に登録します。

戻り値

文字列の成功メッセージ。

この例では、my_collaboration という名前のコラボレーションで分析を実行するためにアナリストが使用するロールを作成し、ユーザーに割り当てます。

USE ROLE role_that_created_this_collaboration;

CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.ADMIN.GRANT_PRIVILEGE_ON_OBJECT_TO_ROLE(
  'RUN',
  'COLLABORATION',
  $collaboration_name,
  'collaborator_analyst_role'
);
GRANT ROLE collaborator_analyst_role to USER alexander_hamilton;
Copy

アクセス要件

オブジェクトで GRANT_PRIVILEGE_ON_OBJECT_TO_ROLE を呼び出すには、そのオブジェクトを作成したときと同じロールを使用する必要があります。


GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE

スキーマ:

ADMIN

ロールにアカウントレベルの権限を付与します。このプロシージャにより、そのロールを使用するすべてのユーザーが、その権限にリストされているプロシージャを呼び出せるようになります。

構文

GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE( <privilege>, <account_role_name> )
Copy

引数

privilege

このロールに付与する権限。以下の文字列値がサポートされています。

  • JOIN COLLABORATION:COLLABORATION.JOIN および以下のプロシージャを参加済みコラボレーションで実行するための権限を付与します。

    • ADMIN.GRANT_PRIVILEGE_ON_OBJECT_TO_ROLE

    • COLLABORATION.ADD_TEMPLATE_REQUEST

    • COLLABORATION.APPROVE_UPDATE_REQUEST

    • COLLABORATION.ENABLE_TEMPLATE_AUTO_APPROVAL

    • COLLABORATION.DISABLE_TEMPLATE_AUTO_APPROVAL

    • COLLABORATION.REMOVE_TEMPLATE

    • COLLABORATION.GET_STATUS

    • COLLABORATION.LEAVE

    • COLLABORATION.LINK_DATA_OFFERING

    • COLLABORATION.LINK_LOCAL_DATA_OFFERING

    • COLLABORATION.PROCESS_ACTIVATION

    • COLLABORATION.REJECT_UPDATE_REQUEST

    • COLLABORATION.REVIEW

    • COLLABORATION.RUN

    • COLLABORATION.TEARDOWN

    • COLLABORATION.UNLINK_DATA_OFFERING

    • COLLABORATION.UNLINK_LOCAL_DATA_OFFERING

    • COLLABORATION.VIEW_ACTIVATIONS

    • COLLABORATION.VIEW_COLLABORATIONS

    • COLLABORATION.VIEW_DATA_OFFERINGS

    • COLLABORATION.VIEW_TEMPLATES

    • COLLABORATION.VIEW_UPDATE_REQUESTS

    • REGISTRY.VIEW_REGISTERED_DATA_OFFERINGS

    • REGISTRY.VIEW_REGISTERED_TEMPLATES

    この権限では、次のアカウントレベル権限をロールに手動で付与する必要があります。

    • APPLY ROW ACCESS POLICY

    • CREATE APPLICATION

    • CREATE DATABASE

    • CREATE に LISTING

    • CREATE SHARE

    • IMPORT SHARE

    • MANAGE SHARE TARGET

  • CREATE COLLABORATION:COLLABORATION.INITIALIZE、そして ``JOIN COLLABORATION``で許可されているすべてのプロシージャを、参加済みコラボレーションに対して実行するための権限を付与します。次のアカウントレベル権限を、ロールに手動で付与する必要があります。

    • APPLY ROW ACCESS POLICY

    • CREATE APPLICATION

    • CREATE DATABASE

    • CREATE に LISTING

    • CREATE SHARE

    • IMPORT SHARE

    • MANAGE SHARE TARGET

    • EXECUTETASK(INITIALIZEプロシージャで自動参加を使用する場合)

  • VIEW COLLABORATIONS:COLLABORATION.VIEW_COLLABORATIONS を実行するための権限を付与します。次の権限をロールに手動で付与する必要があります。

    • IMPORT SHARE

  • REGISTER DATA OFFERING:REGISTRY.REGISTER_DATA_OFFERING を実行するための権限を付与します。アクティベーションを実装するコラボレーションに分析実行者が参加するためには、この権限が必須です。

  • VIEW REGISTERED DATA OFFERINGS:REGISTRY.VIEW_REGISTERED_DATA_OFFERINGS を実行するための権限を付与します。

  • VIEW REGISTERED TEMPLATES:REGISTRY.VIEW_REGISTERED_TEMPLATES を実行するための権限を付与します。

  • REGISTER TEMPLATE:REGISTRY.REGISTER_TEMPLATE を実行するための権限を付与します。

  • CREATE REGISTRY:REGISTRY.CREATE_REGISTRY および REGISTRY.DROP_REGISTRY を実行するための権限、およびカスタムレジストリからの読み取り権限を付与します。

  • MANAGE LISTING AUTO FULFILLMENT:コラボレーターが他のクラウドホスティングリージョンのコラボレーションに参加するための権限を付与します。詳細については、 クロスクラウド自動フルフィルメントの有効化 をご参照ください。

account_role_name

アカウントレベルのロールの名前。

戻り値

文字列の成功メッセージ。

USE ROLE ACCOUNTADMIN;
CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.ADMIN.GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE(
  'REGISTER DATA OFFERING',
  'COLLABORATOR_ANALYST_ROLE'
);
Copy

アクセス要件

このプロシージャを実行するには、ACCOUNTADMIN ロールが必要です。