Snowflakeデータクリーンルーム:プロバイダーAPIリファレンスガイド¶
このページでは、clean room API のコンシューマーが、clean roomを管理するために使用するプロシージャについて説明します。コーディングのセットアップ方法については、 コーディング設定 をご参照ください。
クリーンルームの作成、構成、削除¶
provider.view_cleanrooms¶
説明: このプロバイダーアカウントによって作成されたすべての既存のクリーンルームをリストします。
引数: なし
戻り値: (テーブル) このプロバイダーアカウントが作成したクリーンルームのリスト。クリーンルームは、コンシューマーと共有したり、インストールしたり、使用したりする必要はありません。削除されたクリーンルームはデータベースから削除され、このリストには表示されません。
例:
call samooha_by_snowflake_local_db.provider.view_cleanrooms();
provider.describe_cleanroom¶
説明: テンプレート、結合ポリシー、列ポリシー、コンシューマーなど、クリーンルームに関する情報の概要を取得します。
引数:
cleanroom_name(文字列) - 情報を取得するクリーンルームの名前。
戻り値: (文字列) クリーンルームのメタデータの要約。
例:
call samooha_by_snowflake_local_db.provider.describe_cleanroom($cleanroom_name);
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;
戻り値: (文字列) 成功または失敗のメッセージ。
例:
-- Create an internal clean room
call samooha_by_snowflake_local_db.provider.cleanroom_init($cleanroom_name, 'INTERNAL');
provider.set_default_release_directive¶
説明: 共同作業者がウェブアプリで新しいブラウザセッションを開始するとき、または API からクリーンルームにアクセスするときにロードされるクリーンルームのバージョンとパッチを指定します。これは、クリーンルームをコンシューマーと共有する前に呼び出す必要があります。
クリーンルームアプリケーションは、Pythonコードをアップロードまたは変更するたびに、クリーンルームの新しいバージョンを作成します。ユーザーに最新バージョンを提供したい場合は、新しいバージョン番号を指定してこのプロシージャを呼び出してください。利用可能なバージョンを確認し、現在のデフォルトバージョンを知るには、以下を実行してください。
show versions in application package samooha_cleanroom_<CLEANROOM_ID>;
すべてのクリーンルームは、以下のバージョンとパッチ番号で作成されます。
バージョン: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');
provider.drop_cleanroom¶
説明: クリーンルームを削除します。クリーンルームをインストールしたコラボレーターは、クリーンルームへのアクセスや使用ができなくなります。次回ブラウザが更新されると、クリーンルームはウェブアプリに表示されなくなります。
引数:
cleanroom_name(文字列) - 削除するクリーンルームの名前。
戻り値: (文字列) 成功または失敗のメッセージ。
例:
call samooha_by_snowflake_local_db.provider.drop_cleanroom($cleanroom_name);
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>']);
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>']);
library.is_consumer_run_enabled¶
説明: このクリーンルームがコンシューマーが実行する分析を許可しているかどうかをチェックします。
引数:
cleanroom_name(文字列) - チェックするクリーンルームの名前。
戻り値: (文字列) このクリーンルームがコンシューマーが実行する分析を許可しているかどうか。
例:
call samooha_by_snowflake_local_db.library.is_consumer_run_enabled($cleanroom_name)
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);
データの登録および登録解除¶
以下のコマンドを使用して、データベース、スキーマ、オブジェクトの登録および登録解除を行います。テーブルとビューは、クリーンルームにリンクする前に登録する必要があります。データベースまたはスキーマを登録すると、そのデータベースまたはスキーマ内のすべてのオブジェクトが登録されます。
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');
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']);
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']);
library.register_objects¶
説明: provider.link_datasets
を呼び出すことで、クリーンルームにすべてのタイプのテーブルとビューへのアクセスを付与し、クリーンルームにリンクできるようにします。library.register_schema
、 library.register_managed_access_schema
、 provider.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']);
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();
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);
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');
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']);
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']);
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']);
データとテーブルのリンク¶
以下のコマンドを使用して、クリーンルーム内のテーブルとビューを追加または削除します。
provider.link_datasets¶
説明: Snowflakeテーブルまたはビューをクリーンルームにリンクします。このプロシージャでは、クリーンルーム内にテーブルの安全な表示を作成することで、テーブルを自動的にクリーンルームにアクセスできるようにし、テーブルのコピーを作成する必要がなくなります。テーブルはソースにリンクされたままなので、ソースの更新はクリーンルーム内の安全なバージョンに反映されます。
ここでリンクされる項目は、データベース、スキーマ、オブジェクトのいずれかのレベルで、最初に登録されなければなりません。
引数:
cleanroom_name(文字列) - オブジェクトにアクセスできるクリーンルームの名前。
tables_list(文字列の配列) - クリーンルームにリンクするテーブルまたはビューのリスト。オブジェクトはリンクする前に登録する必要があります。
consumer_list(文字列の配列、オプション) - 存在する場合、このリストにあるコンシューマーだけが、これらのオブジェクトにアクセスできます。存在しない場合、クリーンルームにアクセスできる人は誰でもこのデータにアクセスできます。
戻り値: (文字列) 成功または失敗のメッセージ。
例:
call samooha_by_snowflake_local_db.provider.link_datasets(
$cleanroom_name, ['SAMOOHA_SAMPLE_DATABASE.DEMO.CUSTOMERS', 'MYDB.MYSCH.EXPOSURES']);
注釈
clean roomにビューをリンクし、そのビューが別のデータベースのテーブルをベースに作成されている場合、ビューとそのソースの両方を登録する必要があります。
provider.unlink_datasets¶
説明: 指定されたクリーンルームの指定されたテーブルへのアクセスを全ユーザーに対して削除します。指定されたテーブルはプロバイダーによってリンクされている必要があります。
引数:
cleanroom_name(文字列) - これらのデータセットにリンクされているクリーンルームの名前。
tables_list(array) - クリーンルームからリンクを解除するテーブルまたはビュー名の配列。
戻り値: (文字列) 成功または失敗のメッセージ。
例:
call samooha_by_snowflake_local_db.provider.unlink_datasets($cleanroom_name, ['SAMOOHA_SAMPLE_DATABASE.DEMO.CUSTOMERS', 'MYDB.MYSCH.EXPOSURES']);
provider.view_provider_datasets¶
説明: このアカウントのプロバイダーによって指定されたクリーンルームにリンクされたすべてのテーブルとビューを表示します。
引数:
cleanroom_name(string) - クリーンルームの名前。
戻り値: 指定されたクリーンルームにリンクされているオブジェクトのテーブル、および各オブジェクトのクリーンルーム内部表示名。
例:
call samooha_by_snowflake_local_db.provider.view_provider_datasets($cleanroom_name);
provider.restrict_table_options_to_consumers¶
説明: 特定のコンシューマーがクリーンルーム内のテーブルにアクセスできるかどうかを制御します。このプロシージャは 置き換え専用 です。つまり、前の呼び出しでセットされた値を完全に上書きします。
provider.link_datasets
、 provider.restrict_table_options_to_consumers
、 またはその他のメソッドによってアクセスを許可されたコンシューマーは、このメソッドを呼び出すときにそれが指定されていなければ、テーブルへのアクセスを失います。
引数:
cleanroom_name (文字列) - 制限するclean roomの名前。
*access_details(オブジェクト) - JSON オブジェクト。各フィールド名はテーブルまたはビューの完全修飾名であり、フィールド値はそのテーブルまたはビューにアクセスできるユーザーのアカウントロケータの配列です。
戻り値: (文字列) 成功または失敗のメッセージ。
例:
call samooha_by_snowflake_local_db.provider.restrict_table_options_to_consumers(
$cleanroom_name,
{
'DB.SCHEMA.TABLE1': ['CONSUMER_1_LOCATOR'],
'DB.SCHEMA.TABLE2': ['CONSUMER_1_LOCATOR', 'CONSUMER_2_LOCATOR']
}
);
ポリシーの管理¶
データ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);
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']);
プロバイダーテンプレートの管理¶
以下のコマンドを使用して、このクリーンルームでサポートされているテンプレート/分析を追加します。
provider.view_added_templates¶
説明: クリーンルーム内のプロバイダーが追加したテンプレートを表示します。このプロバイダーのすべてのクリーンルームのすべてのテンプレートをリストする方法はありません。
引数:
cleanroom_name(文字列) - クエリするクリーンルーム。
戻り値: (テーブル) - 指定されたクリーンルームで利用可能なテンプレートのリストで、各テンプレートの詳細が記載されています。
例:
call samooha_by_snowflake_local_db.provider.view_added_templates($cleanroom_name);
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');
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']);
provider.clear_template¶
説明: クリーンルームから指定されたテンプレートを削除します。
引数:
cleanroom_name(string) - クリーンルームの名前。
template_name(文字列) - クリーンルームから削除するテンプレートの名前。
戻り値: (文字列) 成功または失敗のメッセージ。
例:
call samooha_by_snowflake_local_db.provider.clear_template($cleanroom_name, 'prod_custom_template');
provider.clear_all_templates¶
説明: クリーンルームに追加されたすべてのテンプレートを削除します。
引数:
cleanroom_name(文字列) - すべてのテンプレートを削除するクリーンルームの名前。
戻り値: (文字列) 成功または失敗のメッセージ。
例:
call samooha_by_snowflake_local_db.provider.clear_all_templates($cleanroom_name);
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']);
provider.view_column_policy¶
説明: クリーンルームで現在アクティブな列ポリシーのリスト。列ポリシーは、どのテーブル列をどのテンプレートに表示できるかを示します。
引数: cleanroom_name(文字列)
戻り値: (テーブル) どの列をどのテンプレートで使用できるか。
例:
call samooha_by_snowflake_local_db.provider.view_column_policy($cleanroom_name);
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 %};
$$);
provider.add_ui_form_customizations¶
説明: clean roomをウェブアプリで実行する際に、clean room内のテンプレートのフォームを定義します。これは、コンシューマーがテーブルや列などのテンプレートパラメーターを選択できるようにする場合に便利です。最低限、 template_information
の引数で、 display_name
、 description
、 methodology
の値を指定する必要があります。
特に、テーブル選択に基づいて列選択要素が入力される場合は、列選択要素の前にテーブル選択要素を置くことをお勧めします。
この関数を呼び出した後、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 WAREHOUSE の warehouse_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>] }
display_name
: UI フォームのこの項目のラベルテキスト。order
: この要素をフォームに表示する、1から始まる順序。指定がない場合、要素はオブジェクトに現れる順番で表示されます。description
: ラベルの下に表示される要素の目的の説明。簡単なヘルプや例をここに記入してください。記入しない場合は、何も表示されません。type
: UI 要素のタイプ。この入力フィールドに references が指定されている場合は、このエントリを省略します(タイプが決定されます)。サポートされている値:any
(デフォルト): 通常のテキスト入力フィールド。boolean
: 真偽値セレクタinteger
:矢印で数字を変更multiselect
: ドロップダウンリストから複数の項目を選択dropdown
: ドロップダウンリストから1つの項目を選択date
:日付セレクタ
default
: この要素のデフォルト値choices
: (文字列の配列) ドロップダウンやマルチセレクト要素の選択肢リストinfoMessage
: 要素の横に表示される情報ホバーテキスト。指定がない場合、ツールチップは提供されません。size
: 要素サイズ。サポートされている値:XS
、S
、M
、L
、XL
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 要素の名前を指定します(ここではテーブル名自体を指定しないでください)。 references がPROVIDER_COLUMN_POLICY
またはPROVIDER_JOIN_POLICY
にセットされている場合のみ使用します。consumer_parent_table_field
: ユーザーがコンシューマーテーブルを選択する UI 要素の名前を指定します(ここではテーブル名自体を指定しないでください)。 references がCONSUMER_COLUMNS
、CONSUMER_JOIN_POLICY
、CONSUMER_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'
}
);
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']
}
);
コンシューマー定義のテンプレート¶
以下の 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);
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);
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');
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']);
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');
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')
]);
テンプレートチェーン¶
テンプレートチェーンの作成と管理には以下のコマンドを使います。
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
}
]
);
provider.view_added_template_chains¶
説明: 指定されたクリーンルームのテンプレートチェーンをリストします。
引数:
cleanroom_name(string) - クリーンルームの名前。
戻り値: (テーブル) このクリーンルームに追加された全てのテンプレートチェーンの説明。
例:
call samooha_by_snowflake_local_db.provider.view_added_template_chains($cleanroom_name);
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');
provider.clear_template_chain¶
説明: 指定されたクリーンルームから指定されたテンプレートチェーンを削除します。チェーンはどこにも保存されないので、チェーンを再作成したい場合は、ゼロから再作成する必要があります。
引数:
cleanroom_name(文字列) - このテンプレートチェーンに割り当てられているクリーンルーム。
template_chain_name(文字列) - このクリーンルームから削除するテンプレートチェーン。
戻り値: (文字列) 成功または失敗のメッセージ。
例:
call samooha_by_snowflake_local_db.provider.clear_template_chain($cleanroom_name, 'my_chain');
マルチプロバイダー分析¶
以下のプロシージャは、 マルチプロバイダー分析 を有効にします。
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>);
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);
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);
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);
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);
アクティベーション¶
アクティベーション とは、プロバイダー、コンシューマー、またはサードパーティに結果をエクスポートすることです。 アクティベーションについてもっと読む。。
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' ]);
provider.request_provider_activation_consent¶
説明: プロバイダーが指定されたテンプレートを実行し、結果をプロバイダーのSnowflakeアカウントにプッシュすることを許可するリクエストをコンシューマーに送信します。バックグラウンドで、clean room内のプロバイダーアクティベーションテンプレートのリストにテンプレートを追加します。一度アクティベーションテンプレートとして指定されたテンプレートは、アクティベーションリクエストでのみ使用できます。
引数:
cleanroom_name(文字列) - アクティベーションテンプレートを含むクリーンルーム。
template_name(文字列) - 承認をリクエストするアクティベーションテンプレートの名前。このテンプレートは、以前の呼び出しでクリーンルームに追加されている必要があります。テンプレート名は"activation_"で始まる必要があります。
戻り値: (文字列) 成功または失敗のメッセージ。
例:
call samooha_by_snowflake_local_db.provider.request_provider_activation_consent(
$cleanroom_name, 'activation_my_activation_template');
provider.update_activation_warehouse¶
説明: プロバイダーアクティベーションで結果を出力テーブルに復号化する際に使用する、ウェアハウスのサイズを指定します。復号化に使用されるウェアハウスは DCR_ACTIVATION_WAREHOUSE です。このウェアハウスはの費用はプロバイダーが負担します。
引数:
size (文字列) - ウェアハウスのサイズ。CREATE WAREHOUSE コマンドから、WAREHOUSE_SIZE のいずれかの値を選択します。
戻り値: (String) 成功メッセージ。
例:
CALL samooha_by_snowflake_local_db.provider.update_activation_warehouse('LARGE');
プロバイダーとして分析を実行する¶
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>']);
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>']);
library.is_provider_run_enabled¶
説明: このクリーンルームがプロバイダーが実行する分析を許可しているかどうかをチェックします。
引数:
cleanroom_name(文字列) - チェックするクリーンルームの名前。
戻り値: (文字列) このクリーンルームがプロバイダーが実行する分析を許可するかどうか。
例:
call samooha_by_snowflake_local_db.library.is_provider_run_enabled($cleanroom_name)
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);
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.
));
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>'
);
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
);
クリーンルームの共有の管理¶
以下のコマンドを使用して、コンシューマーとクリーンルームを共有することを管理します。
provider.view_consumers¶
説明: クリーンルームへのアクセスを許可されたコンシューマーのリスト。コンシューマーがクリーンルームをインストールしたかどうかは表示されません。
引数:
cleanroom_name(文字列) - 対象のクリーンルーム。
戻り値: (テーブル) - クリーンルームにアクセスできるコンシューマーアカウントのリスト。
例:
call samooha_by_snowflake_local_db.provider.view_consumers($cleanroom_name);
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_tasks
とprivacy_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"
}}');
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');
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');
クロスクラウドコラボレーション¶
別のクラウドリージョンのコンシューマーとclean roomを共有することを可能にします。 詳細はこちら。
library.enable_laf_on_account¶
説明: 現在のアカウントでクロスクラウド自動フルフィルメントを有効にします。ACCOUNTADMIN ロールが必要です。
引数: なし
戻り値: (String) 成功メッセージ。
例:
USE ROLE ACCOUNTADMIN;
CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.library.enable_laf_on_account();
library.is_laf_enabled_on_account¶
説明: このアカウントでクロスクラウド自動フルフィルメントが有効かどうかを返します。
戻り値: このアカウントでクロスクラウド自動フルフィルメントが有効な場合は TRUE、そうでない場合は FALSE。
例:
call samooha_by_snowflake_local_db.library.is_laf_enabled_on_account();
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);
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);
クリーンルームでの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)
ステージから UDF アップロード:
(cleanroom_name String, function_name String, arguments Array, packages Array, imports Array, rettype String, handler String)
引数:
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)
$$
);
-- 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
);
provider.get_stage_for_python_files¶
説明: クリーンルームでカスタムPythonコードを定義するために、インラインコード定義ではなくステージにアップロードされたコードファイルを使用する予定の場合、Pythonファイルがアップロードされるべきステージパスを返します。provider.load_python_into_cleanroom
を呼び出してファイルがアップロードされるまで、ステージは存在せず、調べることもできません。
クリーンルームでPythonコードをアップロードして使う方法を学習しましょう。
引数:
cleanroom_name(文字列) - ファイルをアップロードするクリーンルームの名前。
戻り値: (文字列) コードファイルをアップロードするパス。provider.load_python_into_cleanroom
の imports 引数にこれを使用します。
例:
call samooha_by_snowflake_local_db.provider.get_stage_for_python_files($cleanroom_name);
provider.view_cleanrooom_scan_status¶
説明: DISTRIBUTION を EXTERNAL にセットしたクリーンルームの脅威スキャンステータスを報告します。デフォルトのリリースディレクティブをセットまたは変更する前に、スキャンを「APPROVED」としてマークする必要があります。スキャンステータスは、 EXTERNAL クリーンルームでのみ確認する必要があります。
引数:
cleanroom_name(文字列) - ステータスをチェックするクリーンルームの名前。
戻り値: (文字列) スキャンステータス。
例:
call samooha_by_snowflake_local_db.provider.view_cleanroom_scan_status($cleanroom_name);
クリーンルームのメタデータゲッターコマンド¶
クリーンルームの関連プロパティを表示するには、以下のコマンドを使用します。
library.view_external_activation_history¶
説明: 現在のアカウントのアクティベーションリクエスト履歴を表示します。
引数: なし
戻り値: アクティベーションリクエストの詳細とステータスのテーブル。
例:
call SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.LIBRARY.view_external_activation_history();
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);
provider.view_request_logs¶
説明: このクリーンルームのコンシューマーから送信されたリクエストログを表示します。これを初めて呼び出す前に、 mount_request_logs_for_all_consumers
を呼び出す必要があります。
引数:
cleanroom_name(文字列) - リクエストログをレビューするクリーンルームの名前。
戻り値: クリーンルーム(テーブル)に対して実行されているクエリの記録されたログのセット
例:
call samooha_by_snowflake_local_db.provider.view_request_logs($cleanroom_name);
差分プライバシー¶
これらのコマンドにより、ユーザーレベルまたはプロバイダーアカウントレベルで差分プライバシーを制御します。 差分プライバシーについてはこちらを参照してください。
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 });
provider.is_dp_enabled_on_account¶
説明: このアカウントで差分プライバシーが有効になっているかどうかを記述します。
引数: なし
戻り値: このアカウントで差分プライバシーが有効になっている場合は TRUE、そうでない場合は FALSE。
例:
call samooha_by_snowflake_local_db.provider.is_dp_enabled_on_account();
provider.suspend_account_dp_task¶
説明: 差分プライバシーバジェットを監視および実行するタスクを無効にします。アカウントで差分プライバシー関連のコストを制御するために使用されます。差分プライバシータスクを無効にした場合でも、ユーザー、テンプレート、clean room(差分プライバシーが指定されている場合)によるクエリにはノイズが追加されますが、バジェットの制限が適用されないため、差分プライバシーによるコストは発生しません。 差分プライバシーの管理の詳細
引数: なし
戻り値: (文字列) 成功または失敗のメッセージ。
例:
call samooha_by_snowflake_local_db.provider.suspend_account_dp_task();
provider.resume_account_dp_task¶
説明: 現在のアカウントの差分プライバシータスクリスナーを再開し、差分プライバシーバジェットを適用します。以前にセットされた差分プライバシーの値(感度や関連ユーザーなど)は保持されます。
引数: なし
戻り値: (文字列) 成功または失敗のメッセージ。
例:
call samooha_by_snowflake_local_db.provider.resume_account_dp_task();
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
$$);
一般的なヘルパーコマンド¶
クリーンルームの機能とサポートされているフローを活用するために、一般的に以下のコマンドを使用します。
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();
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();
非推奨プロシージャ¶
以下のプロシージャは非推奨であり、ここでは念のためリストアップしています。交換プロシージャが示されている場合は、新しいプロシージャを使用してください。
provider.view_ui_registration_request_log -- DEPRECATED¶
注意
このコマンドは非推奨となりました。 ウェブアプリで使用するクリーンルームテンプレートを手動で登録する必要はなくなりました。
説明: クリーンルームをウェブアプリに登録するためにアカウントから発生したリクエストのリストを表示します。リクエストごとに関連付けられた ID があります。これは、 view_ui_registration_log
プロシージャと併用して、リクエストのステータスを表示できます。リクエストはバックエンドに共有され、そこで処理され、クリーンルームがクリーンルームに追加されます。
引数:
戻り値: (文字列) 成功または失敗のメッセージ。
例:
call samooha_by_snowflake_local_db.provider.view_ui_registration_request_log();
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);
Icebergテーブルを登録するには:
call samooha_by_snowflake_local_db.library.register_table_or_view(
['SAMOOHA_SAMPLE_DATABASE.DEMO.CUSTOMERS'],
false,
true,
false,
false);
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']);
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']);
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']);
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']);
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);
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']);
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']);
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']);
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']);
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>);
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>)