Snowflakeデータクリーンルーム:コンシューマーAPIリファレンスガイド¶
このページでは、clean room API のコンシューマーが、clean roomを管理するために使用するプロシージャについて説明します。コーディングのセットアップ方法については、 コーディング設定 をご参照ください。
ロールアクセス管理¶
consumer.grant_run_on_cleanrooms_to_role¶
説明: 指定されたclean roomでプロシージャのサブセットを実行する権限を指定されたロールに付与します。Clean roomをこのアカウントで 作成 するのではなく、このアカウントに インストール する必要があります。(つまり、自分がコンシューマーであるclean roomに限定されます)。
clean roomの使用を制限付きで許可するには、ユーザーに SAMOOHA_APP_ROLE ではなく、指定されたロールを付与します。 ロールアクセスの詳細。
ここで指定したロールを使用すると、以下のプロシージャを実行できます:
CONSUMER.VIEW_ADDED_TEMPLATES
CONSUMER.VIEW_ADDED_TEMPLATE_CHAINS
CONSUMER.GET_ARGUMENTS_FROM_TEMPLATE
CONSUMER.VIEW_COLUMN_POLICY
CONSUMER.VIEW_CONSUMER_DATASETS
CONSUMER.VIEW_JOIN_POLICY
CONSUMER.VIEW_PROVIDER_COLUMN_POLICY
CONSUMER.VIEW_PROVIDER_DATASETS
CONSUMER.VIEW_PROVIDER_JOIN_POLICY
CONSUMER.VIEW_REMAINING_PRIVACY_BUDGET
CONSUMER.RUN_ANALYSIS
CONSUMER.VIEW_PROVIDER_ACTIVATION_POLICY
CONSUMER.VIEW_ACTIVATION_POLICY
CONSUMER.RUN_ACTIVATION
引数:
cleanroom_name (文字列の配列) - 指定したロールに制限付きでアクセスを許可するすべてのclean roomの名前。
run_role_name (文字列) - 指定したclean roomに対する制限付きの権限を持つロールの名前。このプロシージャを呼び出す前にロールを作成する必要があります。
戻り値: (文字列) - 成功または失敗のメッセージ。
例:
CREATE ROLE MARKETING_ANALYST_ROLE;
CALL samooha_by_snowflake_local_db.consumer.grant_run_on_cleanrooms_to_role(
['overlap_cleanroom', 'market_share_cleanroom'],
'MARKETING_ANALYST_ROLE'
);
consumer.revoke_run_on_cleanrooms_from_role¶
説明: 指定したclean roomで指定したロールから権限を取り消します。ユーザーが取り消されないロールへのアクセスを持つか、 SAMOOHA_APP_ROLE を持つ場合は、引き続き指定したclean roomでclean roomプロシージャを実行できます。
引数:
cleanroom_name (文字列の配列) - このアカウント内の1つ以上のclean roomの名前。
run_role_name (文字列) - このアカウントで指定したclean roomへの制限付きの権限を取り消すロールの名前。
戻り値: (文字列) - 成功または失敗のメッセージ。
例:
CALL samooha_by_snowflake_local_db.consumer.revoke_run_on_cleanrooms_from_role(
['overlap_cleanroom', 'market_share_cleanroom'],
'TEMP_USERS_ROLE'
);
クリーンルームをインストールする¶
プロバイダーが共有するクリーンルームを以下のコマンドでインストールします。
consumer.install_cleanroom¶
説明: 指定したプロバイダーによって作成されたclean roomをインストール (参加) します。2回以上呼び出すと、そのたびに既存のclean roomが削除されます。2回目のインストールを、その完了を待たずに中断するとclean roomが破損し、clean roomを使用するためにこのプロシージャを完了することが必要になります。
引数:
cleanroom_name (文字列) - インストールするclean roomの名前。
provider_account_locator (文字列) - このclean roomを作成したプロバイダーのアカウントロケーター。
戻り値: (String) 成功メッセージ。
例:
call samooha_by_snowflake_local_db.consumer.install_cleanroom($cleanroom_name, $provider_locator);
consumer.is_enabled¶
説明: クリーンルームのインストールが完了すると、プロバイダー側で設定が完了し、使用可能になるまで約1分かかります。この関数により、ユーザーはクリーンルームのステータスを確認し、有効かどうかを確認することができます。クリーンルームのインストール後、通常1分程度でフラグが「真」に切り替わります。
引数: cleanroom_name(string)
戻り値: 有効(boolean)
例:
call samooha_by_snowflake_local_db.consumer.is_enabled($cleanroom_name);
consumer.uninstall_cleanroom¶
説明: コンシューマーアカウントのclean roomをアンインストールします。これにより、clean roomに関連するすべてのデータベースが (共有clean roomデータベースを含めて) 削除されます。clean roomは、 consumer.install_cleanroom でいつでも再インストールできます。
引数: cleanroom_name(string)
戻り値: 成功メッセージ(string)
例:
call samooha_by_snowflake_local_db.consumer.uninstall_cleanroom($cleanroom_name);
クロスクラウドコラボレーション¶
別のクラウドリージョンに作成されたclean roomをインストールします。 詳細はこちら。
library.enable_laf_on_account¶
説明: 現在のアカウントでクロスクラウド自動フルフィルメントを有効にします。ACCOUNTADMIN ロールが必要です。
引数: なし
戻り値: (String) 成功メッセージ。
例:
USE ROLE ACCOUNTADMIN;
CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.library.enable_laf_on_account();
consumer.is_laf_enabled_for_cleanroom¶
説明: このclean roomでクロスクラウド自動フルフィルメントが有効になっているかどうかを記述します。クロスクラウド自動フルフィルメントは アカウント管理者が構成する必要があります。
引数:
cleanroom_name(string) - クリーンルームの名前。
戻り値: このclean roomでクロスクラウド自動フルフィルメントが有効になっているかどうか。
例:
CALL samooha_by_snowflake_local_db.consumer.is_laf_enabled_for_cleanroom($cleanroom_name);
consumer.request_laf_cleanroom¶
説明: 別のクラウドリージョンで作成されたclean roomをインストールするための前提条件を設定します。このプロシージャを呼び出す前に consumer.install_cleanroom
を呼び出すと失敗します。このプロシージャは、呼び出しのたびに現在のステータスを返します。返されたステータスが FULFILLED になるまで度たび呼び出しを続け、その後で consumer.install_cleanroom
を呼び出します。ステータスが FULFILLED に達するまで、最大10分かかることがあります。
引数:
cleanroom_name (文字列) - インストールされるクロスリージョンclean roomの名前。
provider_locator (文字列) - このclean roomを作成したプロバイダーのアカウントロケーター。
Returns: (文字列) リクエストのステータスメッセージ。ステータスが FULFILLED になるまで呼び出しを続けます。
例:
CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.consumer.request_laf_cleanroom(
$cleanroom_name,$provider_locator);
プロバイダーデータ分析¶
library.is_provider_run_enabled¶
説明: プロバイダーが実行する分析を、このclean roomが許可しているかどうかをチェックします。注: consumer.enable_templates_for_provider_run
を呼び出して明示的に承認するまで、プロバイダーがこのclean roomで分析を実行することはできません。
引数: cleanroom_name(string)
戻り値: 有効メッセージ(string)
例:
call samooha_by_snowflake_local_db.library.is_provider_run_enabled($cleanroom_name)
consumer.enable_templates_for_provider_run¶
説明: リクエストされたclean roomで分析を実行する許可をプロバイダーに与えます。これは、プロバイダーが provider.enable_provider_run_analysis
を呼び出して、プロバイダーが実行する分析をclean roomで有効にした後に呼び出します。 consumer.enable_templates_for_provider_run
は、指定したclean roomの指定したテンプレートで分析を実行するための権限を、プロバイダーに必要なだけ何度でも付与します。
引数:
cleanroom_name (文字列) - プロバイダーに分析の実行を許可するclean roomの名前。
template_names (文字列の配列) - プロバイダーに実行が許可されたclean room内の1つまたは複数のテンプレートの名前の配列。
enable_differential_privacy (ブール) - TRUE の場合、
template_names
にリストされているすべてのテンプレートに対して、差分プライバシーを有効にします。差分プライバシーは、差分プライバシーがクリーンルーム自体で有効になっている場合にのみ、これらのテンプレートで有効にすることができます。consumer.is_dp_enabled
を呼び出すことで、クリーンルームの差分プライバシーステータスを確認できます。consumer.set_privacy_settings
を呼び出すことで、プライバシー設定をカスタマイズできます。 詳細情報。template_configuration (オブジェクト、オプション) - 各テンプレートに追加する設定を指定するオプションのオブジェクト。このオブジェクトはキーと値のペアを持ち、キーはテンプレート名(
template_names
の値)、値は以下のプロパティを持つオブジェクトです:warehouse_type
(文字列) - このテンプレートでプロバイダーに使用を許可するウェアハウスのタイプ。WAREHOUSE_TYPE に定義した値が許可されます。warehouse_size
(文字列の配列) - このウェアハウスタイプとテンプレートで使用を許可するウェアハウスの1つまたは複数のサイズ。WAREHOUSE_SIZE に定義した値が許可されます。
戻り値: (文字列) 成功または失敗のメッセージ。
例:
-- Simple example
CALL samooha_by_snowflake_local_db.consumer.enable_templates_for_provider_run($cleanroom_name, ['prod_overlap_analysis'], FALSE);
-- Specify warehouse types that the provider can request for each template.
call samooha_by_snowflake_local_db.CONSUMER.enable_templates_for_provider_run(
$cleanroom_name,
[$template1, $template2],
TRUE,
{
$template1: {'warehouse_type': 'STANDARD', 'warehouse_size': ['MEDIUM', 'LARGE']},
$template2: {'warehouse_type': 'SNOWPARK-OPTIMIZED', 'warehouse_size': ['MEDIUM', 'XLARGE']},
$template3: {'warehouse_type': 'STANDARD', 'warehouse_size': ['MEDIUM', 'XLARGE']}
});
マルチプロバイダー分析¶
以下のプロシージャは、 マルチプロバイダー分析 を有効にします。
consumer.prepare_multiprovider_flow¶
説明: 指定したclean roomのプロバイダーにマルチプロバイダークエリ実行のリクエストを送信します。このプロシージャが実際にリクエストを実行するのではなく、 consumer.execute_multiprovider_flow
を呼び出すことで、このリクエストを将来的に実行するための権限をプロバイダーに要求します。
プロバイダーが承認した場合、コンシューマーは consumer.execute_multiprovider_flow
を (差分プライバシーの設定に応じて) 何度でも呼び出して、クエリを実行できます。prepare_multiprovider_flow
を新しい値で呼び出した後に、前回承認されたクエリを再実行する場合も、やはり prepare_multiprovider_flow
を前回のクエリとまったく同じ値で呼び出す必要がありますが、プロバイダーの承認を待ってから consumer.execute_multiprovider_flow
を実行する必要はありません。
リクエストは4時間有効で、それ以降はキューから削除されます。
引数:
cleanroom_name (文字列の配列) - コンシューマーのアカウントのclean room名の配列。これらのclean roomをインストールする必要があります。
template_name (文字列) -
cleanroom_name
にリストされている各clean roomで実行するテンプレートの名前。これは、clean roomのプロバイダーによって追加されたSnowflake提供のテンプレート、またはconsumer.create_template_request
を呼び出して前回clean roomに発信したカスタムテンプレートになります。どちらの場合でも、リクエストをclean roomのプロバイダーに発信するには、テンプレートがすでにclean roomに存在している必要があります。arguments (オブジェクト) - テンプレートへの入力に使用される、以下のフィールドを持つオブジェクト:
source_table
(文字列の配列) - テンプレートで使用可能なsource_table
配列への入力に使用されるテーブル名の配列。各テーブル名の構文は、cleanroom_name.db.schema.table
です。各プロバイダーは、リクエストにリストされた自分のclean roomテーブルのみを参照できます。my_table
(文字列の配列) - テンプレートで使用可能なmy_table
配列への入力に使用する、自分のデータが格納されたテーブル名の配列。consumer.run_analysis
のconsumer_tables
引数に渡されたものと同じ構文を使用します。その他のテンプレート変数 - 必要な値をキー/値ペアとしてテンプレートに渡します。
戻り値: (文字列) execute_multiprovider_flow
に渡すリクエストID。
例:
CALL samooha_by_snowflake_local_db.consumer.prepare_multiprovider_flow(
[$cleanroom_name_1, $cleanroom_name_2],
'prod_aggregate_data',
object_construct(
'source_table', [
CONCAT($cleanroom_name_1, '.SAMOOHA_SAMPLE_DATABASE.DEMO.CUSTOMERS'),
CONCAT($cleanroom_name_2, '.SAMOOHA_SAMPLE_DATABASE.DEMO.CUSTOMERS')
],
'my_table', ['SAMOOHA_SAMPLE_DATABASE.DEMO.CUSTOMERS']),
'hem_col', ['p1.HASHED_EMAIL', 'p2.HASHED_EMAIL'],
'dimensions', ['p1.STATUS', 'p2.STATUS'],
'consumer_join_col', 'HASHED_EMAIL'
)
);
consumer.execute_multiprovider_flow¶
説明: コンシューマーから consumer.prepare_multiprovider_flow
に送信された最新のクエリを実行します。プロシージャは、プロバイダーによってクエリが承認されたclean roomごとにクエリを実行し、すべてのクエリ結果を結合して返します。このプロシージャを実行する以外に、プロバイダーがクエリを承認したかどうかを知る方法はありません。
引数:
cleanroom_name (文字列の配列) - 準備されたクエリが実行されるclean room名の配列。この配列は、クエリリクエストで使用されるclean roomのリストと完全に一致する必要があります。
request_id (文字列、オプション) -
prepare_multiprovider_flow
によって返されるリクエストID。
戻り値: (テーブル) 承認されたすべてのclean roomによる結果を結合したデータ。このコンシューマーからのクエリをプロバイダーが一度も承認しなかった場合、クエリは失敗します。ただし、プロバイダーがこのコンシューマーから別のクエリを承認しているが、それが最新のクエリではない場合、プロシージャは空の結果セットを返します。
例:
CALL samooha_by_snowflake_local_db.consumer.execute_multiprovider_flow([$cleanroom1, $cleanroom2], $request_id);
データの登録および登録解除¶
以下のコマンドを使用して、データベース、スキーマ、オブジェクトの登録および登録解除を行います。テーブルとビューは、クリーンルームにリンクする前に登録する必要があります。データベースまたはスキーマを登録すると、そのデータベースまたはスキーマ内のすべてのオブジェクトが登録されます。
consumer.register_db¶
説明: クリーンルームにデータベースを追加することで、データベースから任意のデータセットをリンクすることができます。これが呼び出されない場合、samooha_app_roleに個別に付与する必要があります。
引数: db_name(string)
戻り値: 成功メッセージ(string)
例:
USE ROLE <ROLE_WITH_MANAGE GRANTS>;
call samooha_by_snowflake_local_db.consumer.register_db('SAMOOHA_SAMPLE_DATABASE');
library.register_schema¶
説明: register_db
と似ていますが、スキーマレベルで操作します。完全修飾されたテーブル名を表す配列または文字列を渡すことができ、 SAMOOHA_APP_ROLE ロールへの付与選択が行われ、ユーザーはテーブルをクリーンルームにリンクすることができます。
管理アクセススキーマ(つまり、 WITH MANAGED ACCESS パラメーターで作成されたスキーマ)を登録したい場合は、代わりに library.register_managed_access_schema
を使用します。
引数: schema_name(array)
戻り値: 成功メッセージ(string)
例:
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 パラメーターで作成されたスキーマを登録します。完全修飾されたテーブル名を表す配列または文字列を渡すことができ、 SAMOOHA_APP_ROLE ロールへの付与選択が行われ、ユーザーはテーブルをクリーンルームにリンクすることができます。
引数: schema_name(array)
戻り値: 成功メッセージ(string)
例:
USE ROLE <ROLE_WITH_MANAGE GRANTS>;
call samooha_by_snowflake_local_db.library.register_managed_access_schema(['SAMOOHA_SAMPLE_DATABASE.DEMO']);
library.register_objects¶
説明: consumer.link_datasets
を呼び出すことで、クリーンルームにすべてのタイプのテーブルとビューへのアクセスを付与し、それらをクリーンルームにリンクできるようにします。library.register_schema
、 library.register_managed_access_schema
、 consumer.register_db
を呼び出すことで、より広範なオブジェクトグループを登録することができます。
引数:
object_names(array) - 完全修飾したオブジェクト名の配列。これらのオブジェクトは、クリーンルームにリンクすることができます。
戻り値: 成功メッセージ(string)
例
テーブルとビューを登録するには
USE ROLE <ROLE_WITH_MANAGE GRANTS>;
call samooha_by_snowflake_local_db.library.register_objects(
['SAMOOHA_SAMPLE_DATABASE.DEMO.CUSTOMERS','SAMOOHA_SAMPLE_DATABASE.INFORMATION_SCHEMA.FIELDS']);
library.enable_external_tables_on_account¶
説明: このアカウントのすべてのclean roomでIcebergまたは外部テーブルを有効にします。Icebergまたは外部テーブルを、プロバイダーとコンシューマーの いずれか のアカウントからリンクするために、その 両方 のアカウントのACCOUNTADMIN から呼び出す必要があります。この機能をこのアカウント内の特定のclean roomに制限するには、 enable_external_tables_for_cleanroom
を呼び出してください。
引数: なし
戻り値: (文字列) 成功または失敗のメッセージ。
例:
USE ROLE ACCOUNTADMIN;
CALL samooha_by_snowflake_local_db.library.enable_external_tables_on_account();
consumer.enable_external_tables_for_cleanroom¶
説明: コンシューマーがこのアカウントで指定したclean roomにIcebergまたは外部テーブルをリンクすることを可能にします。このアカウントのすべてのclean roomでIcebergと外部テーブルのリンクを許可するには、 enable_external_tables_on_account
を呼び出します。
引数:
cleanroom_name (文字列) - プロバイダーがIcebergまたは外部テーブルをリンクできるclean room名。
戻り値: (文字列) 成功または失敗のメッセージ。成功するとセキュリティスキャンがトリガーされ、セキュリティスキャンが成功した場合に生成されるパッチの番号も返されます。
例:
CALL samooha_by_snowflake_local_db.provider.enable_external_tables_for_cleanroom(
$cleanroom_name);
library.register_table_or_view -- 非推奨¶
注意
このコマンドは非推奨です。 [library.register_objects](#cleanroom_consumer_library_register_objects)を使用してください。
説明: あらゆるタイプのテーブルとビューを登録します。
引数: object_names(array)、is_view(boolean)、is_iceberg(boolean)、is_external(boolean)、is_under_managed_access_schema(boolean)
出力: success message (string)
例
テーブルを登録するには:
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](#cleanroom_consumer_library_register_objects)を使用してください。
説明:register_db
と似ていますが、テーブルレベルで操作します。完全修飾されたテーブル名を表す配列または文字列を渡すことができ、SAMOOHA_APP_ROLEロールへのグラント選択が行われ、ユーザーはテーブルをクリーンルームにリンクすることができます。
管理アクセススキーマ(つまり、 WITH MANAGED ACCESS パラメーターで作成されたスキーマ)にテーブルを登録したい場合は、代わりに library.register_managed_access_table
を使用してください。
引数: table_name(array)
戻り値: 成功メッセージ(string)
例:
call samooha_by_snowflake_local_db.library.register_table(['SAMOOHA_SAMPLE_DATABASE.DEMO.CUSTOMERS']);
library.register_managed_access_table -- 非推奨¶
注意
このコマンドは非推奨です。 [library.register_objects](#cleanroom_consumer_library_register_objects)を使用してください。
説明: register_table
と似ていますが、 WITH MANAGED ACCESS パラメーターで作成されたスキーマのテーブルを登録します。完全修飾されたテーブル名を表す配列または文字列を渡すことができ、SAMOOHA_APP_ROLEロールへのグラント選択が行われ、ユーザーはテーブルをクリーンルームにリンクすることができます。
引数: table_name(array)
戻り値: 成功メッセージ(string)
例:
call samooha_by_snowflake_local_db.library.register_managed_access_table(['SAMOOHA_SAMPLE_DATABASE.DEMO.CUSTOMERS']);
library.register_view -- 非推奨¶
注意
このコマンドは非推奨です。 [library.register_objects](#cleanroom_consumer_library_register_objects)を使用してください。
説明: register_db
と似ていますが、ビューレベルで操作します。完全修飾されたビュー名を表す配列または文字列を渡すことができ、 SAMOOHA_APP_ROLE ロールへの付与選択が行われ、ユーザーはビューをクリーンルームにリンクすることができます。
管理アクセススキーマ(つまり、 WITH MANAGED ACCESS パラメーターで作成されたスキーマ)にビューを登録したい場合は、代わりに library.register_managed_access_view
を使用してください。
引数: view_name(array)
戻り値: 成功メッセージ(string)
例:
call samooha_by_snowflake_local_db.library.register_view(['SAMOOHA_SAMPLE_DATABASE.DEMO.CUSTOMERS']);
library.register_managed_access_view -- 非推奨¶
注意
このコマンドは非推奨です。 [library.register_objects](#cleanroom_consumer_library_register_objects)を使用してください。
説明: register_view
と似ていますが、 WITH MANAGED ACCESS パラメーターで作成されたスキーマのビューを登録します。完全修飾されたビュー名を表す配列または文字列を渡すことができ、 SAMOOHA_APP_ROLE ロールへの付与選択が行われ、ユーザーはビューをクリーンルームにリンクすることができます。
引数: view_name(array)
戻り値: 成功メッセージ(string)
例:
call samooha_by_snowflake_local_db.library.register_managed_access_view(['SAMOOHA_SAMPLE_DATABASE.DEMO.CUSTOMERS']);
library.unregister_db¶
説明:register_db
プロシージャを取り消し、SAMOOHA_APP_ROLEロールとSnowflake Data Clean Roomネイティブアプリケーションに与えられたデータベースレベルのグラントを削除します。これにより、UIドロップダウン要素からデータベースも削除されます。
引数: db_name(string)
戻り値: 成功メッセージ(string)
例:
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)
戻り値: 成功メッセージ(string)
例:
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)
戻り値: 成功メッセージ(string)
例:
call samooha_by_snowflake_local_db.library.unregister_managed_access_schema(['SAMOOHA_SAMPLE_DATABASE.DEMO']);
library.unregister_objects¶
説明: すべてのタイプのテーブルとビューへのクリーンルームのアクセス権を取り消します。このアカウントで管理されているクリーンルームのユーザーは、オブジェクトを利用できなくなります。
引数:
object_names(array) - アクセス権を取り消す完全修飾オブジェクト名の配列。
戻り値: 成功メッセージ(string)
例
テーブルとビューの登録を解除するには
USE ROLE <ROLE_WITH_MANAGE GRANTS>;
call samooha_by_snowflake_local_db.library.unregister_objects(
['SAMOOHA_SAMPLE_DATABASE.DEMO.CUSTOMERS','SAMOOHA_SAMPLE_DATABASE.INFORMATION_SCHEMA.FIELDS']);
library.unregister_table_or_view -- 非推奨¶
注意
このコマンドは非推奨です。 [library.unregister_objects](#cleanroom_consumer_library_unregister_objects)を使用してください。
説明: すべてのタイプのテーブルとビューの登録を解除します。
引数: object_names(array)、is_view(boolean)、is_iceberg(boolean)、is_external(boolean)、is_under_managed_access_schema(boolean)
出力: success message (string)
例
テーブルの登録を解除するには:
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](#cleanroom_consumer_library_unregister_objects)を使用してください
説明: unregister_db
と似ていますが、テーブルレベルで操作します。テーブルの登録を解除するために、完全修飾テーブル名を表す配列または文字列を渡すことができます。未登録のテーブルをクリーンルームにリンクすることはできません。
管理アクセススキーマ(つまり、 WITH MANAGED ACCESS パラメーターで作成されたスキーマ)内のテーブルの登録を解除したい場合は、代わりに library.unregister_managed_access_table
を使用してください。
引数: table_name(array)
戻り値: 成功メッセージ(string)
例:
call samooha_by_snowflake_local_db.library.unregister_table(['SAMOOHA_SAMPLE_DATABASE.DEMO.CUSTOMERS']);
library.unregister_managed_access_table -- 非推奨¶
注意
このコマンドは非推奨です。 [library.unregister_objects](#cleanroom_consumer_library_unregister_objects)を使用してください
説明: unregister_table
と似ていますが、管理アクセススキーマ(つまり、 WITH MANAGED ACCESS パラメーターで作成されたスキーマ)のテーブルの登録を解除します。
引数: table_name(array)
戻り値: 成功メッセージ(string)
例:
call samooha_by_snowflake_local_db.library.unregister_managed_access_table(['SAMOOHA_SAMPLE_DATABASE.DEMO.CUSTOMERS']);
library.unregister_view -- 非推奨¶
注意
このコマンドは非推奨です。 [library.unregister_objects](#cleanroom_consumer_library_unregister_objects)を使用してください
説明: unregister_db
と似ていますが、ビューレベルで操作します。ビューの登録を解除するには、完全修飾したビュー名を表す配列あるいは文字列を渡します。未登録のビューをクリーンルームにリンクすることはできません。
管理アクセススキーマ(つまり、 WITH MANAGED ACCESS パラメーターで作成されたスキーマ)内のビューの登録を解除したい場合は、代わりに library.unregister_managed_access_view
を使用してください。
引数: view_name(array)
戻り値: 成功メッセージ(string)
例:
call samooha_by_snowflake_local_db.library.unregister_view(['SAMOOHA_SAMPLE_DATABASE.DEMO.CUSTOMERS']);
library.unregister_managed_access_view -- 非推奨¶
注意
このコマンドは非推奨です。 [library.unregister_objects](#cleanroom_consumer_library_unregister_objects)を使用してください
説明: unregister_view
と似ていますが、管理アクセススキーマ(つまり、 WITH MANAGED ACCESS パラメーターで作成されたスキーマ)のビューの登録を解除します。
引数: view_name(array)
戻り値: 成功メッセージ(string)
例:
call samooha_by_snowflake_local_db.library.unregister_managed_access_view(['SAMOOHA_SAMPLE_DATABASE.DEMO.CUSTOMERS']);
データセットのリンクとリンク解除¶
データセットが登録されると、そのデータセットからテーブルやビューを特定のクリーンルームにリンクすることができます。また、特定のクリーンルームからテーブルやビューのリンクを解除して、クリーンルームからそのデータへのアクセスを削除することもできます。
consumer.link_datasets¶
説明: テーブルまたはビューをクリーンルームにリンクし、指定した結合および列ポリシーに従って、クリーンルーム内のテンプレートにテーブルへのアクセスを与えます。
引数:
cleanroom_name(string) - アクセス権を付与するクリーンルームの名前
tables_list(文字列の配列) - クリーンルームに公開する、完全修飾されたテーブル名あるいはビュー名のリスト。これらのオブジェクトは、まず適切な[登録メソッド](#cleanroom_consumer_library_register_objects)を使って登録(クリーンルーム環境で利用できるようにする)する必要があります。
戻り値: 成功メッセージ(string)
例:
call samooha_by_snowflake_local_db.consumer.link_datasets($cleanroom_name, ['SAMOOHA_SAMPLE_DATABASE.DEMO.CUSTOMERS', 'MY_DB.MY_SCH.EXPOSURES']);
consumer.unlink_datasets¶
説明: すべてのユーザーの指定されたクリーンルームの指定されたテーブルまたはビューへのアクセスを削除します。これはコンシューマーが提供したデータに対してのみ有効です。
引数:
cleanroom_name(string) - アクセスを削除するクリーンルームの名前。
tables_list(文字列の配列) - アクセスをブロックすべき、完全修飾されたテーブル名あるいはビュー名のリスト。
戻り値: 成功メッセージ(string)
例:
call samooha_by_snowflake_local_db.consumer.unlink_datasets($cleanroom_name,
['SAMOOHA_SAMPLE_DATABASE.DEMO.CUSTOMERS', 'MYDB.MYSCH.EXPOSURES']);
consumer.view_consumer_datasets¶
説明: このアカウントのコンシューマーによって指定されたクリーンルームにリンクされたすべてのテーブルとビューを表示します。
引数:
cleanroom_name(string) - クリーンルームの名前。
戻り値: 指定されたクリーンルームにリンクされているオブジェクトのテーブル、および各オブジェクトのクリーンルーム内部表示名。
例:
call samooha_by_snowflake_local_db.consumer.view_consumer_datasets($cleanroom_name);
ポリシーの管理¶
consumer.set_join_policy¶
説明: プロバイダーがクリーンルーム内でテンプレートを実行する際、プロバイダー実行分析を使用して結合を実行することが許可される列を指定します。列ポリシーは 置換のみ であることに注意してください。したがって、この関数が再度呼び出された場合、以前に設定された列ポリシーは現在のものに完全に置き換えられます。
SQL、データに対して実行されるクエリを解析し、許可されていない列がないかチェックすることに注意してください。ワイルドカードを使用したクエリは、これらのチェックでは検出されない可能性があります。
引数: cleanroom_name(文字列)、table_and_col_names(配列)
戻り値: 成功メッセージ(string)
例:
call samooha_by_snowflake_local_db.consumer.set_join_policy($cleanroom_name,
['SAMOOHA_SAMPLE_DATABASE.DEMO.CUSTOMERS:HASHED_EMAIL', 'MYDB.MYSCH.EXPOSURES:HASHED_EMAIL']);
consumer.set_column_policy¶
説明: データプロバイダーが操作を実行できる列を設定します。これはテンプレートを追加した後にのみ呼び出されるべきです。これはテンプレートの関数でもあるため、入力は template_name:full_table_name:column_name にする必要があります。列ポリシーが 置換のみ であることに注意してください。したがって、関数が呼び出された場合、以前に設定された列ポリシーは現在のものに完全に置き換えられます。
列ポリシーはEメールなどのID列では呼び出されるべきではありません。これは集約および列別のグループにのみ使用されるべきです。
SQL、データに対して実行されるクエリを解析し、許可されていない列がないかチェックすることに注意してください。ワイルドカードを使用したクエリは、これらのチェックでは検出されない可能性があります。
チェックは、SQL Jinja引数の dimensions または measure_columns に対して行われます。これらのタグを使用して、このチェックを有効にしてください。
引数: cleanroom_name(文字列)、analysis_and_table_and_columns(配列)
戻り値: 成功メッセージ(string)
例:
call samooha_by_snowflake_local_db.consumer.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']);
consumer.view_column_policy¶
説明: コンシューマーによってクリーンルームに適用されたすべての列ポリシーを表示します。
引数: cleanroom_name(string)
戻り値: 列ポリシー(テーブル)
例:
call samooha_by_snowflake_local_db.consumer.view_column_policy($cleanroom_name);
consumer.view_provider_column_policy¶
説明: プロバイダーによってクリーンルームに適用されたすべての列ポリシーを表示します。
引数: cleanroom_name(string)
戻り値: 列ポリシー(テーブル)
例:
call samooha_by_snowflake_local_db.consumer.view_provider_column_policy($cleanroom_name);
テンプレート¶
以下のコマンドにより、ユーザーは、クリーンルームで利用可能な分析テンプレートを実行できます。
consumer.view_template_definition¶
説明:クリーンルームテンプレートの定義は、テンプレートに渡す必要のあるパラメータを決定するのに役立ちます。
is_obfuscated
引数を適用することで、テンプレートが 不明瞭化 されている場合、テンプレートの定義を表示できません。
注釈
Samoohaプロシージャは全て暗号化されており、デフォルトでは閲覧できません。ただし、追加したカスタムテンプレートはすべて表示されます。
引数: cleanroom_name(string)、template_name(string)
戻り値: テンプレート定義(string)
例:
call samooha_by_snowflake_local_db.consumer.view_template_definition($cleanroom_name, 'prod_overlap_analysis');
consumer.get_arguments_from_template¶
説明: 出力を簡単に消化できるよう、データをどのように整理し、各テンプレートにどのようなデータが必要かを定義します。
引数: cleanroom_name(string)、template_name(string)
戻り値: 引数リストと仕様(テーブル)
例:
call samooha_by_snowflake_local_db.consumer.get_arguments_from_template($cleanroom_name, 'prod_overlap_analysis');
テンプレートチェーン¶
以下のコマンドにより、ユーザーは、クリーンルームで利用可能なテンプレートチェーンで作業することができます。テンプレートチェーンの使用に関する一般的な情報は、 開発者 APIs を使用してテンプレートを順次実行する を参照してください。
consumer.view_added_template_chains¶
説明: クリーンルームで現在アクティブなテンプレートを表示します。
引数: cleanroom_name(string)
戻り値: 追加されたテンプレートチェーン(テーブル)
例:
call samooha_by_snowflake_local_db.consumer.view_added_template_chains($cleanroom_name);
consumer.view_template_chain_definition¶
説明: テンプレートチェーンの属性を返します。
引数: cleanroom_name(string)、template_chain_name(string)
戻り値: テンプレートチェーン定義(string)
例:
call samooha_by_snowflake_local_db.consumer.view_template_chain_definition($cleanroom_name, 'insights_chain');
分析の実行¶
以下のコマンドは、指定されたテンプレートに基づいて特定の分析またはアクティベーションを実行します。
consumer.run_analysis¶
説明: テンプレートまたはテンプレートチェーンを使用して分析を実行し、結果テーブルを返します。
差分プライバシーが有効な場合、このテンプレートの予算上限に達しているとクエリが失敗することがあります。
テンプレートがis_obfuscated
引数を適用することによって 不明瞭化 されている場合、Snowflake Enterprise Edition 以上を使用しなければテンプレートを実行できません。
引数:
cleanroom_name(文字列) - 実行するテンプレートがあるクリーンルームの名前。
template_name(文字列) - クリーンルームで実行するテンプレートまたはテンプレートチェーンの名前。
consumer_tables(文字列の配列) - 完全修飾されたコンシューマーテーブル名の配列。これらは
my_table
テンプレート変数に割り当てられます。これらのテーブルはすでにクリーンルームにリンクされている必要があります。consumer.view_consumer_datasets
を呼び出して利用可能なテーブルをご参照ください。例えば、['mytable1','mytable2','mytable3']を渡すと、テンプレートはこれらの値にそれぞれ{{my_table[0]}}
、{{my_table[1]}}
、{{my_table[2]}}
としてアクセスすることができます。provider_tables(文字列の配列) - 完全修飾されたプロバイダーテーブル名の配列。これらは
source_table
テンプレート変数に割り当てられます。これらのテーブルはすでにクリーンルームにリンクされている必要があります。consumer.view_provider_datasets
を呼び出して利用可能なテーブルをご参照ください。例えば、['sourcetable1','sourcetable2','sourcetable3']を渡すと、テンプレートはこれらの値にそれぞれ{{source_table[0]}}
、{{source_table[1]}}
、{{source_table[2]}}
としてアクセスすることができます。analysis_arguments(オブジェクト) - テンプレートに渡されるキー/値ペアのオブジェクト。テンプレートはキー名で変数にアクセスできます。
{'age': 20}
を渡すと、テンプレートは{{age}}
として値にアクセスします。値が必要ない場合は、空のオブジェクトを渡します。どの値が必要かを確認するには、consumer.view_template_definition
を呼び出して、問題のテンプレートを調べます。列名を指定する場合は、テンプレートを調べて、テーブル名で列名を修飾する必要があるかどうかを判断してください。テーブルのエイリアスがp
またはc
の場合、列名には小文字のp
およびc
のテーブル・エイリアスを使用します。つまり、P.age_band
ではなくp.age_band
です。このオブジェクトには、オプションで1つの予約値があります。epsilon
(浮動、オプション) - このクリーンルームで差分プライバシーが有効になっている場合、[差分プライバシーのepsilon値](https://www.google.com/search?q=differential+privacy+epsilon&oq=differential+privacy+epsilon)を指定します。デフォルトは0.1です。
use_cache(ブール、オプション) - 同じクエリに対してキャッシュされた結果を使用するかどうか。デフォルトは FALSE です。
戻り値: (テーブル) クエリ結果。
例:
call samooha_by_snowflake_local_db.consumer.run_analysis(
$cleanroom_name,
'prod_overlap_analysis',
['SAMOOHA_SAMPLE_DATABASE.MYDATA.CONVERSIONS'], -- Consumer tables
['MYDB.MYSCH.EXPOSURES'], -- Provider tables
object_construct(
'max_age', 30
)
);
アクティベーション¶
結果のアクティベートに関する詳細情報は、 アクティベーションの概要 をご参照ください。
library.view_external_activation_history¶
説明: 現在のアカウントのアクティベーションリクエスト履歴を表示します。
引数: なし
戻り値: アクティベーションリクエストの詳細とステータスのテーブル。
例:
call SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.LIBRARY.view_external_activation_history();
consumer.set_activation_policy¶
説明: アクティブ化テンプレート内で使用できる列を定義します。これにより、コンシューマーが承認した列のみが、アクティブ化テンプレートで使用できるようになります。
入力: cleanroom_name(string)、列(array)
列 引数は <template_name>:<fully_qualified_table_name>:<column_name>
の形式で渡されます。
出力: 成功メッセージ
例:
call samooha_by_snowflake_local_db.consumer.set_activation_policy('my_cleanroom', [
'prod_overlap_analysis:SAMOOHA_SAMPLE_DATABASE_NAME.DEMO.CUSTOMERS:HASHED_EMAIL',
'prod_overlap_analysis:SAMOOHA_SAMPLE_DATABASE_NAME.DEMO.CUSTOMERS:REGION_CODE' ]);
consumer.approve_provider_activation_consent¶
説明: プロバイダーのアクティブ化(プロバイダーのSnowflakeアカウントに結果をプッシュする機能)を許可するプロバイダーのリクエストを承認します。プロバイダーがこのこのclean roomでテンプレートを指定して provider.request_provider_activation_consent
を呼び出していない場合、このプロシージャは失敗します。
入力: cleanroom_name(string)、activation_template_name(string)
出力: 成功メッセージ
例:
call consumer.approve_provider_activation_consent('my_cleanroom', 'activation_my_template');
consumer.run_activation¶
説明: コンシューマーまたはプロバイダーのSnowflakeアカウントに結果をプッシュバックするテンプレートを実行します。consumer_direct_activation
引数には、コンシューマーとプロバイダーのどちらのアクティベーションかを定義します。
引数:
cleanroom_name (文字列) - アクティベーションを実行するclean roomの名前。
segment_name (文字列) - このアクティベーションの実行によって生成される行のラベルに使用される任意の文字列。アクティベーションを実行するたびに、既存の結果テーブルに新しい行が追加されます。このプロシージャを呼び出すたびに、このフィールドに一意の文字列を入力して、指定した実行で結果にフィルターできるようにします。
template_name (文字列) - 呼び出すアクティベーションテンプレートの名前。
consumer_tables (文字列の配列) - テンプレートに渡すコンシューマーテーブルの完全修飾名の配列。
provider_tables (文字列の配列) - テンプレートに渡すプロバイダーテーブルの完全修飾名の配列。
activation_arguments (オブジェクト) - テンプレートに渡す引数のキーと値のセット。
consumer_direct_activation (ブール、オプション) - コンシューマーアカウントに結果をプッシュバックする場合は TRUE、プロバイダーに結果を送信する場合は FALSE。デフォルトは FALSE です。
戻り値: (文字列) 成功した場合の成功メッセージ。
例:
-- Run a consumer activation, as specified by the final TRUE argument.
SET segment_name = 'my_activation_segment';
CALL samooha_by_snowflake_local_db.consumer.run_activation(
$cleanroom_name,
$segment_name,
$template_name,
['SAMOOHA_SAMPLE_DATABASE.DEMO.CUSTOMERS'],
['SAMOOHA_SAMPLE_DATABASE.DEMO.CUSTOMERS'],
object_construct(
'c_join_col', 'c.hashed_email',
'p_join_col', 'p.hashed_email'
),
TRUE);
コンシューマー定義のテンプレート¶
以下の APIs を使用すると、クリーンルームにコンシューマー定義のテンプレートを追加することができます。詳しくは、 開発者 API を使用してコンシューマー定義のテンプレートを追加する をご参照ください。
consumer.create_template_request¶
説明: clean roomのプロバイダーにリクエストを送信し、カスタムテンプレートの承認を求めて、clean roomに追加できるようにします。開発者 API を使用してコンシューマー定義のテンプレートを追加する をご参照ください。
引数:
cleanroom_name(文字列) - このテンプレートが適用されるクリーンルームの名前。
template_name(文字列) - テンプレートの名前。すべて小文字、数字、スペース、またはアンダースコアでなければなりません。アクティベーションテンプレートは、「activation」で始まる名前でなければなりません。
template_definition (文字列) - JinjaSQL テンプレート。 テンプレート構文の詳細。
戻り値: 成功メッセージ(string)
例:
CALL samooha_by_snowflake_local_db.consumer.create_template_request('dcr_cleanroom',
'my_analysis',
$$
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 %};
$$);
consumer.get_sql_jinja¶
説明: JinjaSQL テンプレートを有効な SQL ステートメントに評価します。このプロシージャで処理できるのは標準的な JinjaSQL ステートメントだけです。 join_policy
や column_policy
などの JinjaSQL へのclean room拡張は処理できません。
引数:
template_string (文字列) - 処理するテンプレート。標準の JinjaSQL のみサポートされています。
arguments (オブジェクト) - テンプレートで使用される変数に対応するフィールド名および値が、生成されたクエリのテンプレートにある、対応する変数のプレースホルダに挿入されたオブジェクト。
戻り値: (文字列) 発信されたテンプレートにより、指定した変数値で生成される SQL ステートメント。
例:
CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.CONSUMER.GET_SQL_JINJA(
$$
SELECT COUNT(*), IDENTIFIER({{ group_by_col }})
FROM IDENTIFIER({{ my_table | sqlsafe }})
INNER JOIN IDENTIFIER({{ source_table | sqlsafe }})
ON IDENTIFIER({{ consumer_join_col }}) = IDENTIFIER({{ provider_join_col }})
GROUP BY IDENTIFIER({{ group_by_col }});
$$,
object_construct(
'group_by_col', 'city',
'consumer_join_col', 'hashed_email',
'provider_join_col', 'hashed_email',
'my_table', 'mydb.mysch.t1',
'source_table', 'mydb.mysch.t2'));
応答:
SELECT COUNT(*), IDENTIFIER('city')
FROM IDENTIFIER(mydb.mysch.t1)
INNER JOIN IDENTIFIER(mydb.mysch.t2)
ON IDENTIFIER('hashed_email') = IDENTIFIER('hashed_email')
GROUP BY IDENTIFIER('city');
consumer.generate_python_request_template¶
説明: カスタムPythonコードを含むコンシューマー向けクリーンルームテンプレートを生成します。生成されたテンプレートにはPythonコードと JinjaSQL テンプレートのプレースホルダーが含まれます。最終的なテンプレートを consumer.create_template_request
に渡します。
[コンシューマー定義テンプレートについて詳細をご覧ください。](/user-guide/cleanrooms/developer-consumer-templates)
引数:
function_name(string) - 関数を実行するために SQL テンプレートが呼び出すPython関数の名前。
引数(文字列の配列) - Python関数の引数のリスト。各引数は、「<argument_name> <argument_type>」の形式で、スペースで区切られた文字列のペアです。例えば
['data variant', 'scale integer']
などです。パッケージ(文字列の配列) - Pythonコードに必要なパッケージ名の配列。ない場合は空の配列を指定します。例えば、
['pandas','numpy']
などです。インポート(文字列の配列) - Pythonコードに必要なカスタムPythonライブラリ。0個以上のステージアドレスの配列である必要があります。例:
['@db.schema.stage/my_python_sproc.py']
戻り値のタイプ(string) - 関数の SQL 戻り値のタイプ。例:
'integer'
、'varchar'
。ハンドラー(string) - Pythonコード内のメインハンドラー関数の名前。通常、これは
'main'
です。コード(string) - Pythonコードの実装。インポートを含み、指定したハンドラーがインポート内で定義されている場合、これは空文字列になります。
戻り値: 生成されたPythonテンプレート(string)。プレースホルダーを SQL コードに置き換えてください。
例:
Pythonの些細な例でヘルパー関数を呼び出します。
call SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.CONSUMER.GENERATE_PYTHON_REQUEST_TEMPLATE(
'my_func', // SQL should use this name to call your function
['data variant', 'index integer'], // Arguments and types for the function
['pandas', 'numpy'], // Standard libraries used
[], // No custom libraries needed.
'integer', // Return type integer
'main', // Standard main handler
// Python implementation as UDF
$$
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)
$$
);
前回の呼び出しに対する応答です。JinjaSQL をプレースホルダーのところにあるように挿入し、 consumer.create_template_request
に渡します。
BEGIN
-- First define the Python UDF
CREATE OR REPLACE FUNCTION CLEANROOM.my_func(data variant, index integer)
RETURNS integer
LANGUAGE PYTHON
RUNTIME_VERSION = 3.10
PACKAGES = ('pandas', 'numpy')
HANDLER = 'main'
AS '
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)
';
-- Then define and execute the SQL query
LET SQL_TEXT varchar := '<INSERT SQL TEMPLATE HERE>';
-- Execute the query and return the result
LET RES resultset := (EXECUTE IMMEDIATE :SQL_TEXT);
RETURN TABLE(RES);
END;
consumer.list_template_requests¶
説明: コンシューマーがclean roomにテンプレートを追加するために行ったリクエストをリストします。
引数: cleanroom_name(string)
戻り値: request_id(文字列)、provider_identifier(文字列)、template_name(文字列)、template_definition(文字列)、request_status(文字列)、reason(文字列)
例:
CALL samooha_by_snowflake_local_db.consumer.list_template_requests('dcr_cleanroom');
クリーンルームのメタデータゲッターメソッド¶
以下の方法は、クリーンルームの関連特性を示しています。
consumer.describe_cleanroom¶
説明:テンプレート、データセット、ポリシーなど、clean roomに追加されたすべての情報を含むテキストサマリーを作成します。テンプレートがis_obfuscated
引数を適用することによって 不明瞭化 されている場合、Snowflake Enterprise Edition 以上を使用しなければテンプレートを表示できません。
引数: cleanroom_name(文字列)
戻り値: クリーンルームの詳細説明文字列(テーブル)
例:
call samooha_by_snowflake_local_db.consumer.describe_cleanroom($cleanroom_name);
consumer.view_provider_datasets¶
説明: プロバイダーによってクリーンルームに追加されたすべてのデータセットを表示します。
引数: cleanroom_name(文字列)
戻り値: クリーンルーム内の全てのプロバイダーデータセット名(テーブル)
例:
call samooha_by_snowflake_local_db.consumer.view_provider_datasets($cleanroom_name);
consumer.view_join_policy¶
説明: コンシューマーデータセットでコンシューマーが設定する、クリーンルーム内でユーザーが安全に参加できる列の概要を示します。
引数: cleanroom_name(string)
戻り値: 結合ポリシー(テーブル)
例:
call samooha_by_snowflake_local_db.consumer.view_join_policy($cleanroom_name);
consumer.view_provider_join_policy¶
説明: プロバイダーがプロバイダーのデータセットに設定した、ユーザーがクリーンルーム内で安全に参加できる列の概要を示します。
引数: cleanroom_name(string)
戻り値: 結合ポリシー(テーブル)
例:
call samooha_by_snowflake_local_db.consumer.view_provider_join_policy($cleanroom_name);
consumer.view_added_templates¶
説明:clean room内のすべてのアクティブなテンプレートを表示します。テンプレートがis_obfuscated
引数を適用することによって 不明瞭化 されている場合、Snowflake Enterprise Edition 以上を使用しなければテンプレートを表示できません。
引数: cleanroom_name(string)
戻り値: 追加されたテンプレート(テーブル)
例:
call samooha_by_snowflake_local_db.consumer.view_added_templates($cleanroom_name);
library.is_consumer_run_enabled¶
説明: コンシューマーが実行する分析が、このclean roomで有効かどうかをチェックします。このフラグで、clean roomのコンシューマー (インストールした側) がこのclean roomで分析を実行できるかどうかを定義します。
引数: cleanroom_name(string)
戻り値: 有効メッセージ(string)
例:
CALL samooha_by_snowflake_local_db.library.is_consumer_run_enabled($cleanroom_name);
consumer.view_cleanrooms¶
説明: このアカウントで参加済み(インストール済み)または参加可能なすべてのクリーンルームを表示します。インストールされたclean roomのみを表示するには、 consumer.view_installed_cleanrooms
を実行します。
引数: なし
戻り値: (テーブル) このアカウントにインストールまたは招待されているすべてのclean room。
例:
call samooha_by_snowflake_local_db.consumer.view_cleanrooms();
consumer.view_installed_cleanrooms¶
説明: このアカウントにインストール (参加) しているすべてのclean roomのリスト。結合されたclean roomと結合されていないclean roomを表示するには、 consumer.view_cleanrooms
を呼び出します。このアカウントで作成されたすべてのclean roomを表示するには、 provider.view_cleanrooms
を呼び出します。
引数: なし
戻り値: (テーブル) このアカウントにインストールされているclean room。
例:
CALL samooha_by_snowflake_local_db.consumer.view_installed_cleanrooms();
差分プライバシー¶
これらのコマンドは、クリーンルーム内の差分プライバシーを制御します。また、 consumer.enable_templates_for_provider_run
を呼び出す際に、テンプレートレベルで差分プライバシーを指定することもできます。
[差分プライバシーの管理について詳細をご覧ください。](/user-guide/cleanrooms/differential-privacy)
consumer.is_dp_enabled¶
説明: クリーンルームで差分プライバシーが有効になっているかどうかを確認します。
引数: cleanroom_name(文字列)
戻り値: クリーンルームが DP を有効にしているかどうか(boolean)
例:
call samooha_by_snowflake_local_db.consumer.is_dp_enabled($cleanroom_name);
consumer.view_remaining_privacy_budget¶
説明: クリーンルームからのクエリに使用できるプライバシー予算の残りを表示します。一度使い果たしたrun_analysisは、予算がリセットされるまで、それ以上呼び出すことはできません。予算は毎日リセットされます。
SELECT cleanroom_name FROM TABLE(RESULT_SCAN(LAST_QUERY_ID())) WHERE is_already_installed = TRUE;
引数: cleanroom_name(string)
戻り値: 残りのプライバシー予算(浮動)
例:
call samooha_by_snowflake_local_db.consumer.view_remaining_privacy_budget($cleanroom_name);
consumer.set_privacy_settings¶
説明: カスタムテンプレートを使用してプロバイダーが実行する分析 (アクティベーションを含む) のプライバシー設定を行います。以前にセットした値をすべて消去します。このメソッドを呼び出すたびに、以前の設定がすべて消去されます。
引数:
cleanroom_name (文字列) - これらの設定を適用するclean roomの名前。
privacy_settings (文字列) - カスタムテンプレートがプロバイダーによって実行される場合に、プライバシー設定を指定する文字列 JSON オブジェクト。このオブジェクトの構文は以下のとおりです:
'{ "null" : <template_config> }'
template_config
は、差分プライバシーと集計の設定を含むオブジェクトです。このオブジェクトで指定するフィールドについては、 設定可能なプライバシー をご参照ください。
例:
-- Apply differential privacy for provider-run analysis using all custom templates.
CALL samooha_by_snowflake_local_db.consumer.set_privacy_settings(
$cleanroom_name,
PARSE_JSON('{
"null":{ "differential": 1, "epsilon": 0.1, "privacy_budget": 3 }
}')
);
戻り値: 文字列の成功メッセージ。
Snowpark Container Services コマンド¶
clean roomでのSnowplark Container Services の使用について詳しくは、こちらをご参照ください。
consumer.start_or_update_service¶
説明: このclean roomでプロバイダーが定義した最新バージョンの SPCS を作成し、起動します。プロバイダーが provider.load_service_into_cleanroom
を呼び出してコンテナーを作成または更新する際には必ず、コンシューマーは consumer.start_or_update_service
を呼び出してサービスを更新する必要があります。
コンシューマーは、このプロシージャを呼び出す前にプールを定義し、開始する必要があります。
引数:
cleanroom_name (文字列) - コンテナーをロードするclean roomの名前。
compute_pool_name (文字列) - このclean roomでコンシューマーによって定義されるコンピュートプールの名前。プールがすでに作成され、clean roomにプールへのアクセス権限が付与されている必要があります。
service_options (オブジェクト、オプション) - このサービスのパラメーターを指定するオブジェクト。以下のプロパティを指定できます:
query_warehouse
- (文字列、オプション) このサービスで使用するウェアハウスの名前。clean roomを実行するウェアハウスと同じである必要はありません。min_instances
- (整数、オプション) このサービスで使用するインスタンスの最小数。max_instances
- (整数、オプション) このサービスで使用するインスタンスの最大数。
戻り値: (テーブル) 読み込みが成功した場合の結果。成功しなかった場合はエラーをスローします。
例:
CALL samooha_by_snowflake_local_db.consumer.start_or_update_service(
$cleanroom_name,
'dcr_lal_pool',
object_construct(
'query_warehouse', 'app_wh',
'min_instances', '1',
'max_instances', '1'
));
一般的なヘルパーメソッド¶
一般的なクリーンルームの機能性を支援するために、以下の方法を使用してください。
consumer.set_cleanroom_ui_accessibility¶
説明: 現在のアカウントのコンシューマーのために、ウェブアプリでクリーンルームを表示または非表示にします。
引数:
cleanroom_name(文字列) - クリーンルームの名前。
visibility_status(文字列) - 以下の大文字と小文字を区別する値のいずれか。
HIDDEN - 現在のコンシューマーアカウントの全ユーザーから、ウェブアプリで指定されたクリーンルームを非表示にします。クリーンルームへは、引き続き API 呼び出しでアクセスできます。
EDITABLE - クリーンルームをウェブアプリで見えるようにします。
戻り値: 成功メッセージ(string)
例:
CALL samooha_by_snowflake_local_db.consumer.set_cleanroom_ui_accessibility($cleanroom_name, 'HIDDEN');
library.enable_local_db_auto_upgrades¶
説明: タスク、 samooha_by_snowflake_local_db.admin.expected_version_task
を有効にします。このタスクは、新しいバージョンがリリースされると、Snowflake Data Clean Rooms用のSnowflake Native Appを自動的にアップグレードします。
引数: なし
戻り値: 成功メッセージ(string)
例:
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用のSnowflake Native Appを自動的にアップグレードします。
引数: なし
戻り値: 成功メッセージ(string)
例:
CALL samooha_by_snowflake_local_db.library.disable_local_db_auto_upgrades();