Snowflakeデータクリーンルーム:プロバイダーAPIリファレンスガイド

このページでは、クリーンルームAPIコンシューマーがクリーンルームの管理に使用するプロシージャについて説明します。コードの設定の手順については、:ref:`label-cleanrooms_coding_setup`をご参照ください。

クリーンルームの作成、構成、削除

これらの手順により、プロバイダーはクリーンルームを作成、構成、削除することができます。

view_cleanrooms

スキーマ:

PROVIDER

説明: このプロバイダーアカウントによって作成されたすべての既存のクリーンルームをリストします。

引数: なし

戻り値: (テーブル) このプロバイダーアカウントが作成したクリーンルームのリスト。クリーンルームは、コンシューマーと共有したり、インストールしたり、使用したりする必要はありません。削除されたクリーンルームはデータベースから削除され、このリストには表示されません。

例:

CALL samooha_by_snowflake_local_db.provider.view_cleanrooms();
Copy

describe_cleanroom

スキーマ:

PROVIDER

説明: テンプレート、結合ポリシー、列ポリシー、コンシューマーなど、クリーンルームに関する情報の概要を取得します。

引数:

  • cleanroom_name (文字列) - 情報を取得するクリーンルームの名前。

戻り値: (文字列) クリーンルームのメタデータの要約。

例:

CALL samooha_by_snowflake_local_db.provider.describe_cleanroom($cleanroom_name);
Copy

cleanroom_init

スキーマ:

PROVIDER

**説明:**アカウントに指定された名前のクリーンルームを作成します。このプロシージャの実行には1分以上かかることがあります。``create_or_update_cleanroom_listing``を呼びだすまで、クリーンルームはクリーンルームUIまたはコラボレーターから確認できません。

引数:

  • cleanroom_name (文字列) - クリーンルーム名、最大80文字。有効な文字::code:`[A-Z,a-z,0-9,_]`とスペース。

  • distribution - (文字列、オプション)以下の値のいずれか。

    • INTERNAL(デフォルト) - クリーンルームは同じ組織のユーザーだけに公開され、:ref:`デフォルトバージョンを変更する<label-dcr_provider_set_default_release_directive>`前にセキュリティスキャンをトリガーしません。

    • EXTERNAL - クリーンルームは実稼働準備が整っており、組織外との共有も可能です。クリーンルームは:ref:`デフォルトバージョンの変更<label-dcr_provider_set_default_release_directive>`前にセキュリティスキャンをトリガーします。クリーンルーム作成後に配布を変更したい場合は、ここに示すように``ALTER PACKAGE``を呼び出します。

      ALTER APPLICATION PACKAGE samooha_cleanroom_<CLEANROOM_ID>
        SET DISTRIBUTION = EXTERNAL;
      
      Copy

戻り値: (String) 成功メッセージ。

例:

-- Create an internal clean room
CALL samooha_by_snowflake_local_db.provider.cleanroom_init($cleanroom_name, 'INTERNAL');
Copy

set_default_release_directive

スキーマ:

PROVIDER

**説明:**共同作業者がクリーンルーム UI で新しいブラウザセッションを開始するとき、または API からクリーンルームにアクセスするときにロードされるクリーンルームのバージョンとパッチを指定します。これは、クリーンルームをコンシューマーと共有する前に呼び出す必要があります。

クリーンルームアプリケーションは、Pythonコードをアップロードまたは変更するたびに、クリーンルームの新しいバージョンを作成します。ユーザーに最新バージョンを提供したい場合は、新しいバージョン番号を指定してこのプロシージャを呼び出してください。利用可能なバージョンとそのステータス、または現在のリリースディレクティブを見るには、適切なSQLコマンドを実行してください。

-- See all versions, including failed versions.
SHOW VERSIONS IN APPLICATION PACKAGE SAMOOHA_CLEANROOM_<cleanroom_name>;

-- See current release directive.
SHOW RELEASE DIRECTIVES IN APPLICATION PACKAGE SAMOOHA_CLEANROOM_<cleanroom_name>;
Copy

``<cleanroom_name>``は、:ref:`この形式<label-dcr_about_clean_room_names>`に従います。

すべてのクリーンルームは、以下のバージョンとパッチ番号で作成されます。

  • バージョン:V1_0

  • パッチ:0

注釈

クリーンルーム分布が EXTERNAL にセットされている場合、このプロシージャは、クリーンルームのセキュリティスキャンが APPROVED 状態に移行した後にのみ呼び出すことができます。セキュリティステータスを確認するには、``view_cleanroom_scan_status``を呼び出します

引数:

  • cleanroom_name (文字列) - クリーンルーム名。

  • version -(文字列)バージョン。常に「V1_0」でなければなりません。

  • patch - (文字列)コンシューマーによってロードされたパッチ番号。これは0から始まり、新しいクリーンルームのバージョンが利用可能になるたびにインクリメントする必要があります。上記のように利用可能なバージョンが表示されます。

戻り値: (String) 成功メッセージ。

例:

CALL samooha_by_snowflake_local_db.provider.set_default_release_directive(
  $cleanroom_name,
  'V1_0', '0'
);
Copy

drop_cleanroom

スキーマ:

PROVIDER

**説明:**クリーンルームを削除します。クリーンルームをインストールしたコラボレーターは、クリーンルームへのアクセスや使用ができなくなります。次回ブラウザを更新したときに、クリーンルームはクリーンルーム UI に表示されなくなります。

引数:

  • cleanroom_name (文字列) - 削除するクリーンルームの名前。

戻り値: (String) 成功メッセージ。

例:

CALL samooha_by_snowflake_local_db.provider.drop_cleanroom($cleanroom_name);
Copy

enable_consumer_run_analysis

スキーマ:

PROVIDER

説明: コンシューマーがクリーンルームで分析を実行できるようにします。この機能はすべての新しいクリーンルームでデフォルトで有効になっているため、クリーンルームのコンシューマーが実行する分析を明示的に無効にした場合のみ、このプロシージャを実行する必要があります。

引数:

  • cleanroom_name (文字列) - コンシューマーが実行する分析を許可するクリーンルームの名前。

  • consumer_accounts - (文字列の配列)この機能を有効にする全コンシューマーのアカウントロケーター。**NOTE:**これらのコンシューマーは、クリーンルームに既に追加されている必要があります。

戻り値: (String) 成功メッセージ。

例:

CALL samooha_by_snowflake_local_db.provider.enable_consumer_run_analysis(
  $cleanroom_name,
  ['<CONSUMER_ACCOUNT_LOCATOR_1>']
);
Copy

disable_consumer_run_analysis

スキーマ:

PROVIDER

説明: 指定されたコンシューマーが指定されたクリーンルームで分析を実行できないようにします。デフォルトでは、すべてのコンシューマーがクリーンルームで分析を実行できます。

引数:

  • cleanroom_name (文字列) - コンシューマーが実行する分析を無効にしているクリーンルーム。

  • consumer_accounts - (文字列の配列)このクリーンルームで分析を実行できないコンシューマーのアカウントロケーター。**NOTE:**これらのコンシューマーは、既にクリーンルームに追加されている必要があります。

戻り値: (String) 成功メッセージ。

例:

CALL samooha_by_snowflake_local_db.provider.disable_consumer_run_analysis(
  $cleanroom_name,
  ['<CONSUMER_ACCOUNT_LOCATOR_1>']
);
Copy

is_consumer_run_enabled

スキーマ:

LIBRARY

説明: このクリーンルームがコンシューマーが実行する分析を許可しているかどうかをチェックします。

引数:

  • cleanroom_name (文字列) - チェックするクリーンルームの名前。

戻り値: (文字列) このクリーンルームがコンシューマーが実行する分析を許可しているかどうか。

例:

CALL samooha_by_snowflake_local_db.library.is_consumer_run_enabled($cleanroom_name)
Copy

create_or_update_cleanroom_listing

スキーマ:

PROVIDER

説明: 新しいクリーンルームを公開、または既存のクリーンルームを更新します。変更がコンシューマーに確実に伝播されるように、クリーンルームに変更を加えるたびに、このメソッドを呼び出す必要があります。

クリーンルームを初めて公開する場合、クリーンルームがクリーンルーム UI に表示されるまでに時間がかかることがあります(最大15分)。

クリーンルームを更新した後でこのメソッドを呼び出さない場合、コンシューマーに変更が伝播される保証はありません。

1つのアカウントで作成できるクリーンルームとコラボレーターの数には制限があります。テストクリーンルームをあまりにも多く作成した場合、新しいクリーンルームを作成するためにいくつか削除する必要がある場合があります。アカウントで保持できる以上のクリーンルームが必要な場合は、Snowflakeサポートにお問い合わせください。

注釈

このプロシージャを呼び出す前に、少なくとも一度はリリース指令をセットする必要があります。詳細については、:ref:`provider.set_default_release_directive<label-dcr_provider_set_default_release_directive>`を参照ください。

引数:

  • cleanroom_name (文字列) - 公開または更新するクリーンルームの名前。

戻り値: (String) 成功メッセージ。

エラー処理:

「このアカウントではクロスクラウド自動フルフィルメントが有効になっていません」というエラーが表示された場合は、コンシューマーの1人が別のクラウドホスティングリージョンにあることを意味します。:doc:`/user-guide/cleanrooms/enabling-laf`の説明に従って、クロスクラウドの自動フルフィルメントを有効にする必要があります。

例:

CALL samooha_by_snowflake_local_db.provider.create_or_update_cleanroom_listing(
  $cleanroom_name
);
Copy

データの登録および登録解除

以下のコマンドを使用して、データベース、スキーマ、オブジェクトの登録および登録解除を行います。テーブルとビューは、クリーンルームにリンクする前に登録する必要があります。データベースまたはスキーマを登録すると、そのデータベースまたはスキーマ内のすべてのオブジェクトが登録されます。データ登録の詳細についてご参照ください。

register_db

スキーマ:

PROVIDER

**説明:**データベースとその中のすべてのオブジェクトを、このクリーンルーム環境の個々のクリーンルームにリンクできるようにします。このプロシージャは、 USAGE と SELECT のデータベース権限を SAMOOHA_APP_ROLE に付与し、これはクリーンルーム環境がデータにアクセスするために使用されます。

このプロシージャを呼び出すには、データベースへの MANAGE GRANTS アクセスが必要です。このクリーンルーム環境にいる他のプロバイダーは、 SELECT の権限を必要とせずに、これらのオブジェクトを自分のクリーンルームにリンクすることができます。

重要

このプロシージャは、呼び出された後に作成されたオブジェクトは登録しません。新しいオブジェクトがデータベースに追加され、それらも登録したい場合は、このプロシージャを再度呼び出す必要があります。

引数:

  • db_name - (文字列)登録するデータベース名。

戻り値: (String) 成功メッセージ。

例:

USE ROLE <role_with_manage_grants>;
CALL samooha_by_snowflake_local_db.provider.register_db('SAMOOHA_SAMPLE_DATABASE');
Copy

register_schema

スキーマ:

LIBRARY

説明: ``register_db``と似ていますが、スキーマレベルで操作します。このプロシージャを呼び出すには、スキーマに MANAGE GRANTS 権限が必要です。

このプロシージャは、クリーンルーム環境でデータアクセスに使用されるスキーマ上の USAGE および SELECT 権限を SAMOOHA_APP_ROLE に付与します。

マネージドアクセススキーマ(つまり、WITH MANAGED ACCESSパラメーターを使用して作成されたスキーマ)を登録したい場合は、代わりに``library.register_managed_access_schema``を使用します。

重要

このプロシージャは、呼び出された後に作成されたオブジェクトは登録しません。新しいオブジェクトがデータベースに追加され、それらも登録したい場合は、このプロシージャを再度呼び出す必要があります。

引数:

  • schema_name - (文字列の配列)登録する1つ以上の完全修飾スキーマ名の配列。

戻り値: (String) 成功メッセージ。

例:

USE ROLE <role_with_manage_grants>;
CALL samooha_by_snowflake_local_db.library.register_schema(['SAMOOHA_SAMPLE_DATABASE.DEMO']);
Copy

register_managed_access_schema

スキーマ:

LIBRARY

説明: ``register_schema``と似ていますが、WITH MANAGED ACCESSパラメーターを使用して作成されたスキーマを登録します。このプロシージャを呼び出すには、スキーマに MANAGE GRANTS 権限が必要です。

このプロシージャは、管理スキーマの使用権限を SAMOOHA_APP_ROLE に付与します。これは、クリーンルーム環境がデータにアクセスするために使用されます。

重要

このプロシージャは、呼び出された後に作成されたオブジェクトは登録しません。新しいオブジェクトがデータベースに追加され、それらも登録したい場合は、このプロシージャを再度呼び出す必要があります。

引数:

  • schema_name - (文字列の配列)1つ以上の完全修飾スキーマ名の配列。

戻り値: (String) 成功メッセージ。

例:

USE ROLE <role_with_manage_grants>;
CALL samooha_by_snowflake_local_db.library.register_managed_access_schema(
  ['SAMOOHA_SAMPLE_DATABASE.DEMO']
);
Copy

register_objects

スキーマ:

LIBRARY

