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

このページでは、clean room API のコンシューマーが、clean roomを管理するために使用するプロシージャについて説明します。コーディングのセットアップ方法については、 コーディング設定 をご参照ください。

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

provider.view_cleanrooms

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

引数: なし

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

例:

call samooha_by_snowflake_local_db.provider.view_cleanrooms();
Copy

provider.describe_cleanroom

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

引数:

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

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

例:

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

provider.cleanroom_init

説明: アカウントに指定された名前のクリーンルームを作成します。このプロシージャの実行には1分以上かかることがあります。create_or_update_cleanroom_listing を呼び出すまで、クリーンルームはウェブアプリや共同作業者には表示されません。

引数:

  • cleanroom_name(文字列) - クリーンルーム名、最大80文字。名前には[A‑Z,a‑z,0‑9, ,_]が含まれます。

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

    • INTERNAL (デフォルト) - クリーンルームは同じ組織のユーザーだけに公開され、[デフォルトバージョンを変更する](#provider-set-default-release-directive)前にセキュリティスキャンをトリガーしません。

    • EXTERNAL - クリーンルームは実稼働準備が整っており、組織外との共有も可能です。クリーンルームは[デフォルトバージョンを変更する](#provider-set-default-release-directive)前にセキュリティスキャンをトリガーします。クリーンルーム作成後に配布を変更したい場合は、ここに示すように パッケージの変更 を呼び出します。

      alter application package samooha_cleanroom_<CLEANROOM_ID> SET DISTRIBUTION = EXTERNAL;
      
      Copy

戻り値: (文字列) 成功または失敗のメッセージ。

例:

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

provider.set_default_release_directive

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

クリーンルームアプリケーションは、Pythonコードをアップロードまたは変更するたびに、クリーンルームの新しいバージョンを作成します。ユーザーに最新バージョンを提供したい場合は、新しいバージョン番号を指定してこのプロシージャを呼び出してください。利用可能なバージョンを確認し、現在のデフォルトバージョンを知るには、以下を実行してください。

show versions in application package samooha_cleanroom_<CLEANROOM_ID>;
Copy

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

  • バージョン:V1_0

  • パッチ:0

注釈

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

引数:

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

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

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

戻り値: (文字列) 成功または失敗のメッセージ。

例:

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

provider.drop_cleanroom

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

引数:

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

戻り値: (文字列) 成功または失敗のメッセージ。

例:

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

provider.enable_consumer_run_analysis

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

引数:

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

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

戻り値: (文字列) 成功または失敗のメッセージ。

例:

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

provider.disable_consumer_run_analysis

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

引数:

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

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

戻り値: (文字列) 成功または失敗のメッセージ。

例:

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

library.is_consumer_run_enabled

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

引数:

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

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

例:

call samooha_by_snowflake_local_db.library.is_consumer_run_enabled($cleanroom_name)
Copy

provider.create_or_update_cleanroom_listing

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

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

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

1つのアカウントで作成できる数(clean roomとコラボレーターの合計)には制限があります。テスト用にclean roomを作成しすぎた場合、新しいclean roomを作成するために、clean roomをいくつか削除する必要があるかもしれません。アカウントごとの制限を超えるclean roomが必要な場合は、Snowflakeサポートまでご連絡ください。

注釈

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

引数:

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

戻り値: (文字列) 成功または失敗のメッセージ。

例:

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

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

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

データ登録について詳細をご覧ください。

provider.register_db

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

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

データ登録について詳細をご覧ください。

重要

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

引数:

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

戻り値: (文字列) 成功または失敗のメッセージ。

例:

USE ROLE <ROLE_WITH_MANAGE GRANTS>;
call samooha_by_snowflake_local_db.provider.register_db('SAMOOHA_SAMPLE_DATABASE');
Copy

library.register_schema

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

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

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

重要

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

引数:

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

戻り値: (文字列) 成功または失敗のメッセージ。

例:

USE ROLE <ROLE_WITH_MANAGE GRANTS>;
call samooha_by_snowflake_local_db.library.register_schema(['SAMOOHA_SAMPLE_DATABASE.DEMO']);
Copy

library.register_managed_access_schema

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

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

重要

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

引数:

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

戻り値: (文字列) 成功または失敗のメッセージ。

例:

USE ROLE <ROLE_WITH_MANAGE GRANTS>;
call samooha_by_snowflake_local_db.library.register_managed_access_schema(['SAMOOHA_SAMPLE_DATABASE.DEMO']);
Copy

library.register_objects

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

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

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

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

引数:

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

戻り値: (文字列) 成功または失敗のメッセージ。

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

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

library.enable_external_tables_on_account

説明: このアカウントのすべてのclean roomでIcebergまたは外部テーブルを有効にします。Icebergまたは外部テーブルを、プロバイダーとコンシューマーの いずれか のアカウントからリンクするために、その 両方 のアカウントのACCOUNTADMIN から呼び出す必要があります。この機能をこのアカウント内の特定のclean roomに制限するには、 enable_external_tables_for_cleanroom を呼び出してください。

成功し、すべてのセキュリティスキャンがパスすると、clean roomの 新しいパッチバージョン が生成されます。

引数: なし

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

例:

USE ROLE ACCOUNTADMIN;

CALL samooha_by_snowflake_local_db.library.enable_external_tables_on_account();
Copy

provider.enable_external_tables_for_cleanroom

説明: プロバイダーがこのアカウントで指定したclean roomに、Icebergまたは外部テーブルからリンクすることを許可します。このアカウントのすべてのclean roomでIcebergと外部テーブルのリンクを許可するには、 enable_external_tables_on_account を呼び出します。

成功すれば、clean roomの 新しいパッチバージョン が生成されます。

引数:

  • cleanroom_name (文字列) - プロバイダーがIcebergまたは外部テーブルをリンクできるclean room名。

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

例:

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

library.unregister_db

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

引数:

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

戻り値: (文字列) 成功または失敗のメッセージ。

例:

USE ROLE <ROLE_WITH_MANAGE GRANTS>;
call samooha_by_snowflake_local_db.library.unregister_db('SAMOOHA_SAMPLE_DATABASE');
Copy

library.unregister_schema

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

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

引数:

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

戻り値: (文字列) 成功または失敗のメッセージ。

例:

USE ROLE <ROLE_WITH_MANAGE GRANTS>;
call samooha_by_snowflake_local_db.library.unregister_schema(['SAMOOHA_SAMPLE_DATABASE.DEMO']);
Copy

library.unregister_managed_access_schema

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

引数:

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

戻り値: (文字列) 成功または失敗のメッセージ。

例:

USE ROLE <ROLE_WITH_MANAGE GRANTS>;
call samooha_by_snowflake_local_db.library.unregister_managed_access_schema(['SAMOOHA_SAMPLE_DATABASE.DEMO']);
Copy

library.unregister_objects

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

引数:

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

戻り値: (文字列) 成功または失敗のメッセージ。

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

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

ポリシーの管理

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

clean roomのテーブルポリシーについてはこちらをご覧ください。

provider.view_join_policy

説明: クリーンルームに現在適用されている結合ポリシーを表示します。

引数:

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

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

例:

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

provider.set_join_policy

説明: このクリーンルーム内でテンプレートを実行するときに、コンシューマーが結合できる列を指定します。ポリシーは、 置換のみ であることに注意してください。したがって、プロシージャが再度呼び出されると、以前にセットされた結合ポリシーは新しいものに完全に置き換えられます。

重要

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

注釈

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

引数:

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

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

戻り値: (文字列) 成功または失敗のメッセージ。

例:

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

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

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

provider.view_added_templates

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

引数:

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

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

例:

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

provider.view_template_definition

説明: 特定のテンプレートに関する情報を表示します。プロバイダーテンプレートを見るコンシューマーは、 consumer.view_template_definition を使うべきです。

引数:

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

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

戻り値: テンプレート定義(string)

例:

call samooha_by_snowflake_local_db.provider.view_template_definition($cleanroom_name, 'prod_overlap_analysis');
Copy

provider.add_templates

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

引数:

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

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

戻り値: (文字列) 成功または失敗のメッセージ。

例:

call samooha_by_snowflake_local_db.provider.add_templates($cleanroom_name, ['prod_overlap_analysis']);
Copy

provider.clear_template

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

引数:

  • cleanroom_name(string) - クリーンルームの名前。

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

戻り値: (文字列) 成功または失敗のメッセージ。

例:

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

provider.clear_all_templates

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

引数:

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

戻り値: (文字列) 成功または失敗のメッセージ。

例:

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

provider.set_column_policy

説明: データ中のどの列がクリーンルーム内の指定されたテンプレートで非結合行として可用性を持つかをセットします。クリーンルームで使用するには、列はここで宣言されるか、 set_join_policy で宣言されなければなりません。ここにリストされている列は、結合列以外のテンプレート内の任意の場所で使用することができます。列を列ポリシーと結合ポリシーの両方にリストすることはできません。

デフォルトでは、テーブルの列ポリシーは空で、結果には列が表示されません。

このプロシージャは、 完全に動作を置き換える ので、呼び出されるたびに、前の列リストが完全に上書きされます。

列ポリシーのチェックは、データに対して実行される SQL クエリを解析して、許可されていない列がないかどうかを調べることによって行われることに注意してください。ワイルドカードを使用したクエリは、これらのチェックでは検出されない可能性があるため、分析テンプレートを設計する際は慎重に行う必要があります。どうしてもクエリしてはいけない列がある場合は、そのような機密性の高い列を除外したソーステーブルのビューを作成し、代わりにそのビューでリンクすることを検討してください。

引数:

  • cleanroom_name(string) - クリーンルームの名前。

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

戻り値: (文字列) 成功または失敗のメッセージ。

例:

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

provider.view_column_policy

説明: クリーンルームで現在アクティブな列ポリシーのリスト。列ポリシーは、どのテーブル列をどのテンプレートに表示できるかを示します。

引数: cleanroom_name(文字列)

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

例:

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

provider.add_custom_sql_template

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

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

コンシューマーが 結果をプロバイダーにアクティブ化するためにテンプレートを使用する場合、コマンドは以下の要件を満たす必要があります。

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

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

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

引数:

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

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

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

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

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

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

戻り値: (文字列) 成功または失敗のメッセージ。

例:

call samooha_by_snowflake_local_db.provider.add_custom_sql_template(
    $cleanroom_name, 'prod_custom_template', 
    $$
select 
    identifier({{ dimensions[0] | column_policy }}) 
from 
    identifier({{ my_table[0] }}) c 
    inner join 
    identifier({{ source_table[0] }}) p 
    on 
        c.identifier({{ consumer_id  }}) = identifier({{ provider_id | join_policy }}) 
    {% if where_clause %} where {{ where_clause | sqlsafe | join_and_column_policy }} {% endif %};
    $$);
Copy

provider.add_ui_form_customizations

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

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

この関数を呼び出した後、clean roomを更新する必要があります。 UI を更新した後に provider.create_or_update_cleanroom_listing を呼び出さない場合、コラボレーターは更新を確認できません。

引数:

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

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

  • template_information(dict): UI でユーザーに表示される情報。以下のフィールドを含みます。

    • display_name必須): ウェブアプリのテンプレートの表示名。

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

    • methodology必須): コンシューマーがフォームを使用して分析を実行する方法の説明。

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

      • warehouse_size: 有効な値については CREATE WAREHOUSEwarehouse_size をご参照ください。

      • snowpark_optimized (ブール): クエリを処理するために [Snowparkに最適化されたウェアハウスを使用するかどうか。ほとんどの機械学習のユースケースでは、Snowflakeは TRUE を推奨します。

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

      • render_consumer_table_dropdown: (ブール、デフォルト = TRUE) TRUE の場合、デフォルトのコンシューマーテーブルセレクタを表示します。FALSE の場合、コンシューマーテーブルセレクタを非表示にします。テンプレートは、 my_table テンプレート変数を使って、リストとして選択された値にアクセスできます。

      • render_provider_table_dropdown: (ブール、デフォルト = TRUE) TRUE の場合、デフォルトのプロバイダーテーブルセレクタを表示します。FALSE の場合、プロバイダーテーブルセレクタを非表示にします。テンプレートは、 source_table テンプレート変数を使用して、リストとして選択された値にアクセスできます。

    • activation_template_name: (文字列) このclean roomのアクティベーションテンプレートの名前。cleanroom プレフィックスなしでテンプレート名を使用してください。 アクティベーション・テンプレートについてはこちらをご覧ください。

    • enabled_activations: (文字列) どの種類のアクティベーションが有効か。可能な値: コンシューマープロバイダー。デフォルト値はありません。 activation_template_name が指定されている場合は必須です。

  • details(dict): テンプレートに値を渡すユーザー設定可能な入力フィールドを定義します。これはキーとオブジェクトのペアの辞書で、各ペアはユーザー設定可能な UI 要素を1つ表します。キーは JinjaSQL テンプレートの変数名です。値は、 UI 要素を定義するオブジェクトです。各オブジェクトに以下のフィールドがあります:

    <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}} 特別引数を使用し、必要なテーブルを含む独自のドロップダウンリストを定義することができます。カスタムテンプレートを定義する際にこれらの特別な変数を使用する方法については、 provider.add_custom_sql_template をご参照ください。

    • references: クリーンルームで利用可能なテーブルや列を、事前に知っていたり、個別にリストしたりすることなく、ドロップダウンリストに作成します。使用する場合、 type は、「multiselect」または「dropdown」のいずれかでなければなりません。以下の文字列値がサポートされています。

      • PROVIDER_TABLES: ユーザーがアクセスできるクリーンルーム内の全プロバイダーのテーブルのドロップダウンリスト

      • PROVIDER_JOIN_POLICY: provider_parent_table_field で指定されたプロバイダーテーブルから結合できるすべての列のドロップダウンリスト。

      • PROVIDER_COLUMN_POLICY: provider_parent_table_field で指定されたプロバイダーテーブルの列ポリシーを持つすべての列のドロップダウンリスト

      • PROVIDER_ACTIVATION_POLICY: プロバイダーのアクティベーションポリシーに含まれるすべての列のドロップダウンリスト。

      • CONSUMER_TABLES: ユーザーがアクセスできるクリーンルーム内の全コンシューマーテーブルのドロップダウンリスト

      • CONSUMER_COLUMNS: consumer_parent_table_field で指定されたコンシューマーテーブルの、ユーザーがアクセスできるすべての列のドロップダウンリスト。プロバイダーが実行するテンプレートではコンシューマー列参照を使用しないでください。コンシューマーが結合や列ポリシーを適用する可能性があり、列ポリシーが尊重されない場合にクエリが失敗する可能性があるからです。

      • CONSUMER_JOIN_POLICY: consumer_parent_table_field で指定されたコンシューマーテーブルから結合できるすべての列のドロップダウンリスト。

      • CONSUMER_COLUMN_POLICY: consumer_parent_table_field で指定されたコンシューマーテーブルの列ポリシーを持つすべての列のドロップダウンリスト。

    • provider_parent_table_field: ユーザーがプロバイダーテーブルを選択する UI 要素の名前を指定します(ここではテーブル名自体を指定しないでください)。 referencesPROVIDER_COLUMN_POLICY または PROVIDER_JOIN_POLICY にセットされている場合のみ使用します。

    • consumer_parent_table_field: ユーザーがコンシューマーテーブルを選択する UI 要素の名前を指定します(ここではテーブル名自体を指定しないでください)。 referencesCONSUMER_COLUMNSCONSUMER_JOIN_POLICYCONSUMER_COLUMN_POLICY にセットされている場合のみ使用します。

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

    • measure_columns: ウェブアプリケーションが生成するグラフで使用する手段およびディメンションを含む列の名前。

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

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

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

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

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

