Provider-run analysis

默认的 Clean Room 配置仅允许用户在 Clean Room 中进行分析。不过,提供商可以请求使用者允许在特定 Clean Room 中利用使用者数据运行模板。可使用 Clean Room UI 或代码启用和运行由提供商运行的分析。

支持的模板

由提供商运行的分析可在给定 Clean Room 的模板级别上启用。以下模板支持由提供商运行的分析:

  • 重叠与分段分析

  • SQL 查询(仅限 UI)

  • 自定义模板(仅限 API)

账单详情

使用者在 Clean Room 中进行任何由提供商运行的分析均需计费。为避免因提供商的分析而产生额外费用,使用者必须卸载 Clean Room。

使用者可以通过执行以下查询来估算提供商在过去 N 天内使用的 Credit,并将之前的天数指定为负数:

-- Estimate the number of credits consumed in the past 5 days.
SELECT * FROM TABLE(SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.LIBRARY.PRA_CONSUMPTION_UDTF(-5));
Copy

选择仓库大小

Clean Room 使用基于数据集大小的自动缩放逻辑来选择仓库进行分析。但是,提供商可以从使用者允许的大小和类型列表中显式选择仓库大小。提供商如下所示选择仓库大小:

  1. 使用者调用 consumer.enable_templates_for_provider_run,指定哪些仓库大小和类型可以与哪些模板一起使用。

  2. 提供商调用 provider.view_warehouse_sizes_for_template 来查看允许哪些仓库大小和类型进行提供商运行分析。

  3. 提供商指定在其分析请求中使用哪种大小和类型组合 (provider.submit_analysis_request)。

提供商只能请求使用者显式列出的仓库大小和类型。

使用者

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']},
    $template1: {'warehouse_type': 'SNOWPARK-OPTIMIZED', 'warehouse_size': ['MEDIUM', 'XLARGE']},
    $template2: {'warehouse_type': 'STANDARD', 'warehouse_size': ['MEDIUM', 'XLARGE']}
  });
Copy

提供商

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

实现由提供商运行的分析

小技巧

如果使用者和提供商位于不同的云区域,则需要在两个账户和两个 Clean Room 中启用 Cross-Cloud Auto-Fulfillment

在 Clean Room UI 中对在 Clean Room 中运行查询的权限进行管理,方法是在 Clean Room 配置流程中的 Share clean room 面板中使用 Enable run analysis & query 切换开关。要启用或禁用由提供商运行的分析,Clean Room 提供商可在该面板中启用自己账户旁边的切换开关。创建 Clean Room 后不能更改此切换开关;如果要更改特定账户在已发布的 Clean Room 中运行查询的权限,必须删除该 Clean Room 并创建新的 Clean Room。

以下是在新 Clean Room 中启用由提供商运行的分析的步骤:

  1. 提供商使用 支持的模板 之一创建并配置 Clean Room。

  2. 在 Clean Room 配置的 Share Clean Room 步骤中,切换您账户旁边的 Enable run analysis & query,使您能够在此 Clean Room 中运行支持提供商分析的模板。

  3. 当使用者加入 Clean Room 时,他们会在加入前收到警告,告知他们该 Clean Room 已启用由提供商运行的分析。

  4. 用户会对 Clean Room 中的所有模板(包括任何支持提供商分析的模板)进行正常配置。如果使用者不想让提供商运行特定模板,可以省略该模板所需的详细信息。请注意,支持提供商分析的模板也支持使用者分析。

  5. 使用者加入并配置了 Clean Room 后,提供商使用者 都可以通过正常的分析流程在 Clean Room 中运行模板。

  6. 由提供商运行的分析权限授予后不可撤销。要停止由提供商运行的分析,唯一的方法就是提供商或使用者删除 Clean Room。

语言: 中文