説明: provider.link_datasets``を呼び出すことで、クリーンルームにすべてのタイプのテーブルとビューへのアクセスを付与し、それらをクリーンルームにリンクできるようにします。 ``library.register_schemalibrary.register_managed_access_schema``provider.register_db``のいずれかを呼び出すことで、より広範なオブジェクトグループを登録できます。

このプロシージャは、 SAMOOHA_APP_ROLE にオブジェクトの使用権限を付与します。これは、クリーンルーム環境がデータにアクセスするために使用されます。

このプロシージャを呼び出すには、オブジェクトに MANAGE GRANTS 権限が必要です。このプロシージャはデータベースの登録には使用できません。

別のデータベースのオブジェクトから作成されたビューを登録する場合は、ソースオブジェクトへのアクセス許可をネイティブアプリケーションにも付与する必要があります。

引数:

  • object_names - (配列)完全修飾オブジェクト名の配列。これらのオブジェクトは、クリーンルームにリンクすることができます。

戻り値: (String) 成功メッセージ。

テーブルとビューを登録するには

USE ROLE <role_with_manage_grants>;
CALL samooha_by_snowflake_local_db.library.register_objects(
  [
    'SAMOOHA_SAMPLE_DATABASE.DEMO.CUSTOMERS',
    'SAMOOHA_SAMPLE_DATABASE.INFORMATION_SCHEMA.FIELDS'
  ]
 );
Copy

enable_external_tables_on_account

スキーマ:

LIBRARY

**説明:**このアカウントのすべてのクリーンルームでIcebergまたは外部テーブルの使用を有効にします。ACCOUNTADMINによりプロバイダーアカウントとコンシューマーアカウントの:emph:`両方`で呼び出して、:emph:`いずれの`アカウントからもIcebergまたは外部テーブルにリンクできるようにする必要があります。この機能をこのアカウントの特定のクリーンルームに制限するには、代わりに``enable_external_tables_for_cleanroom``を呼び出します。

成功し、すべてのセキュリティスキャンが合格した場合、クリーンルームの:doc:`新しいパッチバージョン </user-guide/cleanrooms/dcr-versions>`が生成されます。

引数: なし

戻り値: (文字列) 成功メッセージ。成功すると、セキュリティスキャンがトリガーされ、セキュリティスキャンが成功した場合に生成されるパッチ番号も提供されます。

例:

USE ROLE ACCOUNTADMIN;
CALL samooha_by_snowflake_local_db.library.enable_external_tables_on_account();
Copy

enable_external_tables_for_cleanroom

スキーマ:

PROVIDER

説明: Icebergまたは外部テーブルが、プロバイダーの指定するこのアカウントの特定のクリーンルームにリンクできるようにします。このアカウントのすべてのクリーンルームについてIcebergと外部テーブルを許可するには、代わりに``enable_external_tables_on_account``を呼び出します。

成功すると、これはクリーンルームの:doc:`新しいパッチバージョン</user-guide/cleanrooms/dcr-versions>`を生成します。

引数:

  • cleanroom_name (文字列) - プロバイダーがIcebergや外部テーブルをリンクできるクリーンルームの名前。

戻り値: (文字列) 成功メッセージ。成功すると、セキュリティスキャンがトリガーされ、セキュリティスキャンが成功した場合に生成されるパッチ番号も提供されます。

例:

CALL samooha_by_snowflake_local_db.provider.enable_external_tables_for_cleanroom(
  $cleanroom_name);
Copy

unregister_db

スキーマ:

LIBRARY

説明: ``register_db``プロシージャを取り消し、SAMOOHA_APP_ROLEロールとSnowflakeデータクリーンルームネイティブアプリケーションに与えられたデータベースレベルの付与を削除します。これにより、クリーンルーム UI のセレクタからデータベースも削除されます。

引数:

  • db_name - (文字列)登録解除するデータベース名。

戻り値: (String) 成功メッセージ。

例:

USE ROLE <role_with_manage_grants>;
CALL samooha_by_snowflake_local_db.library.unregister_db('SAMOOHA_SAMPLE_DATABASE');
Copy

unregister_schema

スキーマ:

LIBRARY

説明: スキーマの登録を解除し、ユーザーがクリーンルームにテーブルやビューをリンクできないようにします。

マネージドアクセススキーマ(つまり、WITH MANAGED ACCESSパラメーターを使用して作成されたスキーマ)を登録解除したい場合は、代わりに``library.unregister_managed_access_schema``を使用します。

引数:

  • schema_name - (配列)登録解除するスキーマ。

戻り値: (String) 成功メッセージ。

例:

USE ROLE <role_with_manage_grants>;
CALL samooha_by_snowflake_local_db.library.unregister_schema(
  ['SAMOOHA_SAMPLE_DATABASE.DEMO']
);
Copy

unregister_managed_access_schema

スキーマ:

LIBRARY

説明: ``unregister_schema``と似ていますが、WITH MANAGED ACCESSパラメーターを使用して作成されたスキーマを登録解除します。

引数:

  • schema_name - (配列)登録解除する管理スキーマ。

戻り値: (String) 成功メッセージ。

例:

USE ROLE <role_with_manage_grants>;
CALL samooha_by_snowflake_local_db.library.unregister_managed_access_schema(['SAMOOHA_SAMPLE_DATABASE.DEMO']);
Copy

unregister_objects

スキーマ:

LIBRARY

説明: すべてのタイプのテーブルとビューへのクリーンルームのアクセス権を取り消します。このアカウントで管理されているクリーンルームのユーザーは、オブジェクトを利用できなくなります。

引数:

  • object_names - (配列)アクセス権を取り消す完全修飾オブジェクト名の配列。

戻り値: (String) 成功メッセージ。

テーブルとビューの登録を解除するには

USE ROLE <role_with_manage_grants>;
CALL samooha_by_snowflake_local_db.library.unregister_objects(
  [
    'SAMOOHA_SAMPLE_DATABASE.DEMO.CUSTOMERS',
    'SAMOOHA_SAMPLE_DATABASE.INFORMATION_SCHEMA.FIELDS'
  ]
);
Copy

ポリシーの管理

データクリーンルームでの結合ポリシーは、:doc:`Snowflake全体の結合ポリシー</user-guide/join-policies>`とは異なります。クリーンルームの結合ポリシーは、このプロシージャを使用することによってのみセットされます。クリーンルーム以外のテーブルでセットされた結合ポリシーは、クリーンルームでは無視されます。

Learn more about table policies in clean rooms.

set_join_policy

スキーマ:

PROVIDER

Description: Specifies which columns the consumer can join on when running templates within this clean room.

Calling this function completely replaces the old policy with the new one.

Learn more about clean room policies: clean roomテーブルのポリシーを理解する.

重要

結合ポリシーは、テンプレートが``join_policy``または``join_and_column_policy`` JinjaSQLフィルターを適用して行を結合する場合に**のみ**適用されます。

注釈

データクリーンルームでの結合ポリシーは、Snowflake全体の結合ポリシーとは異なります。クリーンルームの結合ポリシーは、このプロシージャを使用することによってのみセットされます。クリーンルーム以外のテーブルでセットされた結合ポリシーは、クリーンルームでは無視されます。

引数:

  • cleanroom_name *(文字列)- 結合ポリシーが強制されるべきクリーンルームの名前。

  • table_and_col_names - (文字列の配列):samp:`{database_name}.{schema_name}.{table_or_view_name}:{column_name}`形式での完全修飾列名。「.」と「:」マークを正しく使用することに注意してください

戻り値: (String) 成功メッセージ。

例:

CALL samooha_by_snowflake_local_db.provider.set_join_policy(
  $cleanroom_name,
  [
    'SAMOOHA_SAMPLE_DATABASE.DEMO.CUSTOMERS:HASHED_EMAIL',
    'MYDB.MYSCH.EXPOSURES:HASHED_EMAIL'
  ]
);
Copy

view_join_policy

スキーマ:

PROVIDER

Description: Shows the provider join policy in the specified clean room.

Learn more about clean room policies: clean roomテーブルのポリシーを理解する.

引数:

  • cleanroom_name (文字列) - クエリするクリーンルームの名前。

戻り値: (テーブル) クリーンルーム内のすべてのテーブルまたはビューの結合可能な行のリスト。

例:

CALL samooha_by_snowflake_local_db.provider.view_join_policy($cleanroom_name);
Copy

set_column_policy

スキーマ:

PROVIDER

Description: Specifies which columns of your data can be projected in templates run by other collaborators.

Calling this function completely replaces the old policy with the new one.

Don't set a column policy on identity columns or columns that contain sensitive data, such as email addresses. You generally don't want this sort of data to be projected.

Queries with wildcards might not be caught by using these checks, so use discretion when you design the analysis template.

Learn more about clean room policies: clean roomテーブルのポリシーを理解する.

引数:

  • cleanroom_name (文字列) - クリーンルームの名前。

  • analysis_and_table_and_cols - (文字列の配列)テンプレートで使用できる列の配列。各列の形式は次のとおりです。template_name:full_table_name:column_name

戻り値: (String) 成功メッセージ。

例:

CALL samooha_by_snowflake_local_db.provider.set_column_policy(
  $cleanroom_name,
  ['prod_overlap_analysis:SAMOOHA_SAMPLE_DATABASE.DEMO.CUSTOMERS:STATUS',
   'prod_overlap_analysis:SAMOOHA_SAMPLE_DATABASE.DEMO.CUSTOMERS:AGE_BAND',
   'prod_overlap_analysis:SAMOOHA_SAMPLE_DATABASE.DEMO.CUSTOMERS:DAYS_ACTIVE']);

 -- Same example, but using a variable name for the template.
CALL samooha_by_snowflake_local_db.provider.set_column_policy(
  $cleanroom_name,
  [$template_name || ':SAMOOHA_SAMPLE_DATABASE.DEMO.CUSTOMERS:STATUS',
   $template_name || ':SAMOOHA_SAMPLE_DATABASE.DEMO.CUSTOMERS:AGE_BAND',
   $template_name || ':SAMOOHA_SAMPLE_DATABASE.DEMO.CUSTOMERS:DAYS_ACTIVE']);
Copy

view_column_policy

スキーマ:

PROVIDER

Description: Shows the provider's column policy in the designated clean room.

Learn more about clean room policies: clean roomテーブルのポリシーを理解する.

引数:

戻り値: (テーブル) どの列をどのテンプレートで使用できるか。

例:

CALL samooha_by_snowflake_local_db.provider.view_column_policy($cleanroom_name);
Copy

プロバイダーテンプレートの管理

以下のコマンドを使用して、このクリーンルームでサポートされているテンプレート/分析を追加します。

view_added_templates

スキーマ:

PROVIDER

説明: クリーンルーム内のプロバイダーが追加したテンプレートを表示します。このプロバイダーのすべてのクリーンルームのすべてのテンプレートをリストする方法はありません。

引数:

  • cleanroom_name (文字列) - クエリするクリーンルーム。

戻り値: (テーブル) - 指定されたクリーンルームで利用可能なテンプレートのリストで、各テンプレートの詳細が記載されています。

例:

CALL samooha_by_snowflake_local_db.provider.view_added_templates($cleanroom_name);
Copy

view_template_definition

スキーマ:

PROVIDER

**説明:**特定のテンプレートに関する情報を表示します。プロバイダーテンプレートを見るコンシューマーは、``consumer.view_template_definition``を使用する必要があります。

引数:

  • cleanroom_name (文字列) - このテンプレートがあるクリーンルームの名前。

  • template_name - (文字列)情報をリクエストするテンプレートの名前。

戻り値 (文字列) テンプレート定義。

例:

CALL samooha_by_snowflake_local_db.provider.view_template_definition(
  $cleanroom_name,
  $template_name);
Copy

add_templates

スキーマ:

PROVIDER

説明: クリーンルームにテンプレートのリストを追加します。これは既存のテンプレートリストを置き換えるものではありません。

引数:

  • cleanroom_name (文字列) - このテンプレートを追加するクリーンルームの名前。

  • template_names - (文字列の配列)追加するテンプレートの名前。Snowflakeが提供するテンプレートのみです。カスタムテンプレートを追加するには、``add_custom_sql_template``を呼び出します。

戻り値: (String) 成功メッセージ。

例:

CALL samooha_by_snowflake_local_db.provider.add_templates(
  $cleanroom_name,
  ['my_custom_template']);
Copy

clear_template

スキーマ:

PROVIDER

説明: クリーンルームから指定されたテンプレートを削除します。

引数:

  • cleanroom_name (文字列) - クリーンルームの名前。

  • template_name - (文字列)クリーンルームから削除するテンプレートの名前。

戻り値: (String) 成功メッセージ。

例:

CALL samooha_by_snowflake_local_db.provider.clear_template(
  $cleanroom_name,
  'prod_custom_template');
Copy

clear_all_templates

スキーマ:

PROVIDER

説明: クリーンルームに追加されたすべてのテンプレートを削除します。

引数:

  • cleanroom_name (文字列) - すべてのテンプレートを削除するクリーンルームの名前。

戻り値: (String) 成功メッセージ。

例:

CALL samooha_by_snowflake_local_db.provider.clear_all_templates($cleanroom_name);
Copy

add_custom_sql_template

スキーマ:

PROVIDER