戻り値: (文字列) 成功または失敗のメッセージ。

例:

-- 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

provider.restrict_template_options_to_consumers

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

引数:

  • cleanroom_name(string) - クリーンルームの名前。

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

戻り値: (文字列) 成功または失敗のメッセージ。

例:

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 では、クリーンルームにテンプレートを追加するコンシューマーからの要求を承認または拒否することができます。コンシューマーが定義したテンプレートは、プロバイダーがコンシューマーの追加リクエストを承認した場合のみ、クリーンルームに追加されます。詳細については、[開発者 API を使用してコンシューマー定義のテンプレートを追加する](/user-guide/cleanrooms/developer-consumer-templates)をご参照ください。

provider.list_pending_template_requests

説明: clean roomにコンシューマー定義のテンプレートを追加したいコンシューマーからのすべての未承認のリクエストをリストします。これには、保留中のリクエスト、承認済みのリクエスト、拒否済みのリクエストが含まれます。このプロシージャを使用して保留中のリクエストをチェックし、承認したり(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($template_name);
Copy

provider.list_template_requests

説明: クリーンルームにコンシューマー定義のテンプレートを追加したいコンシューマーからのすべてのリクエストをリストします。これには、保留中のリクエスト、承認済みのリクエスト、拒否済みのリクエストが含まれます。保留中のリクエストをチェックし、承認する(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($template_name);
Copy

provider.approve_template_request

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

引数:

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

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

戻り値: (文字列) 成功または失敗のメッセージ。

例:

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

provider.approve_multiple_template_requests

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

引数:

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

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

戻り値: (文字列) 成功または失敗のメッセージ。

例:

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

provider.reject_template_request

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

引数:

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

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

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

戻り値: (文字列) 成功または失敗のメッセージ。

例:

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

provider.reject_multiple_template_requests

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

引数:

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

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

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

    • reason_for_rejection(文字列) - リクエストを拒否する理由をフリーテキストで記述します。

戻り値: (文字列) 成功または失敗のメッセージ。

例:

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

テンプレートチェーン

テンプレートチェーンの作成と管理には以下のコマンドを使います。

provider.add_template_chain

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

引数:

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

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

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

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

    • cache_results (ブール) - テンプレートチェーンの他のテンプレートがアクセスできるように、テンプレートの結果を一時的に保存するかどうかを決定します。結果をキャッシュするには、 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 の場合、キャッシュ内の結果が削除されるまでの時間数を指定します。キャッシュの有効期限が切れると、次にテンプレートチェーンが実行されたときに、キャッシュはテンプレートの結果でリフレッシュされます。

戻り値: (文字列) 成功または失敗のメッセージ。

例:

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

provider.view_added_template_chains

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

引数:

  • cleanroom_name(string) - クリーンルームの名前。

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

例:

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

provider.view_template_chain_definition

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

引数:

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

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

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

例:

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

provider.clear_template_chain

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

引数:

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

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

戻り値: (文字列) 成功または失敗のメッセージ。

例:

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

マルチプロバイダー分析

以下のプロシージャは、 マルチプロバイダー分析 を有効にします。

provider.enable_multiprovider_computation

説明: このプロシージャは、clean roomのテーブルを、特定のユーザーからのリクエストに応じて、指定のテンプレートと組み合わせて使用できるようにします。このプロシージャにより、コンシューマーが複数のclean roomのデータに対してクエリを実行することが可能になります。このプロシージャでは、これらのリクエストが自動では承認されませんが、 <label-dcr_monitoring_multi_provider_request_history> このclean roomのマルチプロバイダーリクエストログ{ref} にリクエストのログを記録することで、特定のユーザーとclean roomによる手動または自動での承認プロセスが開始されるようにします。

このclean roomへの consumer.prepare_multiprovider_flow を使用した呼び出しは、このclean roomの enable_multiprovider_computation を呼び出す前であっても保存および表示されます。

コンシューマーによる、アカウント内の複数のclean roomへのアクセスを許可するには、 cleanroom_name 引数で1つのclean roomを指定し、 approved_other_cleanrooms 引数で他のclean roomを指定します。

このプロシージャで、結合ポリシーをclean roomにセットする必要があります。

リクエストがログに記録されると、指定されたユーザーとクエリのリクエストフローに従って承認が行われます。

リクエストを開始した後に、リクエストログを無効にすることはできませんが、特定のユーザーの自動承認を保留し(provider.suspend_multiprovider_tasksを呼び出してそれを許可した場合)、それ以降リクエストを承認しないようにもできます。

引数:

  • cleanroom_name(文字列) - 所有するクリーンルームの名前。このclean roomのすべてのデータを、 consumer_account によるマルチプロバイダーリクエストで、 approved_other_cleanrooms にリストされているclean roomと共有することができます。

  • consumer_account(文字列) - リクエストを行うことを許可され、承認された場合、 approved_other_cleanrooms にリストされたクリーンルームからのデータと組み合わせて、このクリーンルーム内の任意のテーブルに対してクエリを実行することを許可されたコンシューマーのアカウントロケーター。

  • approved_other_cleanrooms(文字列の配列) - このクリーンルームからのデータを結合できる完全修飾されたクリーンルーム名の配列。各エントリーの形式は provider_org_name.provider_account_name.cleanroom_name です。 重要: 各clean roomの説明には、 アカウントロケーター ではなくアカウント名 を記入してください。

戻り値: (文字列) 成功または失敗のメッセージ。

例:

CALL samooha_by_snowflake_local_db.provider.enable_multiprovider_computation(
  $cleanroom_name,
  $consumer_account_locator,
  <org_name>.<account_locator>.<cleanroom_name>);
Copy

provider.view_multiprovider_requests

説明: 指定されたアカウントとクリーンルームからのマルチプロバイダー分析のすべてのリクエストを表示します。これには承認されたリクエストと拒否されたリクエストの両方が含まれます。プロバイダーは、リクエストを手動で承認するために必要なポーリングを、 provider.process_multiprovider_request を呼び出して行うために、あるいは、指定されたclean roomの特定のコンシューマーによるすべてのリクエストを確認するために、このプロシージャを使用します。

view_multiprovider_requests を呼び出す前に、このclean roomとコンシューマーアカウントに対して enable_multiprovider_computation を呼び出す必要があります。

引数:

  • cleanroom_name (文字列) - このclean roomの特定のコンシューマーからのリクエストを表示します。

  • consumer_account (文字列) - 指定されたclean roomの、このコンシューマーカウントロケータからのリクエストを表示します。

戻り値: (文字列) 成功または失敗のメッセージ。

例:

CALL samooha_by_snowflake_local_db.provider.view_multiprovider_requests($cleanroom_name, $consumer_locator);
Copy

provider.process_multiprovider_request

説明: すべてのチェックにパスした場合に、特定のマルチプロバイダークエリの実行を承認します。リクエストが最初に作成されてからの期間や、前回 provider.enable_multiprovider_computation を呼び出した際にプロバイダーがリクエストを承認したかどうかなどがチェックされます。コンシューマーは consumer.execute_multiprovider_flow を呼び出さなければクエリを実行できません。リクエストは承認されなければ4時間後に破棄されます。

デフォルトでは、すべてのマルチプロバイダーリクエストを、このプロシージャを使用して処理する必要があります。このclean roomとコンシューマーの組み合わせで、すべてのリクエストを自動的に承認するように設定する場合は、 request_id-1 を指定してください。このclean room内のすべてのコンシューマーによるリクエストをすべて承認したい場合は、 provider.resume_multiprovider_tasks を呼び出してください。 過去に承認されたリクエストを取り消す方法についてはこちらをご覧ください。

リクエストが評価されると、リクエストと評価のステータスが、 このclean roomのログテーブル に書き込まれます。

引数:

  • cleanroom_name(文字列) - コンシューマーがマルチプロバイダー分析に含めるよう求めているクリーンルームの名前。

  • consumer_account(文字列) - マルチプロバイダー分析をリクエストするユーザーのコンシューマーアカウントロケーター。このロケーターは、 provider.enable_multiprovider_computation への呼び出しで、リクエストにリストされたこのクリーンルームと他のクリーンルームについて承認されている必要があります。

  • request_id(文字列) - provider.view_multiprovider_requests からの承認するリクエスト ID。 -1 を渡すと、このclean roomの、このコンシューマーに対するすべてのリクエストが承認されます。

戻り値: (文字列) 成功または失敗のメッセージ。

例:

CALL samooha_by_snowflake_local_db.provider.process_multiprovider_request($cleanroom_name_1, $consumer_account_locator, $request_id);
Copy

provider.suspend_multiprovider_tasks

説明: 指定されたclean roomの、マルチプロバイダークエリの自動レビューと承認(クエリの評価)を停止します。そのclean roomに対するマルチプロバイダークエリは有効ですが、リクエストごとに provider.process_multiprovider_request を呼び出して、プロバイダーから明示的に承認を得ることが必要になります。

すべてのclean roomは、デフォルトでマルチプロバイダー自動承認が無効な状態です。これを有効にするには、 provider.resume_multiprovider_tasks を呼び出します。

引数:

  • cleanroom_name(string) - クリーンルームの名前。

  • consumer_account (文字列) - このclean roomのすべてのテンプレートで、マルチプロバイダーリクエストを中断するコンシューマーのアカウントロケータ。それ以降、このclean roomの、このユーザーによるリクエストは却下されます。

戻り値: (文字列) 成功または失敗のメッセージ。

例:

CALL samooha_by_snowflake_local_db.provider.suspend_multiprovider_tasks($cleanroom_name, $consumer_locator);
Copy

provider.resume_multiprovider_tasks

説明: 指定のclean roomの、指定のユーザーに対するマルチプロバイダー分析の自動レビューと承認(クエリの評価)を有効にします。clean roomは、デフォルトで自動レビューが無効になっています。

自動承認を停止するには、 provider.suspend_multiprovider_tasks を呼び出します。

引数:

  • cleanroom_name(string) - クリーンルームの名前。

  • consumer_account (文字列) - このclean roomのマルチプロバイダーリクエストをキューに入れる、コンシューマーのアカウントロケータ。

戻り値: (文字列) 成功または失敗のメッセージ。

例:

CALL samooha_by_snowflake_local_db.provider.resume_multiprovider_tasks('my_cleanroom', $consumer_locator);
Copy

アクティベーション

アクティベーション とは、プロバイダー、コンシューマー、またはサードパーティに結果をエクスポートすることです。 アクティベーションについてもっと読む。

provider.set_activation_policy

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

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

引数:

  • cleanroom_name(文字列) - アクティベーションが許可されるべきクリーンルームの名前。

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

戻り値: (文字列) 成功または失敗のメッセージ。

例:

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

provider.update_activation_warehouse

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

引数:

  • size (文字列) - ウェアハウスのサイズ。CREATE WAREHOUSE コマンドから、WAREHOUSE_SIZE のいずれかの値を選択します。

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

例:

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

provider.setup_provider_activation_share_mount_task

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

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

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

引数:

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

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

例:

CALL samooha_by_snowflake_local_db.provider.setup_provider_activation_share_mount_task(15);
Copy

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

プロバイダー分析の実行方法を学習します。

provider.enable_provider_run_analysis

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

プロバイダーが実行する分析について詳細をご覧ください。

重要

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

引数:

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

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

戻り値: (文字列) 成功または失敗のメッセージ。

例:

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

provider.disable_provider_run_analysis

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

重要

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

引数:

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

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

戻り値: (文字列) 成功または失敗のメッセージ。

例:

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

library.is_provider_run_enabled

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

引数:

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

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

例:

call samooha_by_snowflake_local_db.library.is_provider_run_enabled($cleanroom_name)
Copy

provider.view_warehouse_sizes_for_template

説明: 指定のテンプレートを使用した、プロバイダーが実行する分析で使用可能なウェアハウスについて、サイズとタイプのリストを表示します。コンシューマーはまず、 consumer.enable_templates_for_provider_run の呼び出しで、このリストを入力する必要があります。

引数:

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

  • cleanroom_name(string) - クリーンルームの名前。

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

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

戻り値: 許可されたウェアハウスのサイズとタイプの表。サポートされるウェアハウスのタイプとサイズの文字列を、 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

provider.submit_analysis_request

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

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

引数:

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

  • consumer_account_locator(文字列) - consumer.enable_templates_for_provider_run を呼び出すことによってプロバイダーが実行する分析を許可した、このクリーンルーム内のコンシューマーのアカウントロケーター。

  • template_name(文字列) - 実行するテンプレートの名前。

  • provider_tables(array) - テンプレートに公開するプロバイダーテーブルのリスト。このリストは、 source_table 配列変数に入力されます。

  • consumer_tables(array) - テンプレートに公開するコンシューマーテーブルのリスト。このリストは、 my_table 配列変数に入力されます。

  • analysis_arguments(オブジェクト) - 各キーが、作成したテンプレートで使用される引数名である JSON オブジェクト。ウェアハウスのタイプとサイズを指定したい場合は、 provider.view_warehouse_sizes_for_template でリストされているタイプとサイズを選択し、以下のフィールドを使用して指定します:

    • warehouse_type (文字列) - 指定のテンプレートを使用した、プロバイダーが実行する分析でコンシューマーがサポートするウェアハウスのタイプ。

    • warehouse_size (文字列) - 指定のテンプレートを使用した、プロバイダーが実行する分析でコンシューマーがサポートするウェアハウスのサイズ。

戻り値: (文字列) リクエスト 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

provider.check_analysis_status

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

引数:

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

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

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

戻り値: (文字列) リクエストのステータス。 COMPLETED は分析の正常終了を意味します。考えられるステータス:

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

  • FAILED: 分析の実行中に問題が発生した。

  • COMPLETED: 分析が完了した。

  • NOT FOUND: 指定した引数から結果が得られなかった (リクエスト IDが正しくないなど)。

例:

-- 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

provider.get_analysis_result

説明: プロバイダーが実行する分析の結果を取得します。結果を得るには、分析ステータスが COMPLETED とリストされるまで待つ必要があります。結果はクリーンルーム内で無期限に持続します。

引数:

  • 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

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

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

provider.view_consumers

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

引数:

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

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

例:

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

provider.add_consumers

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

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

引数:

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

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

  • consumer_account_names (文字列) - コンシューマーの コンシューマーデータ共有アカウント IDs をカンマで区切ったリスト。形式は org_name.account_name組織名CURRENT_ORGANIZATION_NAME を呼び出して取得します。 アカウント名CURRENT_ACCOUNT_NAME を呼び出して取得します。このリストには、 consumer_account_locators にリストされているのと同じ数の項目を、同じ順番で含める必要があります。

  • enable_differential_privacy_tasks (ブール、オプション) - TRUE の場合、このclean roomにリストされたユーザーによるすべてのクエリで、差分プライバシーが適用されます。これを使用し、リストされたユーザーのデフォルト値で差分プライバシーを有効にできます。高度な設定を指定する場合は、 privacy_settings 引数を指定します。差分プライバシーを有効にするには、このclean roomで差分プライバシータスクを実行する必要があります。デフォルトは FALSE です。

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

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

例:

-- 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

provider.remove_consumers

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

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

引数:

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

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

戻り値: (文字列) - 成功または失敗のメッセージ。

例:

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

provider.set_cleanroom_ui_accessibility

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

引数:

  • cleanroom_name(string) - クリーンルームの名前。

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

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

    • EDITABLE - クリーンルームをウェブアプリで見えるようにします。

戻り値: (文字列) 成功または失敗のメッセージ。

例:

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

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

別のクラウドリージョンのコンシューマーとclean roomを共有することを可能にします。 詳細はこちら。

library.enable_laf_on_account

説明: 現在のアカウントでクロスクラウド自動フルフィルメントを有効にします。ACCOUNTADMIN ロールが必要です。

引数: なし

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

例:

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

library.is_laf_enabled_on_account

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

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

例:

call samooha_by_snowflake_local_db.library.is_laf_enabled_on_account();
Copy

provider.enable_laf_for_cleanroom (非推奨)

この関数は現在、非推奨であり、現在は provider.create_or_update_cleanroom_listing で処理されています。

説明: クロスクラウド自動フルフィルメントを有効にすることで、プロバイダーのアカウントと異なるリージョンにあるSnowflakeアカウントを持つコラボレーターとクリーンルームを共有することができます。クロスクラウド自動複製は、リストの自動複製(LAF)とも呼ばれています。

デフォルトでは、クロスクラウド自動フルフィルメントは、それが環境に有効であっても、新しいクリーンルームのためにオフになっています。

重要

このコマンドを実行する 前に、 ACCOUNTADMIN ロールを持つSnowflake管理者が、Snowflakeアカウントでクロスクラウド自動フルフィルメントを有効にする必要があります。Snowflakeアカウントでクロスクラウド自動フルフィルメントを有効にする手順については、異なるリージョンのアカウントとのコラボレーションを参照してください。

他リージョンのコンシューマーと協力するためには、さらにコストがかかります。これらのコストの詳細情報については、 クロスクラウド自動フルフィルメントコスト を参照してください。

引数:

cleanroom_name(文字列) - リージョン間で共有されるべきクリーンルームの名前。個々のクリーンルームを共有する前に、管理者がアカウントに対してクロスクラウド自動フルフィルメントを有効にする必要があります。

戻り値: (文字列) 成功または失敗のメッセージ。

例:

call samooha_by_snowflake_local_db.provider.enable_laf_for_cleanroom($cleanroom_name);
Copy

provider.request_laf_cleanroom_requests

説明: 指定のコンシューマーに対し、プロバイダー側でクロスクラウドのリクエスト共有をセットアップします。アカウント管理者は、まず クロスクラウド自動フルフィルメントを有効にし、コンシューマーは consumer.setup_cleanroom_request_share_for_laf を呼び出す必要があります。

このプロセスは、プロバイダーとコンシューマーが異なるクラウドリージョンにいる場合に、コンシューマー定義のテンプレートで必要になります。

リクエストのステータスをチェックするために、このプロシージャを繰り返し呼び出すことができます。ステータスが FULFILLED に達したら、 provider.mount_laf_cleanroom_requests_share を呼び出します。ステータスが FULFILLED に達するまで10分かかることがあります。

引数:

  • cleanroom_name (文字列) - クロスクラウドのリクエスト共有を有効にするclean roomの名前。

  • consumer_locator (文字列) - クロスクラウドのリクエスト共有を有効にするコンシューマーのアカウントロケータ。

戻り値: (文字列) リクエストのステータスメッセージ: 作成、保留中、または履行済み。

例:

CALL samooha_by_snowflake_local_db.provider.request_laf_cleanroom_requests(
  $cleanroom_name, $consumer_locator);
Copy

provider.mount_laf_cleanroom_requests_share

説明: 指定のclean roomとコンシューマーアカウントで、クロスクラウドのリクエストへのアクセスを可能にします。 provider.request_laf_cleanroom_requests が FULFILLED のステータスを返すまでは、このプロシージャを呼び出せません。

このプロセスは、プロバイダーとコンシューマーが異なるクラウドリージョンにいる場合に、コンシューマー定義のテンプレートで必要になります。

引数:

  • cleanroom_name (文字列) - 共有されるClean room。

  • consumer_locator (文字列) - このclean roomでクロスクラウドのリクエストを行うコンシューマーのSnowflakeアカウントロケーター。

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

例:

CALL samooha_by_snowflake_local_db.provider.mount_laf_cleanroom_requests_share(
  $cleanroom_name, $consumer_locator);
Copy

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

provider.load_python_into_cleanroom

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

クリーンルームでPythonコードをアップロードして使う方法を学習しましょう。

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

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

署名

インライン UDF アップロード:

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

ステージから UDF アップロード:

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

引数:

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

  • function_name(文字列) - このパッケージの名前。 handler で指定された関数を arguments で指定された引数で呼び出すには、カスタムテンプレート内でこの名前を使用します。

  • arguments(文字列ペアの配列) - 関数 function_name が必要とする引数の配列。各引数には、引数名と SQL データ型の文字列を、スペースで区切って入力します。これはユーザーのドキュメントに使用され、検証されません。例: 'size integer'、'month string'、'data variant'。

  • packages(文字列の配列) - コードが使用するPythonパッケージ名のリスト。これらはPythonの標準パッケージでなければなりません。 UDFs はアップロードされた他の UDFs を呼び出すことはできません。

  • imports(単一要素の文字列の配列) - ステージから UDF をアップロードするときのみ表示されます。これは、コードをアップロードしたステージを基準としたステージアドレスという、単一の要素を持つ文字列の配列です。ルートステージのパスは、 provider.get_stage_for_python_files を呼び出すことで利用可能になります。

  • ret_type(文字列) - 関数 handler によって返される値の SQL データ型。例: 'integer'、'variant'。

  • handler(文字列) - テンプレートが function_name を呼び出したときに呼び出されるコード内のエントリポイント関数。

    • インライン UDF の場合、これは関数名です。例: main

    • ステージからアップロードされたコードの場合、これはソースファイル名で修飾された関数名です。例: myscript.main

  • code(文字列) - インラインコードとして UDF をアップロードする場合にのみ存在します。これはPython UDFであるべきです。

戻り値: (文字列) 成功または失敗のメッセージ。

例:

-- Inline UDF

call samooha_by_snowflake_local_db.provider.load_python_into_cleanroom(
    $cleanroom_name, 
    'assign_group',                      # Name of the UDF
    ['data variant', '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 variant', 'index integer'],   # Arguments of the UDF
    ['numpy', 'pandas'],                 # Packages UDF will use
    ['/test_folder/assign_group.py'],    # Python file to import from a stage
    'integer',                           # Return type of UDF
    'assign_group.main'                  # Handler scoped to file name
);
Copy

provider.get_stage_for_python_files

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

クリーンルームでPythonコードをアップロードして使う方法を学習しましょう。

引数:

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

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

例:

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

provider.view_cleanrooom_scan_status

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

引数:

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

戻り値: (文字列) スキャンステータス。

例:

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

クリーンルームのメタデータゲッターコマンド

クリーンルームの関連プロパティを表示するには、以下のコマンドを使用します。

library.view_external_activation_history

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

引数: なし

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

:

call SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.LIBRARY.view_external_activation_history();
Copy

provider.mount_request_logs_for_all_consumers

説明: クリーンルームのコンシューマーからプロバイダーへ戻ってくる情報にプロバイダーがアクセスできるようにします。コンシューマー情報の取得や共有を開始するために、このプロシージャをさまざまな状況で呼び出す必要があります(API リファレンスを参照)。

引数:

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

戻り値: (文字列) 成功または失敗のメッセージ。

例:

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

provider.view_request_logs

説明: このクリーンルームのコンシューマーから送信されたリクエストログを表示します。これを初めて呼び出す前に、 mount_request_logs_for_all_consumers を呼び出す必要があります。

引数:

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

戻り値: クリーンルーム(テーブル)に対して実行されているクエリの記録されたログのセット

例:

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

差分プライバシー

これらのコマンドにより、ユーザーレベルまたはプロバイダーアカウントレベルで差分プライバシーを制御します。 差分プライバシーについてはこちらを参照してください。

provider.set_privacy_settings

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

引数:

  • cleanroom_name(string) - クリーンルームの名前。

  • 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

provider.is_dp_enabled_on_account

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

引数: なし

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

例:

call samooha_by_snowflake_local_db.provider.is_dp_enabled_on_account();
Copy

provider.suspend_account_dp_task

説明: 差分プライバシーバジェットを監視および実行するタスクを無効にします。アカウントで差分プライバシー関連のコストを制御するために使用されます。差分プライバシータスクを無効にした場合でも、ユーザー、テンプレート、clean room(差分プライバシーが指定されている場合)によるクエリにはノイズが追加されますが、バジェットの制限が適用されないため、差分プライバシーによるコストは発生しません。 差分プライバシーの管理の詳細

引数: なし

戻り値: (文字列) 成功または失敗のメッセージ。

例:

call samooha_by_snowflake_local_db.provider.suspend_account_dp_task();
Copy

provider.resume_account_dp_task

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

引数: なし

戻り値: (文字列) 成功または失敗のメッセージ。

例:

call samooha_by_snowflake_local_db.provider.resume_account_dp_task();
Copy

Snowpark Container Services コマンド

これらのプロシージャにより、 Snowparkコンテナーサービスをclean room内で使用すること が可能になります。

provider.load_service_into_cleanroom

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

ref:

clean roomでのSnowparkコンテナーサービスの使用について説明します。 <label-cleanrooms_using_spcs>

引数:

  • cleanroom_name(string) - クリーンルームの名前。

  • service_spec (文字列) - spec 要素をルートとする、サービスの YAML 仕様。

  • service_config (文字列) - YAML 形式によるサービスの構成。以下のプロパティを指定できます:

    • default_service_options - サービスレベルのデフォルト値の配列(オプション)。これらの値は、コンシューマーがサービスを作成する際に上書きできます。以下の子プロパティに対応しています:

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

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

      • allow_monitoring (ブール、オプション) - TRUE の場合、コンシューマーによるサービスログの参照が許可されます。デフォルトは FALSE です。

    • functions - サービスが公開する関数の配列。各関数定義は、 SPCS サービス関数定義 にマッピングされます。各要素の詳細については、ドキュメントを参照してください。以下の子プロパティに対応しています:

      • 名前

      • args

      • returns

      • endpoint

      • パス

      • 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

一般的なヘルパーコマンド

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

library.enable_local_db_auto_upgrades

説明: タスク samooha_by_snowflake_local_db.admin.expected_version_task を有効にします。このタスクは、新しいバージョンがリリースされると、Snowflake Data Clean Rooms Native Appを自動的にアップグレードします。このタスクを無効にすることでコストを削減できるかもしれませんが、システム上にクリーンルームネイティブアプリの最新バージョンがあることを確認するために、このタスクを実行したままにすることをお勧めします。

引数: なし

戻り値: (文字列) 成功または失敗のメッセージ。

例:

call samooha_by_snowflake_local_db.library.enable_local_db_auto_upgrades();
Copy

library.disable_local_db_auto_upgrades

説明: タスク samooha_by_snowflake_local_db.admin.expected_version_task を無効にします。このタスクは、新しいバージョンがリリースされると、Snowflake Data Clean Rooms Native Appを自動的にアップグレードします。

引数: なし

戻り値: (文字列) 成功または失敗のメッセージ。

例:

call samooha_by_snowflake_local_db.library.disable_local_db_auto_upgrades();
Copy

非推奨プロシージャ

以下のプロシージャは非推奨であり、ここでは念のためリストアップしています。交換プロシージャが示されている場合は、新しいプロシージャを使用してください。

provider.view_ui_registration_request_log -- DEPRECATED

注意

このコマンドは非推奨となりました。 ウェブアプリで使用するクリーンルームテンプレートを手動で登録する必要はなくなりました。

説明: クリーンルームをウェブアプリに登録するためにアカウントから発生したリクエストのリストを表示します。リクエストごとに関連付けられた ID があります。これは、 view_ui_registration_log プロシージャと併用して、リクエストのステータスを表示できます。リクエストはバックエンドに共有され、そこで処理され、クリーンルームがクリーンルームに追加されます。

引数:

戻り値: (文字列) 成功または失敗のメッセージ。

例:

call samooha_by_snowflake_local_db.provider.view_ui_registration_request_log();
Copy

library.register_table_or_view -- 非推奨

注意

このコマンドは非推奨となりました。 代わりにlibrary.register_objectsを使用してください。

説明: あらゆるタイプのテーブルとビューを登録します。

引数: object_names(array)、is_view(boolean)、is_iceberg(boolean)、is_external(boolean)、is_under_managed_access_schema(boolean)

戻り値: (文字列) 成功または失敗のメッセージ。

テーブルを登録するには:

call samooha_by_snowflake_local_db.library.register_table_or_view(
    ['SAMOOHA_SAMPLE_DATABASE.DEMO.CUSTOMERS'],
    false,
    false,
    false,
    false);
Copy

Icebergテーブルを登録するには:

call samooha_by_snowflake_local_db.library.register_table_or_view(
        ['SAMOOHA_SAMPLE_DATABASE.DEMO.CUSTOMERS'], 
        false, 
        true,
        false,
        false);
Copy

library.register_table -- 非推奨

注意

このコマンドは非推奨となりました。 代わりにlibrary.register_objectsを使用してください。

説明: register_db と似ていますが、テーブルレベルで操作します。このテーブルの SELECT 権限を SAMOOHA_APP_ROLE ロールに付与し、ユーザーがテーブルをクリーンルームにリンクできるようにします。

管理アクセススキーマ(つまり、 WITH MANAGED ACCESS パラメーターを使用して作成されたスキーマ)にテーブルを登録したい場合は、代わりに library.register_managed_access_table を使用してください。

引数: table_name(array)

戻り値: (文字列) 成功または失敗のメッセージ。

例:

call samooha_by_snowflake_local_db.library.register_table(['SAMOOHA_SAMPLE_DATABASE.DEMO.CUSTOMERS']);
Copy

library.register_managed_access_table -- 非推奨

注意

このコマンドは非推奨となりました。 代わりにlibrary.register_objectsを使用してください。

説明: register_table と似ていますが、 WITH MANAGED ACCESS パラメーターを使用して作成されたスキーマのテーブルを登録します。完全修飾されたテーブル名を表す配列または文字列を渡すことができ、SAMOOHA_APP_ROLEロールへのグラント選択が行われ、ユーザーはテーブルをクリーンルームにリンクすることができます。

引数: table_name(array)

戻り値: (文字列) 成功または失敗のメッセージ。

例:

call samooha_by_snowflake_local_db.library.register_managed_access_table(['SAMOOHA_SAMPLE_DATABASE.DEMO.CUSTOMERS']);
Copy

library.register_view -- 非推奨

注意

このコマンドは非推奨となりました。 代わりにlibrary.register_objectsを使用してください。

説明: register_db と似ていますが、ビューレベルで操作します。完全修飾されたビュー名を表す配列または文字列を渡すことができ、 SAMOOHA_APP_ROLE ロールへの付与選択が行われ、ユーザーはビューをクリーンルームにリンクすることができます。

管理アクセススキーマ(つまり、 WITH MANAGED ACCESS パラメーターを使用して作成されたスキーマ)にビューを登録したい場合は、代わりに library.register_managed_access_view を使用してください。

引数: view_name(array)

戻り値: (文字列) 成功または失敗のメッセージ。

例:

call samooha_by_snowflake_local_db.library.register_view(['SAMOOHA_SAMPLE_DATABASE.DEMO.CUSTOMERS']);
Copy

library.register_managed_access_view -- 非推奨

注意

このコマンドは非推奨となりました。 代わりにlibrary.register_objectsを使用してください。

説明: register_view と似ていますが、 WITH MANAGED ACCESS パラメーターを使用して作成されたスキーマのビューを登録します。完全修飾されたビュー名を表す配列または文字列を渡すことができ、 SAMOOHA_APP_ROLE ロールへの付与選択が行われ、ユーザーはビューをクリーンルームにリンクすることができます。

引数: view_name(array)

戻り値: (文字列) 成功または失敗のメッセージ。

例:

call samooha_by_snowflake_local_db.library.register_managed_access_view(['SAMOOHA_SAMPLE_DATABASE.DEMO.CUSTOMERS']);
Copy

library.unregister_table_or_view -- 非推奨

注意

このコマンドは非推奨となりました。 代わりにlibrary.unregister_objectsを使用してください。

説明: すべてのタイプのテーブルとビューの登録を解除します。

引数: object_names(array)、is_view(boolean)、is_iceberg(boolean)、is_external(boolean)、is_under_managed_access_schema(boolean)

戻り値: (文字列) 成功または失敗のメッセージ。

テーブルの登録を解除するには:

call samooha_by_snowflake_local_db.library.unregister_table_or_view(
    ['SAMOOHA_SAMPLE_DATABASE.DEMO.CUSTOMERS'],
    false,
    false,
    false,
    false);
Copy

library.unregister_table -- 非推奨

注意

このコマンドは非推奨となりました。 代わりにlibrary.unregister_objectsを使用してください。

説明: unregister_db と似ていますが、テーブルレベルで操作します。テーブルの登録を解除するために、完全修飾テーブル名を表す配列または文字列を渡すことができます。未登録のテーブルをクリーンルームにリンクすることはできません。

管理アクセススキーマ(つまり、 WITH MANAGED ACCESS パラメーターを使用して作成されたスキーマ)のテーブルの登録を解除したい場合は、代わりに library.unregister_managed_access_table を使用してください。

引数: table_name(array)

戻り値: (文字列) 成功または失敗のメッセージ。

例:

call samooha_by_snowflake_local_db.library.unregister_table(['SAMOOHA_SAMPLE_DATABASE.DEMO.CUSTOMERS']);
Copy

library.unregister_managed_access_table -- 非推奨

注意

このコマンドは非推奨となりました。 代わりにlibrary.unregister_objectsを使用してください。

説明: unregister_table と似ていますが、管理アクセススキーマ(つまり、 WITH MANAGED ACCESS パラメーターを使用して作成されたスキーマ)のテーブルの登録を解除します。

引数: table_name(array)

戻り値: (文字列) 成功または失敗のメッセージ。

例:

call samooha_by_snowflake_local_db.library.unregister_managed_access_table(['SAMOOHA_SAMPLE_DATABASE.DEMO.CUSTOMERS']);
Copy

library.unregister_view -- 非推奨

注意

このコマンドは非推奨となりました。 代わりにlibrary.unregister_objectsを使用してください。

説明: unregister_db と似ていますが、ビューレベルで操作します。ビューの登録を解除するには、完全修飾したビュー名を表す配列あるいは文字列を渡します。未登録のビューをクリーンルームにリンクすることはできません。

管理アクセススキーマ(つまり、 WITH MANAGED ACCESS パラメーターを使用して作成されたスキーマ)内のビューの登録を解除したい場合は、代わりに library.unregister_managed_access_view を使用してください。

引数: view_name(array)

戻り値: (文字列) 成功または失敗のメッセージ。

例:

call samooha_by_snowflake_local_db.library.unregister_view(['SAMOOHA_SAMPLE_DATABASE.DEMO.CUSTOMERS']);
Copy

library.unregister_managed_access_view -- 非推奨

注意

このコマンドは非推奨となりました。 代わりにlibrary.unregister_objectsを使用してください。

説明: unregister_view と似ていますが、管理アクセススキーマ(つまり、 WITH MANAGED ACCESS パラメーターを使用して作成されたスキーマ)のビューの登録を解除します。

引数: view_name(array)

戻り値: (文字列) 成功または失敗のメッセージ。

例:

call samooha_by_snowflake_local_db.library.unregister_managed_access_view(['SAMOOHA_SAMPLE_DATABASE.DEMO.CUSTOMERS']);
Copy

provider.create_cleanroom_listing -- 非推奨

注意

このコマンドは非推奨となりました。 代わりにprovider.create_or_update_cleanroom_listingを使用してください。

説明: クリーンルームが構成された後、Snowflake Marketplaceにクリーンルームのプライベートリストを作成し、指定されたコラボレーターと共有します。

orgname.account_nameフォーマットのアカウントURLを用いてコラボレーターを識別子とします。コンシューマーは、アカウントの組織名とアカウント名の検索の指示に従って、この文字列を見つけることができます。

注釈

このプロシージャを使うには、リリースディレクティブをセットしておく必要があります。詳細は provider.set_default_release_directive をご参照ください。

引数: cleanroom_name(文字列)、consumer_account_name(文字列)

戻り値: (文字列) 成功または失敗のメッセージ。

例:

call samooha_by_snowflake_local_db.provider.create_cleanroom_listing($cleanroom_name, <consumerorg.consumeracct>);
Copy

provider.register_cleanroom_in_ui -- DEPRECATED

注意

このコマンドは非推奨となりました。 ウェブアプリで使用するクリーンルームテンプレートを手動で登録する必要はなくなりました。

説明: コンシューマーがウェブアプリで使用するクリーンルームを登録します。クリーンルームはプロバイダーが開発者APIsを使って作成・設定します。このコマンドは、コンシューマーがインストールし、テーブルを追加し、開発者 APIs を使用せずに追加したカスタム分析を実行できるように、ウェブアプリに登録します。クリーンルームとの連携は、ウェブインターフェイスを通じて行います。

ウェブアプリに複数のカスタムテンプレートを含めるために、この API を複数回呼び出すことができます。

引数: cleanroom_name(文字列)、template name(文字列)、consumer_account_locator(文字列)、user_email(文字列)

戻り値: (文字列) 成功または失敗のメッセージ。

例:

call samooha_by_snowflake_local_db.provider.register_cleanroom_in_ui($cleanroom_name, 'prod_custom_template', <CONSUMER ACCOUNT LOCATOR>, <USER_EMAIL>)
Copy