説明:カスタムJinjaSQLテンプレートをクリーンルームに追加します。これにより、コンシューマーがテンプレートを呼び出せるようになります。カスタムテンプレートの作成方法を学びます。

クリーンルームに複数のカスタムテンプレートを追加するために、この API を複数回呼び出すことができます。このプロシージャは、このクリーンルーム内の同名の以前のテンプレートを上書きします。

コンシューマーが:doc:`プロバイダーに結果を返す</user-guide/cleanrooms/activation>`ためにテンプレートを使用する場合、そのコマンドは以下の要件を満たさなければなりません。

  • カスタムテンプレートの名前は、文字列``activation``で始まる必要があります。例: activation_custom_template

  • テンプレートは``cleanroom.activation_data_``で始まるテーブルを作成する必要があります。例: CREATE TABLE cleanroom.activation_data_analysis_results AS ...

  • テンプレートは、定義で作成されたテーブル名の一意な部分を返す必要があります。これは、``cleanroom.activation_data_``に追加された文字列です。たとえば、``activation_data_analysis_results``というテンプレートの場合、``data_analysis_results``を返します。

引数:

  • cleanroom_name (文字列) - このテンプレートが適用されるクリーンルームの名前。

  • template_name - (文字列)テンプレートの名前。すべて小文字、数字、スペース、またはアンダースコアでなければなりません。アクティベーションテンプレートは、「activation」で始まる名前でなければなりません。

  • template - (文字列)JinjaSQLテンプレート。

  • sensitivity - (Float、オプション)このクリーンルームで差分プライバシーが有効になっている場合、このテンプレートで返されるデータに適用される差分プライバシーノイズの量を制御します。0より大きい数値にする必要があります。デフォルトは1.0です。この引数を有効にするには、差分プライバシータスクがこのクリーンルームで実行されている必要があります。

  • consumer_locators - (文字列の配列、オプション)1つ以上のアカウントロケーターの配列。存在する場合、このテンプレートはこれらのアカウントに対してのみクリーンルームに追加されます。このリストは、後で``provider.restrict_template_options_to_consumers``を呼び出すことで変更できます。 コンシューマーのリストを指定しない場合、すべてのコンシューマーが指定されたクリーンルームでカスタムテンプレートを使用できます。

  • is_obfuscated - (Boolean、オプション)TRUEの場合は、コンシューマーがテンプレート本文を表示できないようにします。難読化テンプレートを実行するには、Snowflake Enterprise Edition以上を使用している必要があることに注意してください。このテンプレートをプロバイダーの実行する分析に使用する場合、``is_obfuscated``状態を変更するたびに、コンシューマーは分析リクエストを再承認する必要があります。``is_obfuscated``は``sensitivity``と併用できません。

戻り値: (String) 成功メッセージ。

例:

CALL samooha_by_snowflake_local_db.provider.add_custom_sql_template(
    $cleanroom_name,
    $template_name,
    $$
SELECT
    IDENTIFIER({{ dimensions[0] | column_policy }})
FROM
    IDENTIFIER({{ my_table[0] }}) c
    INNER JOIN
    IDENTIFIER({{ source_table[0] }}) p
    ON
        IDENTIFIER({{ c.consumer_id  }}) = IDENTIFIER({{ provider_id | join_policy }})
    {% if where_clause %}
      WHERE {{ where_clause | sqlsafe | join_and_column_policy }}
    {% endif %};
    $$);
Copy

add_ui_form_customizations

スキーマ:

PROVIDER

説明: クリーンルームがクリーンルーム UI で実行される際に、クリーンルーム内のテンプレートのカスタマイズフォームを定義します。これは、コンシューマーがテーブルや列などのテンプレートパラメーターを選択できるようにする場合に便利です。最低限、display_name説明``template_information``引数の``methodology``の値を指定する必要があります。

特に列セレクターがテーブル選択に基づいて入力する場合は、列選択要素の前にテーブル選択要素を配置することをお勧めします。

カスタムテンプレートのユーザー入力フォームの設計方法を学びます。

この関数を呼び出した後は、クリーンルームを更新する必要があります。 UIの更新後に``provider.create_or_update_cleanroom_listing``を呼び出さない場合、コラボレーターには更新が表示されません。

引数:

  • cleanroom_name (文字列) - このテンプレートを含むクリーンルームの名前。提出されたフォームは、指定されたクリーンルームの指定されたテンプレートにのみ適用されます。

  • template_name - (文字列)このUIが適用されるテンプレートの名前。これは、``template_information.display_name``フィールドを使用して指定される、ユーザーから見えるタイトルではありません。

  • template_information - (Dict)クリーンルームUIに表示するテンプレートに関するメタ情報。次のプロパティは定義する必要があります。または定義できます。

    • ``display_name``(必須):クリーンルームUI内のテンプレートの表示名。

    • ``description``(必須):テンプレートの説明。

    • ``methodology``(必須):引数の説明、および結果。

    • warehouse_hints (オブジェクト):分析を実行するために使用するウェアハウスのタイプを推奨します。これは以下のフィールドを持つオブジェクトです。

      • warehouse_size:有効な値については、:doc:`/sql-reference/sql/create-warehouse`の*warehouse_size*をご参照ください。

      • snowpark_optimized (Boolean):クエリを処理するために:doc:`Snowpark用に最適化されたウェアハウス </user-guide/warehouses-snowpark-optimized>`を使用するかどうか。ほとんどの機械学習のユースケースで、SnowflakeはTRUEを推奨します。

    • render_table_dropdowns (オブジェクト):クエリで使用するプロバイダーまたはコンシューマーテーブルをユーザーに選択させるデフォルトドロップダウンリストを表示するかどうか。これは以下のフィールドを持つオブジェクトです。

      • render_consumer_table_dropdown - (Boolean) TRUEの場合、デフォルトのコンシューマーテーブルセレクターを表示します。FALSE の場合、コンシューマーテーブルセレクタを非表示にします。テンプレートは、``my_table``テンプレート変数を使って、リストとして選択された値にアクセスできます。任意の要素で``references=CONSUMER_TABLES``が設定される場合、デフォルトはFALSEです。それ以外の場合、デフォルトはTRUEです。

      • render_provider_table_dropdown - (Boolean) TRUEの場合、デフォルトのプロバイダーテーブルセレクターが表示されます。FALSE の場合、プロバイダーテーブルセレクタを非表示にします。テンプレートは、``source_table``テンプレート変数を使って、リストとして選択された値にアクセスできます。任意の要素で``references=PROVIDER_TABLES``が設定される場合、デフォルトはFALSEです。それ以外の場合、デフォルトはTRUEです。

    • activation_template_name - *(文字列)*このクリーンルームのアクティベーションテンプレートの名前。``cleanroom``プレフィックスなしでテンプレート名を使用します。アクティベーションテンプレートについて学びます。

    • enabled_activations - *(文字列)*有効なアクティベーションの種類。可能な値:consumerprovider。 デフォルトなし。``activation_template_name``が指定された場合は提供する必要があります。

  • details - (Dict、オプション)テンプレートに値を渡すユーザー設定可能な入力フィールドを定義します。これはキーとオブジェクトのペアの辞書で、各ペアは1つのフォーム要素を表します。キーは、 JinjaSQL テンプレートにリンクされた利用可能な変数名です。値は、フォーム要素を定義するオブジェクトです。テンプレート変数に同等の形式要素が定義されていない場合、クリーンルームはデフォルトの形式要素を自動生成します。各オブジェクトは以下のフィールドを定義できます。

    <field_name>: {
      ['display_name': <string>,]
      ['order': <number>,]
      ['description': <string>,]
      ['type': <enum>,]
      ['default': <value>,]
      ['choices': <string array>,]
      ['infoMessage': <string>,]
      ['size': <enum>,]
      ['required': <bool>,]
      ['group': <string>,]
      ['references': <array of string>,]
      ['provider_parent_table_field':  <string>,]
      ['consumer_parent_table_field': <string>]
    }
    
    Copy
    • display_name:UIフォーム内のこのアイテムのラベルテキスト。

    • order:この要素がフォームで表示される必要がある1ベースの順序。指定しない場合、要素はオブジェクトに表示される順序でレンダリングされます。

    • description:ラベルの下に表示される要素の目的の説明。簡単なヘルプや例はこちらにあります。提供されていない場合は、何も表示されません。

    • type:UI要素のタイプ。この入力フィールドに*references*が指定されている場合は、このエントリを省略します(タイプが決定されます)。サポートされている値:

      • any (デフォルト)」通常のテキスト入力フィールド。

      • boolean:真偽値セレクター

      • integer:矢印で数字を変更

      • multiselect:ドロップダウンリストから複数の項目を選択

      • dropdown:ドロップダウンリストから1つの項目を選択

      • date:日付セレクター

    • default:この要素のデフォルト値

    • choices*(文字列の配列)*ドロップダウンやマルチセレクト要素の選択肢リスト

    • infoMessage:要素の横に表示される情報ホバーテキスト。提供されていない場合、ツールチップは提供されません。

    • size:要素サイズ。サポートされている値:XSSMLXL

    • required:ユーザーが値を要求するかどうか。TRUEまたはFALSEを指定します。

    • group: グループ名。 UI の項目をグループ化するために使用。UI でグループ化する項目には、同じグループ名を使用します。デフォルトのドロップダウンリストを非表示にする場合、カスタムテンプレートで``{{ source_table }}``と``{{ my_table}}``特別引数を使用し、必要なテーブルを含む独自のドロップダウンリストを定義することができます。カスタムテンプレートを定義する際にこれらの特別な変数を使用する方法については、:ref:`provider.add_custom_sql_template <dcr_provider_add_custom_sql_template>`を参照してください。

    • references:クリーンルーム内の指定されたタイプのテーブルまたは列をドロップダウンリストに入力します。使用する場合、``type``は``multiselect``または``dropdown``のいずれかである必要があります。以下の文字列値がサポートされています。

      • PROVIDER_TABLES:クリーンルーム内のすべてのプロバイダーのテーブルをリストします。指定された場合``render_table_dropdowns.render_provider_table_dropdown``がFALSEである必要があります。

      • PROVIDER_JOIN_POLICY``provider_parent_table_field``要素で現在選択されているテーブルのプロバイダーの結合ポリシーのすべての列をリストします。

      • PROVIDER_COLUMN_POLICY:現在のテンプレートと``provider_parent_table_field``要素で選択されたテーブルのプロバイダーの列ポリシーのすべての列をリストします。

      • PROVIDER_ACTIVATION_POLICY:プロバイダーのアクティベーションポリシーのすべての列をリストします。

      • CONSUMER_TABLES:クリーンルーム内のすべてのコンシューマーテーブルをリストします。指定された場合``render_table_dropdowns.render_consumer_table_dropdown``はFALSEである必要があります。

      • CONSUMER_COLUMNS:``consumer_parent_table_field``で指定されたコンシューマーテーブルのすべての列をリストします。プロバイダーが実行するテンプレートではコンシューマー列参照を使用しないでください。 コンシューマーがこれらの列に結合や列ポリシーを適用する可能性があるからです。プロバイダーが実行するテンプレートでは代わりに``CONSUMER_JOIN_POLICY``または``CONSUMER_COLUMN_POLICY``を使用してください。

      • CONSUMER_JOIN_POLICY``consumer_parent_table_field``要素で選択されたテーブルからコンシューマーの結合ポリシーのすべての列をリストします。

      • CONSUMER_COLUMN_POLICY:現在のテンプレートと``consumer_parent_table_field``フィールドで選択されたテーブルのコンシューマーの列ポリシーのすべての列をリストします。

    • provider_parent_table_field: ユーザーがプロバイダーテーブルを選択するUI要素の名前。 ここではテーブル名自体を指定しません。``references``が``PROVIDER_COLUMN_POLICY``または``PROVIDER_JOIN_POLICY``に設定されている場合にのみ使用します。 デフォルトのプロバイダーテーブルセレクターを参照するには、ここで``source_table``を指定し、``render_table_dropdowns.render_provider_table_dropdown``をTRUEに設定します。

    • consumer_parent_table_field:ユーザーがコンシューマーテーブルを選択するUI要素の名前。ここではテーブル名自体を指定しません。references``が``CONSUMER_COLUMNSCONSUMER_JOIN_POLICY、または``CONSUMER_COLUMN_POLICY``に設定されている場合にのみ使用します。デフォルトのコンシューマーテーブルセレクターを参照するには、ここで``my_table``を指定し、``render_table_dropdowns.render_provider_table_dropdown``をTRUEに設定します。

  • output_config - (Dict)クリーンルームUIでテンプレートの結果をグラフィカルに表示する方法を定義します。指定されていない場合、結果はグラフで表示されず、テーブルでのみ表示されます。グラフが必要ない場合は、この引数に空のオブジェクト``{}``を指定してください。許可されたフィールド:

    • measure_columns:クリーンルームUIが生成するグラフで使用する手段およびディメンションを含む列の名前。

    • default_output_type:結果を表示するデフォルト形式。データが適切な形式であれば、ユーザーは通常、UIで表示形式を変更できます。

      • TABLE*(デフォルト)*表形式

      • BAR:棒グラフ。異なるカテゴリを比較するのに適しています

      • LINE:折れ線グラフ。経時的なトレンドや連続的なデータを表示するのに適しています

      • PIE:円グラフ。割合やパーセンテージを表示するのに適しています

次のテーブルは、競合する可能性のある値について、``details``オブジェクト値で許可される値のマトリックスを示しています。

type

references

provider_parent_table_field

consumer_parent_table_field

render_provider_table_dropdown

render_consumer_table_dropdown

multiselect または dropdown

PROVIDER_TABLES

許可されていません

許可されていません

FALSE

TRUE または FALSE

PROVIDER_JOIN_POLICY

source_table

許可されていません

TRUE

TRUE または FALSE

PROVIDER_JOIN_POLICY

parent field name

許可されていません

TRUE または FALSE

TRUE または FALSE

PROVIDER_COLUMN_POLICY

source_table

許可されていません

TRUE

TRUE または FALSE

PROVIDER_COLUMN_POLICY

parent field name

許可されていません

TRUE または FALSE

TRUE または FALSE

CONSUMER_TABLES

許可されていません

許可されていません

TRUE または FALSE

FALSE

CONSUMER_COLUMNS

許可されていません

my_table または parent field name

TRUE または FALSE

TRUE

CONSUMER_JOIN_POLICY

許可されていません

my_table または parent field name

TRUE または FALSE

TRUE

CONSUMER_COLUMN_POLICY

許可されていません

my_table または parent field name

TRUE または FALSE

TRUE

PROVIDER_ACTIVATION_POLICY

許可されていません

許可されていません

TRUE または FALSE

TRUE または FALSE

戻り値: (String) 成功メッセージ。

例:

-- Specify the display name, description, and warehouse, and hide the default table dropdown lists.
-- Define the following two fields in the UI:
--   A provider table selector that shows all provider tables. Chosen tables can be accessed by the template with the variable 'a_provider_table'
--     (This dropdown list is equivalent to setting ``render_table_dropdowns.render_provider_table_dropdown: True``)
--   A column selector for the tables chosen in 'a_provider_table'. Chosen columns can be accessed by the template with the variable 'a_provider_col'

  CALL samooha_by_snowflake_local_db.provider.add_ui_form_customizations(
      $cleanroom_name,
      'prod_custom_template',
      {
          'display_name': 'Custom Analysis Template',
          'description': 'Use custom template to run a customized analysis.',
          'methodology': 'This custom template dynamically renders a form for you to fill out, which are then used to generate a customized analysis fitting your request.',
          'warehouse_hints': {
              'warehouse_size': 'xsmall',
              'snowpark_optimized': FALSE
          },
          'render_table_dropdowns': {
              'render_consumer_table_dropdown': false,
              'render_provider_table_dropdown': false
          },
          'activation_template_name': 'activation_my_template',
          'enabled_activations': ['consumer', 'provider']
      },
      {
          'a_provider_table': {
              'display_name': 'Provider table',
              'order': 3,
              'description': 'Provider table selection',
              'size': 'S',
              'group': 'Seed Audience Selection',
              'references': ['PROVIDER_TABLES'],
              'type': 'dropdown'
          },
          'a_provider_col': {
              'display_name': 'Provider column',
              'order': 4,
              'description': 'Which col do you want to count on',
              'size': 'S',
              'group': 'Seed Audience Selection',
              'references': ['PROVIDER_COLUMN_POLICY'],
              'provider_parent_table_field': 'a_provider_table',
              'type': 'dropdown'
          }
      },
      {
          'measure_columns': ['col1', 'col2'],
          'default_output_type': 'PIE'
      }
  );
Copy

restrict_template_options_to_consumers

スキーマ:

PROVIDER

説明: 指定されたクリーンルームの指定されたテンプレートにアクセスできるユーザーを制御します。このプロシージャは、クリーンルーム/テンプレートのペアに対して、他のプロシージャによって以前に指定されたアクセスリストを上書きします。

注釈

このプロシージャを呼び出して作成した制限は、クリーンルーム UIで期待どおりに動作しない可能性があります。クリーンルーム UI で使用できるクリーンルームでは、このプロシージャを呼び出さないでください。

引数:

  • cleanroom_name (文字列) - クリーンルームの名前。

  • access_details - (JSON オブジェクト)テンプレートの名前と、そのクリーンルームでそのテンプレートにアクセスできるユーザー。テンプレートが指定されている場合、ここにリストされているユーザーだけがそのクリーンルームでそのテンプレートにアクセスできます。これは、以下の形式で、1つのテンプレートにつき1つの子オブジェクトを持つオブジェクトです。'{template_name': ['user1_locator','user2_locator','userN_locator']}

戻り値: (String) 成功メッセージ。

例:

CALL samooha_by_snowflake_local_db.provider.restrict_template_options_to_consumers(
  $cleanroom_name,
  {
      'prod_template_1': ['CONSUMER_1_LOCATOR', 'CONSUMER_2_LOCATOR']
  }
);
Copy

コンシューマー定義のテンプレート

以下の APIs では、クリーンルームにテンプレートを追加するコンシューマーからの要求を承認または拒否することができます。コンシューマーが定義したテンプレートは、プロバイダーがコンシューマーの追加リクエストを承認した場合のみ、クリーンルームに追加されます。詳細については、 コンシューマー記述のカスタムテンプレート をご参照ください。

list_pending_template_requests

スキーマ:

PROVIDER

**説明:**クリーンルームにコンシューマー定義のテンプレートを追加したいコンシューマーからのすべての未承認のリクエストをリストします。これには、保留中のリクエスト、承認済みのリクエスト、拒否済みのリクエストが含まれます。このプロシージャを使用して、保留中のリクエストを確認し、承認(provider.approve_template_request)または拒否(provider.reject_template_request)します。

これは、クリーンルームが共有されているすべてのコンシューマーがクリーンルームをインストールするまで失敗します。

引数:

  • cleanroom_name (文字列) - このクリーンルームにテンプレートを追加するコンシューマーリクエストを表示します。

戻り値: 以下の値などを含むテーブル。

  • request_id - (文字列)リクエストを承認または拒否するために必要なリクエストのID。

  • consumer_locator - (文字列)リクエストを行う人のアカウントロケーター。

  • template_name - (文字列)コンシューマーが提供するテンプレートの名前。

  • template_definition - (文字列)コンシューマーが提案するテンプレートの完全な定義。

例:

CALL samooha_by_snowflake_local_db.provider.list_pending_template_requests($cleanroom_name);
Copy

list_template_requests

スキーマ:

PROVIDER

**説明:**クリーンルームにコンシューマー定義のテンプレートを追加したいコンシューマーからのすべてのリクエストをリストします。これには、保留中のリクエスト、承認済みのリクエスト、拒否済みのリクエストが含まれます。保留中のリクエストを確認し、承認(provider.approve_template_request)または拒否(provider.reject_template_request)するために使用します。

引数:

  • cleanroom_name (文字列) - このクリーンルームにテンプレートを追加するコンシューマーリクエストを表示します。

戻り値: 以下の値などを含むテーブル。

  • request_id - (文字列)リクエストを承認または拒否するために必要なリクエストのID。

  • consumer_identifier - (文字列)リクエストを行う人のアカウントロケーター。

  • template_name - (文字列)コンシューマーが提供するテンプレートの名前。

  • template_definition - (文字列)コンシューマーが提案するテンプレートの完全な定義。

  • status - (文字列)リクエストのステータス:PENDING、APPROVED、REJECTED。

例:

CALL samooha_by_snowflake_local_db.provider.list_template_requests($cleanroom_name);
Copy

approve_template_request

スキーマ:

PROVIDER

説明: クリーンルームへのテンプレート追加リクエストを承認します。

引数:

  • cleanroom_name (文字列) - ユーザーがテンプレートを追加したいクリーンルームの名前。

  • request_id - (文字列)承認するリクエストのID。``provider.list_template_requests``を呼び出してリクエストIDsを表示します。

戻り値: (String) 成功メッセージ。

例:

CALL samooha_by_snowflake_local_db.provider.approve_template_request(
  $cleanroom_name,
  '815324e5-54f2-4039-b5fb-bb0613846a5b'
);
Copy

approve_multiple_template_requests

スキーマ:

PROVIDER

説明: clean roomへのテンプレート追加の、複数のコンシューマーリクエストを承認します。すべて同じclean roomへのリクエストである必要があります。

引数:

  • cleanroom_name (文字列) - このリクエストが適用されるクリーンルームの名前。

  • request_ids - (文字列の配列)承認するすべてのテンプレートリクエストのIDs。リクエストIDを取得するには、``provider.list_template_requests``を呼び出します。

戻り値: (String) 成功メッセージ。

例:

CALL samooha_by_snowflake_local_db.provider.approve_multiple_template_requests(
  $cleanroom_name,
  [
    'cfd538e2-3a17-48e3-9773-14275e7d2cc9',
    '2982fb0a-02b7-496b-b1c1-56e6578f5eac'
  ]
);
Copy

reject_template_request

スキーマ:

PROVIDER

説明: クリーンルームへのテンプレート追加リクエストを拒否します。

引数:

  • cleanroom_name (文字列) - ユーザーがテンプレートを追加したいクリーンルームの名前。

  • request_id - (文字列)拒否するリクエストのID。``provider.list_template_requests``を呼び出してリクエストIDsを表示します。

  • reason_for_rejection - (文字列)リクエストを拒否する理由。

戻り値: (String) 成功メッセージ。

例:

CALL samooha_by_snowflake_local_db.provider.reject_template_request(
  $cleanroom_name,
  'cfd538e2-3a17-48e3-9773-14275e7d2cc9',
  'Failed security assessment');
Copy

reject_multiple_template_requests

スキーマ:

PROVIDER

説明: clean roomへのテンプレート追加の、複数のコンシューマーリクエストを拒否します。すべて同じclean roomへのリクエストである必要があります。

引数:

  • cleanroom_name (文字列) - このリクエストが適用されるクリーンルームの名前。

  • rejected_templates - (オブジェクトの配列)以下のフィールドを持つオブジェクトの配列。拒否ごとに1つ。

    • request_id - (文字列)拒否するリクエストのID。リクエストIDを取得するには、``provider.list_template_requests``を呼び出します。

    • reason_for_rejection - (文字列)リクエストが拒否された理由のフリーテキストの説明。

戻り値: (String) 成功メッセージ。

例:

CALL samooha_by_snowflake_local_db.provider.reject_multiple_template_requests($cleanroom_name,
  [
    OBJECT_CONSTRUCT('request_id', '815324e5-54f2-4039-b5fb-bb0613846a5b', 'reason_for_rejection', 'Failed security assessment'),
    OBJECT_CONSTRUCT('request_id', '2982fb0a-02b7-496b-b1c1-56e6578f5eac', 'reason_for_rejection', 'Some other reason')
  ]
);
Copy

テンプレートチェーン

:doc:`テンプレートチェーン</user-guide/cleanrooms/developer-template-chains>`の作成と管理には、以下のコマンドを使用します。

add_template_chain

スキーマ:

PROVIDER

説明: 新しいテンプレートチェーンを作成します。テンプレートは、テンプレートチェーンに追加される前に存在していなければなりません。テンプレートチェーンは作成後、変更することはできませんが、同じ名前で新しいテンプレートチェーンを作成し、古いテンプレートチェーンを上書きすることができます。

引数:

  • cleanroom_name *(文字列)- テンプレートチェーンを追加する必要があるクリーンルームの名前。

  • template_chain_name - (文字列)テンプレートチェーンの名前。

  • templates - (オブジェクトの配列) - オブジェクトの配列。テンプレートごとに1つ。オブジェクトは以下のフィールドを含むことができます。

    • ``template_name``(文字列) - テンプレートチェーンに追加するテンプレートを指定します。テンプレートは、``provider.add_template_chain``を呼び出すことで、クリーンルームに既に追加されている必要があります。

    • ``cache_results``(Boolean) - テンプレートチェーンの他のテンプレートがアクセスできるように、テンプレートの結果を一時的に保存するかどうかを決定します。結果をキャッシュするには、 TRUE を指定します。

    • output_table_name``(文字列) - ``cache_results = TRUEの場合、テンプレート結果が格納されるSnowflakeテーブルの名前を指定します。

    • jinja_output_table_param``(文字列) - ``cache_results = TRUEの場合、``output_table_name``に格納された結果を受け入れるために、他のテンプレートが含める必要のあるJinjaパラメーターの名前を指定します。

    • cache_expiration_hours``(整数) - ``cache_results = TRUEの場合、キャッシュ内の結果が削除されるまでの時間数を指定します。キャッシュの有効期限が切れると、次にテンプレートチェーンが実行されたときに、キャッシュはテンプレートの結果でリフレッシュされます。

戻り値: (String) 成功メッセージ。

例:

CALL samooha_by_snowflake_local_db.provider.add_template_chain(
  $cleanroom_name,
  'my_chain',
  [
    {
      'template_name': 'crosswalk',
      'cache_results': True,
      'output_table_name': 'crosswalk',
      'jinja_output_table_param': 'crosswalk_table_name',
      'cache_expiration_hours': 2190
    },
    {
      'template_name': 'transaction_insights',
      'cache_results': False
    }
  ]
);
Copy

view_added_template_chains

スキーマ:

PROVIDER

説明: 指定されたクリーンルームのテンプレートチェーンをリストします。

引数:

戻り値: (テーブル) このクリーンルームに追加された全てのテンプレートチェーンの説明。

例:

CALL samooha_by_snowflake_local_db.provider.view_added_template_chains($cleanroom_name);
Copy

view_template_chain_definition

スキーマ:

PROVIDER

説明: テンプレートチェーンの定義を返します。

引数:

  • cleanroom_name (文字列) - このテンプレートチェーンに関連するクリーンルームの名前。

  • template_chain_name - (文字列)このクリーンルームに関連付けられたテンプレートチェーンの名前。

戻り値: (テーブル) 指定されたテンプレートチェーンの説明。

例:

CALL samooha_by_snowflake_local_db.provider.view_template_chain_definition(
  $cleanroom_name,
  'my_chain');
Copy

clear_template_chain

スキーマ:

PROVIDER

説明: 指定されたクリーンルームから指定されたテンプレートチェーンを削除します。チェーンはどこにも保存されないので、チェーンを再作成したい場合は、ゼロから再作成する必要があります。

引数:

  • cleanroom_name(文字列) - このテンプレートチェーンに割り当てられているクリーンルーム。

  • template_chain_name - (文字列)このクリーンルームから削除するテンプレートチェーン。

戻り値: (String) 成功メッセージ。

例:

CALL samooha_by_snowflake_local_db.provider.clear_template_chain($cleanroom_name, 'my_chain');
Copy

アクティベーション

*アクティベーション*とは、プロバイダー、コンシューマー、またはサードパーティに結果をエクスポートすることを意味します。アクティベーションの詳細をご覧ください

set_activation_policy

スキーマ:

PROVIDER

**説明:**アクティベーションテンプレート内で使用できるプロバイダー列を定義します。アクティベーションポリシーにリストされた列のみが、プロバイダーのデータセットからアクティベーションすることができます。アクティベーションポリシーを設定しないと、プロバイダーデータはアクティブベーションできません。

このプロシージャを呼び出すと、プロバイダーによってセットされた過去のアクティベーションポリシーがすべて消去されます。

引数:

  • cleanroom_name *(文字列) - アクティベーションを許可するクリーンルームの名前。

  • columns - (文字列の配列)ここにリストされた列のみが、このクリーンルームのアクティベーションテンプレートで使用できます。列名の形式は:samp:`{template_name}:{fully_qualified_table_name}:{column_name}`です。ドット「.」とコロン「:」マーカーの適切な使用に注意してください。

戻り値: (String) 成功メッセージ。

例:

CALL samooha_by_snowflake_local_db.provider.set_activation_policy('my_cleanroom', [
    'prod_overlap_analysis:SAMOOHA_SAMPLE_DATABASE.DEMO.CUSTOMERS:HASHED_EMAIL',
    'prod_overlap_analysis:SAMOOHA_SAMPLE_DATABASE.DEMO.CUSTOMERS:REGION_CODE' ]);
Copy

view_activation_policy

スキーマ:

PROVIDER

説明: 指定されたクリーンルームにおけるプロバイダーのアクティベーションポリシーを示します。

引数:

  • cleanroom_name (文字列):レポートするクリーンルームの名前。

戻り値: (テーブル)指定されたクリーンルームにおけるプロバイダのアクティベーションポリシー。

例:

CALL samooha_by_snowflake_local_db.provider.view_activation_policy($cleanroom_name);
Copy

update_activation_warehouse

スキーマ:

PROVIDER

説明: プロバイダーアクティベーションで結果を出力テーブルに復号化する際に使用する、ウェアハウスのサイズを指定します。復号化に使用されるウェアハウスは DCR_ACTIVATION_WAREHOUSE です。このウェアハウスはの費用はプロバイダーが負担します。

引数:

  • size - (文字列)ウェアハウスサイズ。:doc:`/sql-reference/sql/create-warehouse`コマンドののいずれかのWAREHOUSE_SIZE値を選択します。

戻り値: (String) 成功メッセージ。

例:

CALL samooha_by_snowflake_local_db.provider.update_activation_warehouse('LARGE');
Copy

setup_provider_activation_share_mount_task

スキーマ:

PROVIDER

説明: プロバイダーが自分のアカウントにclean room UI をインストールしていない場合に、プロバイダーアクティベーションを有効にします。

``provider.add_consumers``でコンシューマーを追加した後に、これを呼び出します。プロバイダーのアクティベーションを実装している場合:emph:`かつ`プロバイダーにクリーンルームUIがインストールされていない場合にのみ呼び出されます。(コンシューマーがUIをインストールしているかどうかは関係ありません。)

これにより、プロバイダーのアクティベーションに必要なコンシューマー共有を非同期的にマウントするスレッドが開始されます。共有を同期的にマウントしてコードをブロックするのではなく、このコードは共有を非同期でマウントし、定期的に新しいコラボレーターを再チェックします。これは1回だけ呼び出す必要があり、後でこのプロシージャを再度呼び出さずにコラボレーターを追加できます。

引数:

  • frequency_minutes - (整数)同様に共有をマウントするために、このクリーンルームの新しいコンシューマーを再チェックする頻度。推奨値は15です。

Returns: (文字列) 成功メッセージ。

例:

CALL samooha_by_snowflake_local_db.provider.setup_provider_activation_share_mount_task(15);
Copy

dcr_health.provider_run_provider_activation_history

説明: 指定されたクリーンルームのプロバイダーアクティベーションリクエストの履歴を返します。プロバイダーとコンシューマーの両方によって開始されたプロバイダーのアクティベーションリクエストが表示されます。このプロシージャは、プロバイダーのアクティベーションに関する問題のデバッグに役立つ追加情報を提供します。

引数:

  • cleanroom_name (文字列) - アクティベーションがリクエストされたクリーンルームの名前。このクリーンルームのプロバイダーまたはコンシューマーである必要があります。

戻り値: (テーブル) -テンプレートとセグメント名、ステータス、コンシューマーのアカウントロケーター、リクエストによって返されるエラーメッセージなど、各情報を持つアクティベーションリクエストのリスト。

例:

CALL samooha_by_snowflake_local_db.dcr_health.provider_run_provider_activation_history(
  $cleanroom_name);
Copy

view_external_activation_history

スキーマ:

LIBRARY

説明: 現在のアカウントのアクティベーションリクエスト履歴を表示します。

引数: なし

戻り値: アクティベーションリクエストの詳細とステータスのテーブル。

:

CALL samooha_by_snowflake_local_db.library.view_external_activation_history();
Copy

プロバイダーとして分析を実行する

Learn how to run a provider analysis.

enable_provider_run_analysis

スキーマ:

PROVIDER

**説明:**プロバイダー(クリーンルーム作成者)が指定されたクリーンルームで分析を実行できるようにします。デフォルトでは無効になっています。その後、コンシューマーは``consumer.enable_templates_for_provider_run``を呼び出し、クリーンルーム内の特定のテンプレートに対してプロバイダーが実行する分析を可能にする必要があります。その後、プロバイダーは``provider.submit_analysis_request``を呼び出すことで分析を実行できます。

Learn more about provider-run analyses.

重要

このプロシージャは、``provider.add_consumers``の**後**、コンシューマーがクリーンルームをインストールする前に呼び出す必要があります。コンシューマーがすでにクリーンルームをインストールした後にこれを変更した場合、コンシューマーは新しい構成を反映させるためにクリーンルームをインストールし直す必要があります。

引数:

  • cleanroom_name (文字列) - プロバイダーが実行する分析を有効にするべきクリーンルームの名前。

  • consumer_accounts - (文字列の配列)このクリーンルームにデータを追加したすべてのコンシューマーアカウントのアカウントロケーター。

戻り値: (String) 成功メッセージ。

例:

CALL samooha_by_snowflake_local_db.provider.enable_provider_run_analysis(
  $cleanroom_name,
  ['<CONSUMER_ACCOUNT_LOCATOR>']
);
Copy

disable_provider_run_analysis

スキーマ:

PROVIDER

説明: プロバイダー(クリーンルーム作成者)がクリーンルームで分析を実行できないようにします(デフォルトでは無効になっています)。

重要

このプロシージャは、``provider.add_consumers``を呼び出した**後**、コンシューマーがクリーンルームをインストールする前に呼びだす必要があります。コンシューマーがクリーンルームをインストールした後に実行分析設定が変更された場合、コンシューマーは新しい設定を実装するためにクリーンルームをインストールし直す必要があります。

引数:

  • cleanroom_name (文字列)- プロバイダーが実行する分析を無効にするべきクリーンルームの名前。

  • consumer_account_locator - (文字列)``provider.enable_provider_run_analysis``に渡されたコンシューマーアカウント名のリストと同じ。

戻り値: (String) 成功メッセージ。

例:

CALL samooha_by_snowflake_local_db.provider.disable_provider_run_analysis(
  $cleanroom_name,
  ['<CONSUMER_ACCOUNT_LOCATOR>']);
Copy

is_provider_run_enabled

スキーマ:

LIBRARY

説明: このクリーンルームがプロバイダーが実行する分析を許可しているかどうかをチェックします。

引数:

  • cleanroom_name (文字列) - チェックするクリーンルームの名前。

戻り値: (文字列) このクリーンルームがプロバイダーが実行する分析を許可するかどうか。

例:

CALL samooha_by_snowflake_local_db.library.is_provider_run_enabled($cleanroom_name)
Copy

is_request_back_share_mounted

スキーマ:

PROVIDER

説明: 指定されたコンシューマーから、指定されたクリーンルームのプロバイダーにメッセージを伝播できるかどうかをチェックします。このクリーンルームでこのコンシューマーに対してバック共有がマウントされていない場合、プロバイダーが実行したリクエスト承認などのメッセージは、コンシューマーからプロバイダーには伝播されません(ただし、コンシューマー側でキューに入れられます)。

provider.mount_request_logs_for_all_consumers を呼び出し、このコンシューマーとのバック共有を設定します。以前に``provider.mount_request_logs_for_all_consumers``を呼び出し、``is_request_back_share_mounted``が失敗した場合、最後に``provider.mount_request_logs_for_all_consumers``を呼び出した後にこのコンシューマーをこのクリーンルームに追加した可能性があります。

引数:

  • cleanroom_name (文字列) - チェックするクリーンルームの名前。

  • consumer_account - (文字列)コンシューマーのアカウントロケーター。

**戻り値:**指定されたクリーンルームの指定されたコンシューマーに対して、バック共有が有効になっている場合は SUCCESS を返します。そうでない場合はエラーをスローします。

例:

CALL samooha_by_snowflake_local_db.library.is_request_back_share_mounted(
  $cleanroom_name,
  $consumer_locator);
Copy

view_warehouse_sizes_for_template

スキーマ:

PROVIDER

**説明:**指定されたテンプレートを使用してプロバイダーが実行する分析で使用できるウェアハウスのサイズと型のリストを表示します。コンシューマーは、最初に``consumer.enable_templates_for_provider_run``の呼び出しの際にリストに入力する必要があります。

引数:

  • cleanroom_name (文字列) - クリーンルームの名前。

  • template_name - (文字列)プロバイダーが実行したいテンプレートの名前。

  • consumer_account - (文字列)プロバイダーが実行するリクエストを承認するコンシューマーのアカウントロケーター。

**戻り値:**許可されたウェアハウスのサイズと型のテーブル。サポートされるウェアハウスのタイプとサイズの文字列は、:doc:`/sql-reference/sql/create-warehouse`コマンドのWAREHOUSE_TYPEおよびWAREHOUSE_SIZEプロパティで使用されているものです。

例:

CALL samooha_by_snowflake_local_db.PROVIDER.VIEW_WAREHOUSE_SIZES_FOR_TEMPLATE(
  $cleanroom_name,
  $template_name,
  $consumer_account_loc);
Copy

submit_analysis_request

スキーマ:

PROVIDER

説明: clean roomで実行する分析を発信します。このプロシージャを呼び出す前に、以下の条件をすべて満たしている必要があります。

  • プロバイダーは、このクリーンルームの:ref:`プロバイダーが実行する分析を有効化<dcr-provider-enable-provider-run-analysis>`している必要があります。

  • コンシューマーは、指定されたテンプレートの:ref:`承認済みのプロバイダー実行分析<dcr-consumer-enable-templates-for-provider-run>`が必要です。

  • コンシューマーデータおよびテンプレート上のすべての:ref:結合<dcr-consumer-set-join-policy>)および:ref:列<dcr-consumer-set-column-policy>)ポリシーを尊重する必要があります。

テンプレートはクリーンルーム内で実行され、結果はクリーンルーム内に安全に保管されます。結果は暗号化されるため、プロバイダーだけが結果を見ることができます。

引数:

  • cleanroom_name (文字列) - テンプレートを実行するクリーンルームの名前。

  • consumer_account_locator - (String) Account locator of the consumer in this clean room who has allowed provider-run analyses by calling consumer.enable_templates_for_provider_run.

  • template_name - (String) Name of the template to run.

  • provider_tables - (Array of String) List of provider tables to expose to the template. This list will populate the source_table array variable.

  • consumer_tables - (Array of String) List of consumer tables to expose to the template. This list will populate the my_table array variable.

  • analysis_arguments - (JSON object) Pass in any arguments required by the template as key-value pairs. The following fields are required only if the consumer specifies a set of allowed warehouse types and sizes. Call provider.view_warehouse_sizes_for_template to see if the consumer has specified required warehouse size and type.

    • warehouse_type (String, required only if the consumer specifies a range of permitted types) - A warehouse type that the consumer allows for provider-run analyses with the specified template. See the list of supported types. If the consumer has not specified a preference, the default is STANDARD.

    • warehouse_size (String, required only if the consumer specifies a range of permitted sizes) - A warehouse size that the consumer allows for provider-run analyses with the specified template. See the list of supported types. If the consumer has not specified a preference, the default is X-SMALL.

戻り値: (文字列) リクエスト ID はリクエストのステータスを確認し、結果にアクセスするために使用されます。分析結果を見るために必要なので、 この ID を保存 しておいてください。

例:

CALL samooha_by_snowflake_local_db.provider.submit_analysis_request(
  $cleanroom_name,
  '<CONSUMER_ACCOUNT>',
  'prod_overlap_analysis',
  ['SAMOOHA_SAMPLE_DATABASE.DEMO.CUSTOMERS'],
  ['SAMOOHA_SAMPLE_DATABASE.DEMO.CUSTOMERS'],
  object_construct(
    'dimensions', ['c.REGION_CODE'],
    'measure_type', ['AVG'],
    'measure_column', ['c.DAYS_ACTIVE'],
    'warehouse_type', 'STANDARD',        -- If this type and size pair were not listed by view_warehouse_sizes_for_template,
    'warehouse_size', 'LARGE'            -- the request will automatically fail.
  )
);
Copy

check_analysis_status

スキーマ:

PROVIDER

**説明:**プロバイダーはこのプロシージャを呼び出し、プロバイダー分析リクエストのステータスを確認します。リクエストのステータスを確認できるようになるまでには、かなりの時間がかかることがあります。分析が完了したとマークされたら、``provider.get_analysis_result``を呼び出して結果を表示します。

check_analysis_statusを呼び出す前に、クリーンルーム内のすべてのコンシューマーは、リクエストログをマウントする必要があります。これは、``provider.mount_request_logs_for_all_consumers``を呼び出して、クリーンルームおよびコンシューマーごとに1回行われます。

このSQLコマンドを実行すると、分析リクエストのリストを見ることができます。ここで:samp:`{cleanroom_name}`はクリーンルームの名前で、スペースはアンダースコアに置き換えられます。

SELECT * FROM SAMOOHA_CLEANROOM_<cleanroom_name>.ADMIN.PROVIDER_ANALYSIS_REQUESTS;
Copy

引数:

  • cleanroom_name (文字列) - リクエストが行われたクリーンルームの名前。

  • request_id - (文字列)``provider.submit_analysis_request``によって返されるリクエストのID。

  • consumer_account_locator - (文字列)リクエストが送信されたコンシューマーのアカウントロケーター。

戻り値: *(文字列)*リクエストのステータス。``COMPLETED``は分析の正常終了を意味します。可能なステータス:

  • IN-PROGRESS: 分析を処理中。

  • PENDING:次のいずれかのケースを示します。

    • リクエストはまだ伝播中で、数分かかる場合があります。数分後にもう一度お試しください。

    • ユーザーは、``consumer.enable_templates_for_provider_run``を呼び出してリクエストを承認していません。 数分後にもう一度お試しください。

    • このコンシューマーのリクエストログをマウントしていません。``provider.is_request_back_share_mounted``を呼びだします。そのプロシージャがSUCCESSを返さない場合は``provider.mount_request_logs_for_all_consumers``を呼び出します。

  • COMPLETED:分析が完了しました。``provider.get_analysis_result``を呼び出すことができます。

エラー:

エラー「ResultSetが空であるか準備されていません」が表示された場合、このクリーンルームの少なくとも1人のコンシューマーに対してリクエストログがマウントされていないことを示している可能性があります。``provider.mount_request_logs_for_all_consumers``を呼び出して、すべてのコンシューマーにリクエストログをマウントします。

例:

-- It can take up to 2 minutes for this to pick up the request ID after the initial request
CALL samooha_by_snowflake_local_db.provider.check_analysis_status(
  $cleanroom_name,
  $request_id,
  '<CONSUMER_ACCOUNT>'
);
Copy

get_analysis_result

スキーマ:

PROVIDER

**説明:**プロバイダーが実行する分析の結果を取得します。``provider.check_analysis_status``がCOMPLETEDを返すまで、``get_analysis_result``を呼び出さないでください。結果はクリーンルーム内で無期限に持続します。

引数:

  • cleanroom_name (文字列) - リクエストが送信されたクリーンルームの名前。

  • request_id - (文字列)``submit_analysis_request``によって返されるリクエストのID。

  • consumer_account_locator - (文字列)``submit_analysis_request``に渡されるコンシューマーのアカウントロケーター。

戻り値: (テーブル) クエリ結果。

例:

CALL samooha_by_snowflake_local_db.provider.get_analysis_result(
    $cleanroom_name,
    $request_id,
    $locator
);
Copy

クリーンルームの共有の管理

以下のコマンドを使用して、コンシューマーとクリーンルームを共有することを管理します。

view_consumers

スキーマ:

PROVIDER

説明: クリーンルームへのアクセスを許可されたコンシューマーのリスト。コンシューマーがクリーンルームをインストールしたかどうかは表示されません。

引数:

戻り値: (テーブル) - クリーンルームにアクセスできるコンシューマーアカウントのリスト。

例:

CALL samooha_by_snowflake_local_db.provider.view_consumers($cleanroom_name);
Copy

add_consumers

スキーマ:

PROVIDER

**説明:**指定されたユーザーに指定されたクリーンルームへのアクセスを付与します。クリーンルームはクリーンルーム UI と API の両方からアクセスできます。この場合、以前の呼び出しによるコンシューマーリストは上書きされません。クリーンルームへのアクセスは、アカウント全体ではなく、特定のユーザーに付与されます。クリーンルームにアクセスするには、コンシューマーアカウントがプロバイダーと同じSnowflakeリージョンにある必要があります。``select current_region();``を呼び出すことで地域を確認できます

``provider.view_consumers``を呼び出すと、現在のコンシューマーのリストを見ることができます。

引数:

  • cleanroom_name (文字列) - 指定したユーザーと共有するクリーンルームの名前。ユーザーは、クリーンルーム API または UI のいずれかを使用してクリーンルームをインストールできます。

  • consumer_account_locators - (文字列):doc:`/sql-reference/functions/current_account`から返される、コンシューマーアカウントロケーターのカンマ区切りリスト。このリストには、``consumer_account_names``に含まれるのと同じ数のエントリを、同じ順番で含める必要があります。

  • consumer_account_names - (文字列):ref:コンシューマーデータ共有アカウントIDs <label-account_name_data_sharing>`の:samp:`{org_name}.{account_name}`形式のコンシューマー向けコンマ区切りリスト。*組織名*は:doc:/sql-reference/functions/current_organization_name`を呼び出すことで取得できます。*アカウント名*は、:doc:`/sql-reference/functions/current_account_name`を呼び出すことで取得できます。このリストには、``consumer_account_locators``にリストされているのと同じ数の項目を、同じ順番で含める必要があります。

  • enable_differential_privacy_tasks - (Boolean、オプション)このクリーンルームのリストされたユーザーによるすべてのクエリに差分プライバシーを実施するにはTRUEにします。これは、リストされたユーザーのデフォルト値で差分プライバシーを有効にする簡単な方法です。高度な設定を指定するには、代わりに``privacy_settings``引数を入力します。差分差分プライバシーを有効にするには、差分プライバシータスクをこのクリーンルームで実行する必要があります。デフォルトは FALSE です。

  • privacy_settings - (文字列、オプション)存在する場合、``consumer_account_names``のユーザーのいずれかが使用する場合に、カスタムテンプレートにプライバシー設定を適用します。 これは、単一のNULLキーを持つオブジェクトの文字列バージョンで、さまざまなプライバシー設定を指定します。``enable_differential_privacy_tasks``と``privacy_settings``の両方を指定しないでください。 差分差分プライバシーを有効にするには、差分プライバシータスクをこのクリーンルームで実行する必要があります。このオブジェクトで使用可能なフィールドをご参照ください。

戻り値: 成功メッセージ。プロシージャは、ユーザーロケーターやアカウント名を検証しないので、成功は、提出されたロケーターがこのクリーンルームのデータベースに追加されたことだけを示すことに注意してください。

例:

-- Add consumer without differential privacy.
CALL samooha_by_snowflake_local_db.provider.add_consumers($cleanroom_name,
  'LOCATOR1,LOCATOR2',
  'ORG1.NAME1,ORG2.NAME2');

-- Add consumer and turn on differential privacy for all their queries.
CALL samooha_by_snowflake_local_db.provider.add_consumers($cleanroom_name,
  'LOCATOR1',
  'ORGNAME.ACCOUNTNAME',
  '{
    "null": {
        "threshold_value": 5000,
        "differential": 1,
        "privacy_budget": 10,
        "epsilon": 0.1,
        "noise_mechanism": "Laplace"
    }
  }'
);
Copy

remove_consumers

スキーマ:

PROVIDER

説明: 指定されたクリーンルームへのアカウントアクセスを削除します。この方法は、提供されたアカウントのすべてのユーザーからのアクセスをブロックします。

``provider.view_consumers``を呼び出すと、現在のコンシューマーのリストを見ることができます。

引数:

  • cleanroom_name (文字列) - クリーンルームのID(ユーザーフレンドリーな名前ではありません)。

  • cleanroom_account_locators - (文字列)ユーザーアカウントロケーターのカンマ区切りリスト。アカウント内の全ユーザーはクリーンルームへのアクセスを失います。

戻り値: (文字列) - 成功メッセージ。

例:

CALL samooha_by_snowflake_local_db.provider.remove_consumers(
  $cleanroom_name,
  'locator1,locator2,locator3'
);
Copy

set_cleanroom_ui_accessibility

スキーマ:

PROVIDER

**説明:**このプロバイダーアカウントにログインしているすべてのユーザーに対して、クリーンルーム UI のクリーンルームを表示または非表示にします。

引数:

  • cleanroom_name (文字列) - クリーンルームの名前。

  • visibility_status - (文字列)次の大文字と小文字を区別する値のいずれか。

    • HIDDEN - 現在のプロバイダーアカウントのすべてのユーザーからクリーンルーム UI のクリーンルームを非表示にします。API呼び出しのクリーンルームへのアクセスは可能です。

    • EDITABLE - クリーンルームをクリーンルーム UI で見えるようにします。

戻り値: (String) 成功メッセージ。

例:

CALL samooha_by_snowflake_local_db.provider.set_cleanroom_ui_accessibility(
  $cleanroom_name,
  'HIDDEN'
);
Copy

クロスクラウドコラボレーション

クリーンルームを別のクラウドリージョンのコンシューマーと共有できるようにします。詳細をご覧ください。

enable_laf_on_account

スキーマ:

LIBRARY

説明: 現在のアカウントでクロスクラウド自動フルフィルメントを有効にします。このプロシージャを実行するには、 ACCOUNTADMIN ロールが必要です。

重要

まず、:doc:`/sql-reference/functions/system_enable_global_data_sharing_for_account`を呼び出して、アカウントのクロスクラウドの自動フルフィルメントを有効にする必要があります。

:doc:`詳細は自動フルフィルメント</collaboration/provider-listings-auto-fulfillment>`および:doc:`自動フルフィルメント権限の管理</collaboration/provider-listings-auto-fulfillment-manage-privileges>`をご参照ください。

引数: なし

戻り値: (String) 成功メッセージ。

例:

USE ROLE ACCOUNTADMIN;
CALL samooha_by_snowflake_local_db.library.enable_laf_on_account();
Copy

disable_laf_on_account

スキーマ:

LIBRARY

説明: 現在のアカウントのクロスクラウドの自動フルフィルメントを無効にします。このプロシージャを実行するには、 ACCOUNTADMIN ロールが必要です。

重要

アカウントでクロスクラウドの自動フルフィルメントを無効にする前に、まず:doc:`/sql-reference/functions/system_enable_global_data_sharing_for_account`を呼び出す必要があります。

:doc:`詳細は自動フルフィルメント</collaboration/provider-listings-auto-fulfillment>`および:doc:`自動フルフィルメント権限の管理</collaboration/provider-listings-auto-fulfillment-manage-privileges>`をご参照ください。

引数: なし

戻り値: (String) 成功メッセージ。

例:

USE ROLE ACCOUNTADMIN;
CALL samooha_by_snowflake_local_db.library.disable_laf_on_account();
Copy

is_laf_enabled_on_account

スキーマ:

LIBRARY

説明: このアカウントでクロスクラウド自動フルフィルメントが有効かどうかを返します。

引数: なし

戻り値: このアカウントでクロスクラウド自動フルフィルメントが有効な場合は TRUE、そうでない場合は FALSE。

例:

CALL samooha_by_snowflake_local_db.library.is_laf_enabled_on_account();
Copy

set_laf_dcr_refresh_schedule

スキーマ:

PROVIDER

**説明:**プロバイダーとコンシューマーが異なるクラウドリージョンにある場合に、プロバイダーとコンシューマー間の:ref:クリーンルームデータ<label-dcr_laf_refresh_rates>`の更新間隔を設定します。このデータには、プロバイダーデータセット、プロバイダー実行リクエスト、クリーンルームポリシー、クリーンルームメタデータが含まれます。すぐに更新する必要がある場合は、:doc:/sql-reference/functions/system_trigger_listing_refresh`を呼び出すことができます。

引数:

  • schedule - (Int)更新間の間隔(分単位)。最小許容値は10です。

戻り値: (文字列) - 成功メッセージ。

例:

CALL samooha_by_snowflake_local_db.provider.set_laf_dcr_refresh_schedule(10);
Copy

クリーンルームでのPythonの使用

load_python_into_cleanroom

スキーマ:

PROVIDER

**説明:**カスタムPythonコードをクリーンルームにロードします。このプロシージャを使用してクリーンルームにロードされたコードは、コンシューマーからは見えません。アップロードされたコードはJinjaテンプレートから呼び出すことができます。コードには複数の関数定義を含めることができますが、呼び出すテンプレートに公開される関数は1つだけです。

複数の呼び出し可能なPythonパッケージを1つのパッチでクリーンルームにロードしたい場合は、代わりに``prepare_python_for_cleanroom``を呼び出します。

Learn how to upload and use Python code in a clean room.

このプロシージャは、クリーンルームのパッチ番号をインクリメントし、セキュリティスキャンをトリガーします。最新バージョンをコラボレーターと共有する前に、スキャンステータスがAPPROVEDになるまで待つ必要があります。このステップでは、実行時にスローされるコードの構文エラーは報告されません。

このプロシージャはオーバーロードされており、5番目の引数のデータタイプが異なる2つの署名を持っています。これは、コードをインラインでアップロードするか、ステージでファイルからロードするかを決定します。

署名

``load_python_into_cleanroom``には、インラインコードアップロード用に以下の署名があります。コード文字列を``code``引数に渡します。

(cleanroom_name String, function_name String, arguments Array, packages Array, rettype String, handler String, code String)
Copy

引数:

  • cleanroom_name *(文字列)- スクリプトをロードするクリーンルームの名前。

  • function_name - (文字列)``handler``で指定された関数を呼び出すためにテンプレートが使用する名前。テンプレートは関数名を``cleanroom``名前空間で修飾する必要があります。例: cleanroom.my_func(val1, val2)

  • arguments - (スペース区切りの文字列ペアの配列)関数``function_name``に必要な引数の配列。 各要素はスペースで区切られた:samp:'{name}  {data_type}'`ペアであり、引数名とそのSnowflake SQLデータ型を指定します。例: :code:`['size INT', 'start_date DATE']

  • packages - (文字列の配列)コードが使用するPythonパッケージ名のリスト。クリーンルームは`このリスト内<https://repo.anaconda.com/pkgs/snowflake/>`_またはまたは`Snowpark API<https://docs.snowflake.com/developer-guide/snowpark/reference/python/latest/snowpark/index>`_のすべてのパッケージをネイティブサポートします。そこにリストされていないパッケージが必要な場合は、クリーンルーム内のSnowpark Container Servicesを使用する必要があります。

  • ret_type - (文字列)関数``handler``によって返される値のSQLデータ型。 (同等のPythonとSQL型をいくつかご参照ください。Snowflake :doc:`SQL型の同義語</sql-reference/intro-summary-data-types>`(VARCHARにSTRINGなど)が受け入れられます。UDFの場合、戻り値の型は単一のSQL型です。UDTFの場合、戻り型は:samp:`{column_name} {SQL column type}`ペアを使用したTABLE関数です。例:

    TABLE (item_name STRING, total FLOAT)

  • handler - (文字列)テンプレートが``function_name``を呼び出すと、コードで呼び出される関数。 UDFの場合、関数名自体でなければなりません。UDTFの場合、UDTFを実装するクラスの名前である必要があります。

  • code - (文字列)文字列としてのPythonコード。これは:doc:`Python UDF</developer-guide/udf/python/udf-python-designing>`である必要があります。

戻り値: *(文字列)*アップロードが成功した場合は、成功メッセージ

例:

-- Inline UDF

CALL samooha_by_snowflake_local_db.provider.load_python_into_cleanroom(
    $cleanroom_name,
    'assign_group',                      -- Name of the UDF.
    ['data STRING', 'index INTEGER'],    -- Arguments of the UDF, along with their type.
    ['pandas', 'numpy'],                 -- Packages UDF will use.
    'INTEGER',                           -- Return type of UDF.
    'main',                              -- Handler.
    $$
import pandas as pd
import numpy as np

def main(data, index):
    df = pd.DataFrame(data)  # you can do something with df but this is just an example
    return np.random.randint(1, 100)
    $$
);
Copy
-- Upload from stage

CALL samooha_by_snowflake_local_db.provider.load_python_into_cleanroom(
    $cleanroom_name,
    'myfunc',                            -- Name of the UDF.
    ['data STRING', 'index INTEGER'],    -- Arguments of the UDF.
    ['numpy', 'pandas'],                 -- Packages UDF will use.
    ['/assign_group.py'],                -- Python file to import from a stage.
    'INTEGER',                           -- Return type of UDF.
    'assign_group.main'                  -- Handler, scoped to file name.
);
Copy

prepare_python_for_cleanroom

スキーマ:

PROVIDER

**説明:**バルクコードアップロードフローの一部として、カスタムPythonコードをクリーンルームにロードします。このプロシージャを複数回呼び出して複数のパッケージをアップロードしてから、``load_prepared_python_into_cleanroom``を呼び出し、指定されたクリーンルームへのアップロードをトリガー、準備されたコードのプールをフラッシュ、新しいクリーンルームパッチを生成します。

アップロードされたコードはJinjaテンプレートから呼び出すことができます。単一のPythonバンドルのみをアップロードするには、代わりに``load_python_into_cleanroom``を呼び出します。

Learn how to upload and use Python code in a clean room.

``code``パラメーターを使用するか、``imports``パラメーターを使用してコードを含むステージでファイル名を渡すことで、このプロシージャにコードを直接渡すことができます。

引数:

  • cleanroom_name *(文字列)- スクリプトをロードするクリーンルームの名前。

  • function_name - (文字列)``handler``で指定された関数を呼び出すためにテンプレートが使用する名前。テンプレートは関数名を``cleanroom``名前空間で修飾する必要があります。例: cleanroom.my_func(val1, val2)

  • arguments - (スペース区切りの文字列ペアの配列)関数``function_name``に必要な引数の配列。 各要素はスペースで区切られた:samp:'{name}  {data_type}'`ペアであり、引数名とそのSnowflake SQLデータ型を指定します。例: :code:`['size INT', 'start_date DATE']

  • packages - (文字列の配列)コードが使用するPythonパッケージ名のリスト。クリーンルームは`このリスト内<https://repo.anaconda.com/pkgs/snowflake/>`_またはまたは`Snowpark API<https://docs.snowflake.com/developer-guide/snowpark/reference/python/latest/snowpark/index>`_のすべてのパッケージをネイティブサポートします。そこにリストされていないパッケージが必要な場合は、クリーンルーム内のSnowpark Container Servicesを使用する必要があります。

  • imports - (文字列の配列)ステージからソースをインポートする際に使用するPythonソースファイルのリスト。各ファイルアドレスは、コードをアップロードしたステージを基準とします。例:['/my_func.py']``provider.get_stage_for_python_files``を呼び出してクリーンルームステージを検索します。``code``パラメーターを使用してインラインでコードを提供する場合、空の配列を指定します。

  • rettype - (文字列)関数``handler``によって返される値のSQLデータ型。 (同等のPythonとSQL型をいくつかご参照ください。Snowflake :doc:`SQL型の同義語</sql-reference/intro-summary-data-types>`(VARCHARにSTRINGなど)が受け入れられます。UDFの場合、戻り値の型は単一のSQL型です。UDTFの場合、戻り型は``<column name> <SQL column type>``ペアを使用したTABLE関数です。例:

    TABLE (item_name STRING, total FLOAT)

  • handler - (文字列)テンプレートが``function_name``を呼び出すと、コードで呼び出される関数。 UDFの場合、関数名自体でなければなりません。UDTFの場合、UDTFを実装するクラスの名前である必要があります。

  • code - (文字列)文字列としてのPythonコード。これは:doc:`Python UDF</developer-guide/udf/python/udf-python-designing>`またはUDTFである必要があります。ステージからコードをアップロードする場合、これは空文字列である必要があります。

戻り値: *(文字列)*コードがクリーンルームに追加される前のパッチ番号を含むアップロードリクエストの概要。

例:

この例では、2つの単純なPythonプロシージャをクリーンルームにロードし、単一のパッチ生成のみをトリガーします。

CALL samooha_by_snowflake_local_db.provider.prepare_python_for_cleanroom(
    $cleanroom_name,
    'get_next_status',  -- Name of the UDF. Can be different from the handler.
    ['status VARCHAR'], -- Arguments of the UDF, specified as (variable name, SQL type).
    ['numpy'],          -- Packages needed by UDF.
    [],                 -- When providing the code inline, this is an empty array.
    'VARCHAR',          -- Return type of UDF.
    'get_next_status',  -- Handler.
    $$
import numpy as np
def get_next_status(status):
  """Return the next higher status, or a random status
  if no matching status found or at the top of the list."""

  statuses = ['MEMBER', 'SILVER', 'GOLD', 'PLATINUM', 'DIAMOND']
  try:
    return statuses[statuses.index(status.upper()) + 1]
  except:
    return 'NO MATCH'
    $$
);

 CALL samooha_by_snowflake_local_db.provider.prepare_python_for_cleanroom(
    $cleanroom_name,
    'hello_world',  -- Name of the UDF.
    [],
    [],
    [],
    'VARCHAR',
    'hello_world',
    $$
import numpy as np
def hello_world():
  return 'Hello world!'
    $$
);

CALL samooha_by_snowflake_local_db.provider.load_prepared_python_into_cleanroom($cleanroom_name);
Copy

load_prepared_python_into_cleanroom

スキーマ:

PROVIDER

説明: ``prepare_python_for_cleanroom``への以前の呼び出しを使用してステージングされたすべてのコードを取得し、コードに対してセキュリティスキャンを実行し、スキャンが合格すると、コードをクリーンルームにアップロードし、新しいクリーンルームパッチを生成します。クリーンルームのこのバージョンをユーザーに提供するには、``set_default_release_directive``を呼び出して、このプロシージャが返すパッチ番号にクリーンルームのリリースディレクティブを更新する必要があります。呼び出しが成功するかどうかに関係なく、以前の``prepare_python_for_cleanroom``呼び出しで保存されたPythonコードのプールはフラッシュされます。このステップでは、構文エラーは報告されません。コードを実行しようとしたときにのみ報告されます。

引数:

  • cleanroom_name (文字列)- Pythonコードをアップロードするクリーンルームの名前。

戻り値: *(文字列)*成功した場合は、作成された新しいパッチ番号を返します。``set_default_release_directive``を呼び出して、クリーンルームのリリースディレクティブをこのプロシージャが返すパッチ番号に更新します。

例:

CALL samooha_by_snowflake_local_db.provider.load_prepared_python_into_cleanroom($cleanroom_name);
Copy

get_stage_for_python_files

スキーマ:

PROVIDER

**説明:**クリーンルームでカスタムPythonコードを定義するために、インラインコード定義ではなくステージにアップロードされたコードファイルを使用する予定の場合、Pythonファイルがアップロードされるべきステージパスを返します。``provider.load_python_into_cleanroom``の呼び出しによってファイルがアップロードされるまで、ステージは存在せず、調べることもできません。

Learn how to upload and use Python code in a clean room.

引数:

  • cleanroom_name (文字列)- ファイルをアップロードするクリーンルームの名前。

戻り値: (文字列) - コードファイルをアップロードするパス。``provider.load_python_into_cleanroom``の*imports*引数にこれを使用します。

例:

CALL samooha_by_snowflake_local_db.provider.get_stage_for_python_files($cleanroom_name);
Copy

view_cleanroom_scan_status

スキーマ:

PROVIDER

説明: DISTRIBUTION を EXTERNAL にセットしたクリーンルームの脅威スキャンステータスを報告します。デフォルトのリリースディレクティブをセットまたは変更する前に、スキャンを「APPROVED」としてマークする必要があります。スキャンステータスは、 EXTERNAL クリーンルームでのみ確認する必要があります。

スキャンは、新しいパッチバージョンを生成するアクションの後に実行されます。最も一般的には、これは最初にクリーンルームを公開した後、またはPythonをクリーンルームにアップロードした後になります。Snowflake Data Clean Roomsは:doc:`Snowflake Native Appのセキュリティスキャンフレームワーク</developer-guide/native-apps/security-run-scan>`を使用します。

引数:

  • cleanroom_name (文字列) - ステータスをチェックするクリーンルームの名前。

戻り値: (文字列) スキャンステータス。次の値を使用できます。

  • NOT_REVIEWED - スキャンは進行中です。

  • APPROVED - スキャンに合格しました。

  • REJECTED - スキャンに失敗しました。新しいクリーンルームのバージョンは公開されません。コード内で問題を見つけ、最後のアクションを再試行してください。

  • MANUAL_REVIEW - スキャンにはSnowflakeによる手動のレビューが必要です。これには数日かかる場合があるため、定期的にもう一度確認してください。

例:

CALL samooha_by_snowflake_local_db.provider.view_cleanroom_scan_status($cleanroom_name);
Copy

リクエストログ

次のコマンドを使用して、コンシューマーリクエストログを管理します。リクエストログは、コンシューマーがプロバイダーにメッセージを送信することを可能にし、コンシューマーカスタムテンプレートリクエスト、プロバイダーが実行するリクエストのコンシューマー承認、クロスクラウド自動フルフィルメントなどの機能を有効にするためにマウントする必要があります。

mount_request_logs_for_all_consumers

スキーマ:

PROVIDER

説明: コンシューマーからのリクエストにプロバイダーがアクセスできるようにします。コンシューマーカスタムテンプレートリクエスト、プロバイダーが実行するリクエストのコンシューマー承認、クロスクラウド自動フルフィルメントなど、さまざまな機能をサポートするには、リクエストログをマウントする必要があります。

これは、指定されたクリーンルームを既にインストールしているコンシューマーのリクエストログのみをマウントします。プロバイダーがこのプロシージャを呼び出した後にコンシューマーがクリーンルームをインストールした場合、プロバイダーはこのプロシージャを再度呼び出す必要があります。

引数:

  • cleanroom_name (文字列) - このリクエストログをマウントするクリーンルームの名前。

戻り値: (テーブル) コンシューマーのテーブルで、それぞれのリクエストログのマウントステータス。コンシューマーにクリーンルームへのアクセスが許可されているが、まだクリーンルームをインストールしていない場合、ステータスは保留中と説明され、クリーンルームをインストールした後に再度``mount_request_logs_for_all_consumers``を呼び出す必要があります。

例:

CALL samooha_by_snowflake_local_db.provider.mount_request_logs_for_all_consumers($cleanroom_name);
Copy

view_request_mount_status_for_all_consumers

スキーマ:

PROVIDER

説明: 指定されたクリーンルームの全コンシューマーのリクエストログのマウントステータスを表示します。``provider.mount_request_logs_for_all_consumers``への呼び出しに含まれたコンシューマーのみが表示されます。リクエストログは、コンシューマーからプロバイダーにメッセージを送信することを可能にします。

引数:

戻り値: (テーブル) - コンシューマーのテーブルと、各コンシューマーのリクエストログのマウントステータス。

例:

CALL samooha_by_snowflake_local_db.provider.view_request_mount_status_for_all_consumers($cleanroom_name);
Copy

view_request_logs

スキーマ:

PROVIDER

説明: このクリーンルームのコンシューマーから送信されたリクエストログを表示します。``mount_request_logs_for_all_consumers``への以前の成功した呼び出しに含まれていたコンシューマーからのリクエストのみが表示されます。

引数:

  • cleanroom_name (文字列) - このリクエストログをレビューするクリーンルームの名前。

戻り値: (テーブル) 指定されたクリーンルームのプロバイダーにコンシューマーから送信されたリクエスト。

例:

CALL samooha_by_snowflake_local_db.provider.view_request_logs($cleanroom_name);
Copy

差分プライバシー

これらのコマンドは、ユーザーレベルまたはプロバイダーアカウントレベルで差分プライバシーを制御します。差分プライバシーの詳細を学びます。

set_privacy_settings

スキーマ:

PROVIDER

説明: 指定のコンシューマーがカスタムテンプレートを実行する際に適用されるプライバシー設定をセット(またはリセット)します。このコンシューマーの既存の設定がすべて上書きされます。

引数:

  • cleanroom_name (文字列) - クリーンルームの名前。

  • consumer_account_locator - (文字列)1つ以上のコンシューマーのアカウントロケーター(カンマ区切りリスト)。

  • privacy_settings - (オブジェクト)1つまたは複数のテンプレートの差分プライバシー設定を指定するJSONオブジェクト。設定は、指定されたコンシューマーによって実行されるすべてのテンプレートに適用されます。このオブジェクトで使用可能なフィールドをご参照ください。

戻り値: 成功メッセージ。

例:

-- Enforce differential privacy on queries by this consumer
-- with the settings provided.
CALL samooha_by_snowflake_local_db.provider.set_privacy_settings(
  $cleanroom_name,
  $consumer_locator,
  { 'differential': 1,
    'epsilon': 0.1,
    'privacy_budget': 3 });
Copy

is_dp_enabled_on_account

スキーマ:

PROVIDER

説明: このアカウントで差分プライバシーが有効になっているかどうかを記述します。

引数: なし

戻り値: このアカウントで差分プライバシーが有効になっている場合は TRUE、そうでない場合は FALSE。

例:

CALL samooha_by_snowflake_local_db.provider.is_dp_enabled_on_account();
Copy

suspend_account_dp_task

スキーマ:

PROVIDER

**説明:**差分プライバシー予算を監視および強制するタスクを無効にします。これは:doc:アカウントの差分プライバシーに関連するコスト</user-guide/cleanrooms/cleanroom-cost>`を制御するために使用されます。差分プライバシータスクが無効になっても、差分プライバシーが指定されている場合はユーザー、テンプレート、クリーンルームによってクエリにノイズが追加されますが、予算制限は適用されず、差分プライバシーによるコストは発生しません。:doc:`差分プライバシーの管理の詳細について学びます。</user-guide/cleanrooms/differential-privacy>

引数: なし

戻り値: (String) 成功メッセージ。

例:

CALL samooha_by_snowflake_local_db.provider.suspend_account_dp_task();
Copy

resume_account_dp_task

スキーマ:

PROVIDER

説明: 現在のアカウントの差分プライバシータスクリスナーを再開し、差分プライバシーバジェットを適用します。以前にセットされた差分プライバシーの値(感度や関連ユーザーなど)は保持されます。

引数: なし

戻り値: (String) 成功メッセージ。

例:

CALL samooha_by_snowflake_local_db.provider.resume_account_dp_task();
Copy

Snowpark Container Services コマンド

これらのプロシージャにより、:ref:`クリーンルーム内でのSnowpark Container Servicesの使用<label-dcr_snowpark_spcs>`が可能になります。.

load_service_into_cleanroom

スキーマ:

PROVIDER

**説明:**クリーンルームのコンテナサービスを作成または更新します。このプロシージャを呼び出すと、クリーンルームのパッチ番号が更新されるため、このプロシージャを呼び出した後に``provider.set_default_release_directive``を呼び出す必要があります。サービスを作成または更新するたびに、このプロシージャを呼び出す必要があります。その後、クライアントは``consumer.start_or_update_service``を呼び出して更新を確認する必要があります。

クリーンルームでSnowpark Container Servicesを使用する方法について学習します。

引数:

  • cleanroom_name (文字列) - クリーンルームの名前。

  • service_spec - (文字列)``spec``要素に基づくサービスのYAML仕様。

  • service_config - (文字列)サービスのYAML形式構成。次のプロパティがサポートされています。

    • default_service_options - サービスレベルのデフォルト値のオプション配列。これらの値は、コンシューマーがサービスを作成するときに上書きできます。次の子プロパティがサポートされています。

      • min_instances (整数、オプション)

      • max_instances (整数、オプション)

      • allow_monitoring (Boolean、オプション) - TRUEの場合、コンシューマーはサービスログを表示することができます。デフォルトは FALSE です。

    • functions - サービスによって公開される関数の配列。各関数の定義は:doc:`SPCSサービス関数定義</sql-reference/sql/create-function-spcs>`にマッピングされます。各要素の詳細については、ドキュメントをご参照ください。次の子プロパティがサポートされています。

      • name

      • args

      • returns

      • endpoint

      • path

      • max_batch_rowsオプション

      • context_headersオプション

Returns: (文字列) 成功した場合の成功メッセージ。成功しなかった場合はエラーをスローします。

例:

CALL samooha_by_snowflake_local_db.provider.load_service_into_cleanroom(
    $cleanroom_name,
    $$
    spec:
      containers:
      - name: lal
        image: /dcr_spcs/repos/lal_example/lal_service_image:latest
        env:
          SERVER_PORT: 8000
        readinessProbe:
          port: 8000
          path: /healthcheck
      endpoints:
      - name: lalendpoint
        port: 8000
        public: false
    $$,
    $$
    default_service_options:
      min_instances: 1
      max_instances: 1
      allow_monitoring: true

    functions:
      - name: train
        args: PROVIDER_TABLE VARCHAR, PROVIDER_JOIN_COL VARCHAR, CONSUMER_TABLE VARCHAR, CONSUMER_JOIN_COL VARCHAR, DIMENSIONS ARRAY, FILTER VARCHAR
        returns: VARCHAR
        endpoint: lalendpoint
        path: /train
      - name: score
        args: PROVIDER_TABLE VARCHAR, PROVIDER_JOIN_COL VARCHAR, CONSUMER_TABLE VARCHAR, CONSUMER_JOIN_COL VARCHAR, DIMENSIONS ARRAY
        returns: VARCHAR
        endpoint: lalendpoint
        path: /score
      - name: score_batch
        args: ID VARCHAR, FEATURES ARRAY
        returns: VARIANT
        max_batch_rows: 1000
        endpoint: lalendpoint
        path: /scorebatch
$$);
Copy

環境管理

クリーンルームの機能とサポートされているフローを活用するために、一般的に以下のコマンドを使用します。

manage_datastats_task_on_account

スキーマ:

PROVIDER

説明: クリーンルームの統計を計算するバックグラウンドタスクを有効または無効にします。タスクはデフォルトで実行されていますが、コストを削減するために無効にすることができます。タスクを管理するには、同じ値を持つこのプロシージャの適切な``provider``または``consumer``バージョンをすべてのコラボレーターが呼び出す必要があります。

引数:

  • enable - (ブール値)タスクを有効にする場合はTRUE、タスクを無効にする場合はFALSEです。

戻り値: 成功メッセージ。

例:

-- Disable the task in this account.
CALL samooha_by_snowflake_local_db.provider.manage_datastats_task_on_account(FALSE);
Copy

enable_local_db_auto_upgrades

スキーマ:

LIBRARY

**説明:**新しいプロシージャや機能がリリースされたときに、Snowflake Data Clean Rooms環境を自動的にアップグレードするタスクを有効にします(タスクは``samooha_by_snowflake_local_db.admin.expected_version_task``)。 新しいリリースごとに``library.apply_patch``を呼び出すのではなく、このプロシージャを呼び出してアップグレードを自動化します。

このタスクを無効にすることでコストを削減できるかもしれませんが、システム上にクリーンルーム環境の最新バージョンが確実に存在するように、このタスクを実行したままにすることをお勧めします。

引数: なし

戻り値: (String) 成功メッセージ。

例:

CALL samooha_by_snowflake_local_db.library.enable_local_db_auto_upgrades();
Copy

disable_local_db_auto_upgrades

スキーマ:

LIBRARY

説明: 新しいバージョンがリリースされたときに、Snowflake Data Clean Rooms環境を自動的にアップグレードするタスクを無効にします。自動アップグレードを無効にした場合は、:ref:`新しいリリース<label-new_features_features>`ごとに``library.apply_patch``を呼び出す必要があります。

引数: なし

戻り値: (String) 成功メッセージ。

例:

CALL samooha_by_snowflake_local_db.library.disable_local_db_auto_upgrades();
Copy

apply_patch

スキーマ:

LIBRARY

説明: クリーンルーム環境を更新し、環境の新機能と修正を可能にします。クリーンルーム環境の新しいバージョンがリリースされたときに、これを呼び出します。(これは通常、毎週発生します。:ref:`label-new_features_features`のクリーンルームエントリをご参照ください。)このプロシージャは:doc:`samooha_by_snowflake_local_db</user-guide/cleanrooms/installation-details>`を更新します。

``library.enable_local_db_auto_upgrades``を呼び出すと、パッチの更新を自動化できます。 自動更新を有効にすることをお勧めします。

引数: なし

戻り値: (String) 成功メッセージ。

例:

CALL samooha_by_snowflake_local_db.library.apply_patch();
Copy

patch_cleanroom

スキーマ:

PROVIDER

説明: 指定されたクリーンルームを最新バージョンに更新し、そのクリーンルームの新しい機能と修正を有効にします。通常は、Snowflakeサポートから呼び出しするように指示された場合にのみ呼び出します。

コンシューマーが``library.patch_cleanroom``を呼びだす前にプロバイダーは``library.patch_cleanroom``を呼び出す必要があります。 それ以外の場合は、適用するパッチはありません。

引数:

  • cleanroom_name (文字列):パッチするクリーンルームの名前。

戻り値: (String) 成功メッセージ。

例:

CALL samooha_by_snowflake_local_db.provider.patch_cleanroom($cleanroom_name);
Copy

dcr_health.dcr_tasks_health_check

説明: 実行中または最近停止したクリーンルームのタスクに関する情報を表示します。

引数: なし

戻り値: (テーブル) スケジュール、ウェアハウス名、ウェアハウスサイズなど、クリーンルームタスクに関する情報。

例:

CALL samooha_by_snowflake_local_db.dcr_health.dcr_tasks_health_check();
Copy