Snowflake Data Clean Room:使用者 API 参考指南

本页描述了 Clean Room API 使用者管理其 Clean Room 时使用的程序。有关编码设置的说明,请参阅 编码设置

管理角色访问权限

consumer.grant_run_on_cleanrooms_to_role

描述: 授予指定角色在指定 Clean Room 上运行过程子集的权限。Clean Room 必须 安装 在此账户中,而非由此账户 创建。(也就是说,仅限于您是使用者的 Clean Room。)

要授予 Clean Room 有限的使用权限,请授予用户指定角色而非 SAMOOHA_APP_ROLE。有关角色访问权限的更多信息,请参阅 授予有限的 API 访问权限

以下过程可使用此处指定的角色运行:

  • 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_names (字符串) – 要授予指定角色有限访问权限的所有 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'
);
Copy

consumer.revoke_run_on_cleanrooms_from_role

描述: 撤销指定角色在指定 Clean Room 上的权限。如果用户有权访问未撤销的角色,或者拥有 SAMOOHA_APP_ROLE,则他们仍然可以在指定 Clean Room 中运行 Clean Room 过程。

实参:

  • cleanroom_names (字符串) – 此账户中一个或多个 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'
);
Copy

安装 Clean Room

Clean Room 的安装或卸载过程。

consumer.install_cleanroom

描述: 安装(联接)指定提供商创建的 Clean Room。多次调用此命令时,每次都会清理现有的 Clean Room;如果您在第二次安装完成前中断安装,则 Clean Room 将损坏,您需要完成此过程 Clean Room 才可用。

实参:

  • cleanroom_name (字符串) - 要安装的 Clean Room 的名称。

  • provider_account_locator(字符串) – 创建此 Clean Room 的提供商的账户定位器。

返回: (字符串) 成功消息。

错误处理:

如果您收到一条错误消息,即“Cross-Cloud Auto-Fulfillment is not enabled for this account”,则表示该提供商位于另一个云托管区域。您必须按照 在 Snowflake Data Clean Rooms 中管理 Cross-Cloud Auto-Fulfillment 中所述启用 Cross-Cloud Auto-Fulfillment。

示例:

CALL samooha_by_snowflake_local_db.consumer.install_cleanroom(
  $cleanroom_name,
  $provider_locator);
Copy

consumer.is_enabled

描述: Clean Room 安装后可能会有短暂的延迟,然后才能投入使用。您可以调用此过程来确认 Clean Room 在安装后是否可以使用。

实参:

  • cleanroom_name (字符串) – 要检查状态的 Clean Room 的名称。

返回: (布尔值) 指定的 Clean Room 是否已安装并可供使用。

示例:

CALL samooha_by_snowflake_local_db.consumer.is_enabled($cleanroom_name);
Copy

consumer.uninstall_cleanroom

描述: 卸载使用者账户中的 Clean Room。卸载会移除与 Clean Room 相关联的所有数据库,包括共享的 Clean Room 数据库。始终可以通过调用 consumer.install_cleanroom 再次安装 Clean Room。

实参:

  • cleanroom_name (字符串) - 要卸载的 Clean Room 的名称。

返回: (字符串) 成功消息。

示例:

CALL samooha_by_snowflake_local_db.consumer.uninstall_cleanroom($cleanroom_name);
Copy

跨云协作

安装在另一个云区域创建的 Clean Room。

了解详情。

library.enable_laf_on_account

描述: 在当前账户上启用 Cross-Cloud Auto-Fulfillment。需要 ACCOUNTADMIN 角色。

重要

您必须先通过调用 SYSTEM$ENABLE_GLOBAL_DATA_SHARING_FOR_ACCOUNT 为账户启用 Cross-Cloud Auto-Fulfillment。详细了解自动履行管理自动履行权限

实参:

返回: (字符串) 成功消息。

示例:

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

library.disable_laf_on_account

描述: 在当前账户上禁用 Cross-Cloud Auto-Fulfillment。需要 ACCOUNTADMIN 角色。

实参:

返回: (字符串) 成功消息。

示例:

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

consumer.is_laf_enabled_for_cleanroom

描述: 描述该 Clean Room 是否启用了 Cross-Cloud Auto-Fulfillment。Cross-Cloud Auto-Fulfillment 必须由账户管理员配置

实参:

返回: 该 Clean Room 是否启用了 Cross-Cloud Auto-Fulfillment。

示例:

CALL samooha_by_snowflake_local_db.consumer.is_laf_enabled_for_cleanroom($cleanroom_name);
Copy

consumer.request_laf_cleanroom

描述: 设置安装在其他云区域创建的 Clean Room 的先决条件。在调用此过程前调用 consumer.install_cleanroom 会失败。每次调用时,此过程都会返回当前状态。定期调用,直到状态为 FULFILLED,然后调用 consumer.install_cleanroom。状态达到 FULFILLED 可能需要最多 10 分钟的时间。

实参:

  • cleanroom_name (字符串) – 要安装的跨区域 Clean Room 的名称。

  • provider_locator(字符串) – 创建此 Clean Room 的提供商的账户定位器。

返回: (字符串) 请求的状态消息。继续调用,直至状态变为 FULFILLED。

示例:

CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.consumer.request_laf_cleanroom(
  $cleanroom_name,$provider_locator);
Copy

consumer.setup_cleanroom_request_share_for_laf

描述: 允许与特定 Clean Room 的指定提供商进行跨云请求共享。这是跨区域 Clean Room 具有完整功能(包括请求日志、使用者模板请求和提供商运行的分析)的必要条件。

实参:

返回: (字符串) 成功消息。

示例:

CALL samooha_by_snowflake_local_db.consumer.setup_cleanroom_request_share_for_laf(
      $cleanroom_name, $provider_account_name);
Copy

consumer.setup_activation_share_to_laf_consumer

描述: 支持在不同云区域的提供商和使用者之间进行提供商激活。

实参:

返回: (字符串) 成功消息。

示例:

CALL samooha_by_snowflake_local_db.consumer.setup_activation_share_to_laf_consumer(
  'org1.locator1,org2.locator2');
Copy

Provider-run analysis

有关提供商运行分析的更多信息,请参阅 Provider-run analysis

library.is_provider_run_enabled

描述: 检查此 Clean Room 是否允许提供商运行分析。在提供商可以在此 Clean Room 中运行分析之前,使用者仍然必须通过调用 consumer.enable_templates_for_provider_run 授予明确许可。

实参:

返回: (字符串) 描述 Clean Room 是否支持提供商运行分析。

示例:

CALL samooha_by_snowflake_local_db.library.is_provider_run_enabled($cleanroom_name)
Copy

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 中一个或多个模板的名称数组。

  • enable_differential_privacy(布尔) – 如果为 TRUE,则为 template_names 中列出的所有模板启用差分隐私。只有为 Clean Room 本身启用差分隐私时,才能为这些模板启用差分隐私。您可以通过调用 consumer.is_dp_enabled 来查看 Clean Room 的差分隐私状态。您可以通过调用 consumer.set_privacy_settings 来自定义隐私设置。了解详情。

  • template_configuration(对象,可选) – 一个可选对象,用于为 template_names 中每个模板指定其他设置。此对象包含键值对,其中键是模板名称(来自 template_names),值是针对提供商如何使用此模板设置限制的对象。如果您不提供模板配置,则“ALL”是 template_names 中所有模板的所有属性的默认值。如果您确实提供了模板配置,则必须为 template_names 中列出的每个模板提供配置,并为该模板的配置定义所有属性。支持以下属性:

    • warehouse_type字符串) – 提供商可以在此模板中使用的允许仓库类型。允许的值:

      • ALL - 允许任何仓库类型。

      • STANDARD - 仅允许标准仓库。

      • SNOWPARK-OPTIMIZED - 仅允许 Snowpark 优化型仓库。

    • warehouse_size字符串数组) – 一种或多种允许的仓库规模,可用于该仓库类型和模板。允许的值是那些针对 WAREHOUSE_SIZE 或其同义词定义的值(例如,XLARGE 或 X-LARGE)。指定“ALL”以允许任何仓库大小。

返回: (字符串) 成功消息。

示例:

-- Simple example
CALL samooha_by_snowflake_local_db.consumer.enable_templates_for_provider_run(
  $cleanroom_name,
  ['prod_overlap_analysis'],
  FALSE);

-- Specify what types of warehouse the provider can use to run these templates.
CALL samooha_by_snowflake_local_db.CONSUMER.enable_templates_for_provider_run(
  $cleanroom_name,
  ['template1', 'template2', 'template3'],
  TRUE,
  {
    'template1': {'warehouse_type': 'ALL', 'warehouse_size': ['MEDIUM', 'LARGE']},
    'template2': {'warehouse_type': 'SNOWPARK-OPTIMIZED', 'warehouse_size': ['MEDIUM', 'XLARGE']},
    'template3': {'warehouse_type': 'STANDARD', 'warehouse_size': ['MEDIUM', 'XLARGE']}
  });
Copy

多提供商分析

这些过程支持 多提供商分析

consumer.prepare_multiprovider_flow

描述: 向指定 Clean Room 的提供商发送运行多提供商查询的请求。此过程实际上并不运行请求;它只是通过调用 consumer.execute_multiprovider_flow 来向提供商请求将来运行此请求的权限。

如果提供商批准,使用者就可以随心所欲地调用 consumer.execute_multiprovider_flow 来运行查询(具体取决于任何配置的差分隐私设置)。要在使用新值调用 prepare_multiprovider_flow 后重新运行之前批准的查询,则使用者必须使用该之前的查询调用 prepare_multiprovider_flow,但他们无需等待提供商批准即可运行 consumer.execute_multiprovider_flow

该请求的有效期为四小时;之后,该请求将从队列中删除。

实参:

  • cleanroom_names (字符串) - 使用者账户中 Clean Room 名称的数组。必须安装这些 Clean Room。

  • template_name(字符串) – 要在 cleanroom_names 中列出的每个 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_analysisconsumer_tables 实参相同的语法。

    • 任何其他模板变量 – 将模板的任何必填值作为键/值对传递。

返回: (字符串) 传递给 consumer.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'
    )
);
Copy

consumer.execute_multiprovider_flow

描述: 运行使用者向 consumer.prepare_multiprovider_flow 提交的最新查询。该过程在提供商批准的每个指定 Clean Room 中运行查询,并返回所有查询结果的并集。运行此过程是判断提供商是否批准查询的唯一方法。

实参:

  • cleanroom_names (字符串) – 应在其中运行准备好的查询的 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);
Copy

注册和取消注册数据

使用以下过程注册和取消注册数据库、架构和对象。必须先注册表和视图,然后才能将其链接到 Clean Room。如果您注册了一个数据库或架构,则还需注册该数据库或架构中的所有对象。有关注册数据的更多信息,请参阅 注册数据

consumer.register_db

描述: 在账户中注册一个数据库,以便能够将该数据库中的任何对象链接到该账户中的 Clean Room。要进行更精细的控制,您可以改为调用 register_schemaregister_managed_access_schemaregister_object。注册后添加到数据库的对象可能无法链接,在这种情况下,您应该重新注册数据库(或注册对象本身)。

您必须具有数据库的 MANAGE GRANTS 权限才能运行此过程。

实参:

  • db_name(字符串) - 要在此账户中注册的数据库的名称。

返回: (字符串) 成功消息。

示例:

USE ROLE <ROLE_WITH_MANAGE GRANTS>;
CALL samooha_by_snowflake_local_db.consumer.register_db('SAMOOHA_SAMPLE_DATABASE');
Copy

library.register_schema

描述: 在账户中注册一个架构,以便能够将该架构中的任何对象链接到该账户中的 Clean Room。要获得更精细的控制,您可以改为调用 register_object。注册后添加到架构的对象可能无法链接,在这种情况下,您应该重新注册架构(或注册对象本身)。

如果要注册托管访问架构(即使用 WITH MANAGED ACCESS 参数创建的架构),请改用 library.register_managed_access_schema

实参:

  • schema_name(字符串数组) – 要注册的完全限定架构的数组。

返回: (字符串) 成功消息。

示例:

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

library.register_managed_access_schema

描述: 在账户中注册一个托管访问架构,以便能够将该架构中的任何对象链接到该账户中的 Clean Room。要获得更精细的控制,您可以改为调用 register_object。注册后添加到架构的对象可能无法链接,在这种情况下,您应该重新注册架构(或注册对象本身)。

实参:

  • schema_name(字符串数组) – 要注册的完全限定托管架构的数组。

返回: (字符串) 成功消息。

示例:

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

library.register_objects

描述: 授予 clean room 访问所有类型的表和视图的权限,使其可以通过调用 consumer.link_datasets 链接到 clean room。您可以通过调用 library.register_schemalibrary.register_managed_access_schemaconsumer.register_db 注册更广泛的对象组。您必须具有数据库的 MANAGE GRANTS 权限,才能运行此过程。

实参:

  • object_names(数组) – 完全限定的对象名称数组。然后可以将这些对象链接到 Clean Room。

返回: (字符串) 成功消息。

示例

要注册表和视图:

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

library.enable_external_tables_on_account

描述: 允许在此账户的所有 Clean Room 中使用 Iceberg 表或外部表。必须 同时 由提供商和使用者账户中的 ACCOUNTADMIN 调用,以允许通过 任一 账户链接 Iceberg 表或外部表。要将此功能限制在此账户中的特定 Clean Room,请改为调用 enable_external_tables_for_cleanroom

实参:

返回: (字符串) 成功消息。

示例:

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

consumer.enable_external_tables_for_cleanroom

描述: 使使用者能够将 Iceberg Tables 或 External Tables 链接到此账户中的指定 Clean Room。要允许该账户中的所有 Clean Room 使用 Iceberg 表和外部表,请改为调用 enable_external_tables_on_account

实参:

  • cleanroom_name (字符串) - Clean Room 名称,提供商可将 Iceberg 表或外部表链接至该 Clean Room。

返回: (字符串) 成功消息。如果成功,它将触发安全扫描,并提供安全扫描成功后生成的补丁编号。

示例:

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

library.unregister_db

描述: 移除向 SAMOOHA_APP_ROLE 角色和 Snowflake Data Clean Room 原生应用程序提供的数据库级授权。此账户将无法再访问该数据库中链接到 Clean Room 的任何数据。您必须具有数据库的 MANAGE GRANTS 权限才能运行此过程。

实参:

  • db_name(字符串) – 要取消注册的数据库的名称。

返回: (字符串) 成功消息。

示例:

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

library.unregister_schema

描述:取消注册一个或多个架构,防止用户将其表和视图链接到 Clean Room。

如果要取消注册托管访问架构(即使用 WITH MANAGED ACCESS 参数创建的架构),请改用 library.unregister_managed_access_schema。您必须具有数据库的 MANAGE GRANTS 权限才能运行此过程。

实参:

  • schema_name(字符串数组) – 要取消注册的架构的完全限定名称。

返回: (字符串) 成功消息。

示例:

USE ROLE <ROLE_WITH_MANAGE GRANTS>;
CALL samooha_by_snowflake_local_db.library.unregister_schema(['SAMOOHA_SAMPLE_DATABASE.PUBLIC', 'MY_DB.MY_SCH']);
Copy

library.unregister_managed_access_schema

描述:取消注册一个托管访问架构,以防止用户将其表和视图链接到 Clean Room。

实参:

  • schema_name(字符串数组) – 要取消注册的架构的完全限定名称。

返回: (字符串) 成功消息。

示例:

CALL samooha_by_snowflake_local_db.library.unregister_managed_access_schema(['SAMOOHA_SAMPLE_DATABASE.DEMO']);
Copy

library.unregister_objects

描述: 撤销 Clean Room 对所有类型的表和视图的访问权限。此账户管理的所有 Clean Room 中的任何用户将无法再使用这些对象。

实参:

  • object_names(数组) – 应该撤销访问权限的完全限定对象名称的数组。

返回: (字符串) 成功消息。

示例

要取消注册表和视图:

USE ROLE <ROLE_WITH_MANAGE GRANTS>;
CALL samooha_by_snowflake_local_db.library.unregister_objects(
    ['SAMOOHA_SAMPLE_DATABASE.DEMO.CUSTOMERS','MY_DB.MY_SCH.MY_VIEW']);
Copy

管理和查看策略

在已安装的 Clean Room 中管理数据策略

consumer.set_join_policy

描述: 指定在使用提供商运行分析时,允许提供商在 Clean Room 内运行模板时对哪些列执行联接。列策略是 仅替换,因此如果再次调用该函数,先前设置的列策略将被当前策略完全替换。如果您没有为数据指定联接策略,则所有列均可联接。

带通配符的查询可能会规避联接政策,因此在设计分析模板时要谨慎行事。

实参:

  • cleanroom_name (字符串) – 应用联接策略的 Clean Room 的名称。

  • table_col_names(字符串数组) - 可以联接的列的完全限定名称,格式为 database name.schema name:column name

返回: (字符串) 成功消息。

示例:

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

consumer.view_join_policy

描述: 概述用户可以在 clean room 内安全地联接哪些列,由使用者在使用者数据集上设置。

实参:

返回: 联接策略(表)

示例:

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

consumer.view_provider_join_policy

描述:概述用户可以在 Clean Room 内安全地联接哪些列,由提供商在提供商数据集上设置。

实参:

返回: 联接策略(表)

示例:

CALL samooha_by_snowflake_local_db.consumer.view_provider_join_policy($cleanroom_name);
Copy

consumer.set_column_policy

描述: 定义哪些列可以投影使用者数据。列策略适用于 Clean Room 中的模板。列策略是 仅替换,因此如果再次调用该函数,先前设置的列策略将被当前策略完全替换。如果您没有指定列策略,则所有列均可投影。

不要对身份列或电子邮件等敏感列设置列政策,因为您通常不希望投影此类数据。

使用这些检查可能无法找出含有通配符的查询,因此,设计分析模板时应慎重。

实参:

  • cleanroom_name (字符串) – 应用列策略的 Clean Room 的名称。

  • analysis_table_cols(字符串数组) - 可以投影的列的完全限定名称,格式为 database name.schema name:column name

返回: (字符串) 成功消息。

示例:

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'
  ]
);
Copy

consumer.view_column_policy

描述: 显示指定 Clean Room 中的所有 使用者 列策略。要查看提供商设置的任何列策略,请调用 consumer.view_provider_column_policy

实参:

  • cleanroom_name (字符串) - 要描述的 Clean Room 的名称。

返回: (表) 有关 Clean Room 中所有使用者列策略的信息。

示例:

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

consumer.view_provider_column_policy

描述: 查看提供商已应用于 Clean Room 的所有列策略。

实参:

返回: 列策略(表)

示例:

CALL samooha_by_snowflake_local_db.consumer.view_provider_column_policy($cleanroom_name);
Copy

模板

通过以下过程,用户可以使用 Clean Room 中的模板。

consumer.view_template_definition

描述: 查看指定模板的原始 JinjaSQL。如果通过应用 is_obfuscated 实参隐藏了 模板,您无法看到模板源代码。

实参:

  • cleanroom_name (字符串) – 拥有模板的 Clean Room 的名称。

  • template_name(字符串) – 要查看的模板的名称。

返回: (字符串) 模板定义。

示例:

CALL samooha_by_snowflake_local_db.consumer.view_template_definition(
  $cleanroom_name,
  'prod_overlap_analysis');
Copy

consumer.get_arguments_from_template

描述: 获取模板使用的实参列表。当您调用 consumer.run_analysis 时,您可以将这些实参的值传递到模板中。

实参:

  • cleanroom_name (字符串) – 拥有模板的 Clean Room 的名称。

  • template_name(字符串) – 要返回实参的模板的名称。

返回: (表) 实参列表和规范。

示例:

CALL samooha_by_snowflake_local_db.consumer.get_arguments_from_template(
  $cleanroom_name,
  'prod_overlap_analysis');
Copy

模板链

通过以下过程,用户可以使用 Clean Room 中的 模板链

consumer.view_added_template_chains

描述:列出指定 Clean Room 中定义的所有模板链。

实参:

  • cleanroom_name (字符串) - 要列出模板链的 Clean Room 的名称。

返回: (表) 有关指定 Clean Room 中所有模板链的信息。

示例:

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

consumer.view_template_chain_definition

描述:返回指定模板链的属性。

实参:

  • cleanroom_name (字符串) - 拥有要描述的模板链的 Clean Room 的名称。

  • template_chain_name(字符串) – 要描述的模板链的名称。

返回: (字符串) 指定模板链的定义。

示例:

CALL samooha_by_snowflake_local_db.consumer.view_template_chain_definition(
  $cleanroom_name,
  'insights_chain');
Copy

运行分析

以下过程根据指定的模板运行分析或激活。

consumer.run_analysis

描述:使用模板或模板链运行分析并返回结果表。

重要

  • 如果启用了 差分隐私,则在已达到此模板的预算限制时,查询可能会失败。

  • 如果通过应用 is_obscated 实参 隐藏了 模板,则必须使用 Snowflake Enterprise Edition 或更高版本才能运行模板。

实参:

  • cleanroom_name (字符串) – 要在其中运行分析的 Clean Room 的名称。

  • template_name(字符串) – 要在 Clean Room 中运行的模板或模板链的名称。此模板必须已由提供商或使用者添加到 Clean Room。

  • consumer_tables(字符串数组) – 完全限定使用者表名称数组。它们被分配给 my_table 模板变量。这些表必须已经链接到 Clean Room。通过调用 consumer.view_consumer_datasets 查看可用表。

  • provider_tables(字符串数组) – 完全限定提供商表名称数组。它们被分配给 source_table 模板变量。这些表必须已经链接到 Clean Room。通过调用 consumer.view_provider_datasets 查看可用表。

  • analysis_arguments(对象) – 具有传递给模板的键/值对的对象。模板可以通过键名访问变量。如果您传递 {'age':20},模板将以 {{age}} 的形式访问该值。如果不需要值,则传入空对象。要查看需要哪些值,请通过调用 consumer.view_template_definition 检查相关模板。请检查模板以确定是否需要完全限定所使用的任何列名。如果表别名为 pc,则为列名使用小写形式的 pc 表别名。

    此对象有一个可选的保留值:

    • epsilon (浮动,可选) – 如果对此 Clean Room 启用了差分隐私,则指定 差分隐私的 esilon 值 (link removed)。默认值为 0.1。

  • use_cache(布尔,可选) – 是否对同一查询使用缓存结果。默认值为 FALSE。

返回: (表) 查询结果。

示例:

CALL samooha_by_snowflake_local_db.consumer.run_analysis(
  $cleanroom_name,
  'prod_overlap_analysis',
  ['DB1.MYDATA.CONVERSIONS'],  -- Consumer tables
  ['MYDB.MYSCH.EXPOSURES'],    -- Provider tables
  object_construct(
    'max_age', 30
  )
);
Copy

激活

以下过程管理 激活,或将结果保存到使用者或提供商的 Snowflake 账户。您无法使用 API 激活第三方账户的数据。

library.view_external_activation_history

描述: 查看当前账户的激活请求历史记录。

实参:

返回: 包含激活请求的详细信息和状态的表。

示例:

CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.LIBRARY.view_external_activation_history();
Copy

consumer.set_activation_policy

描述: 定义哪些列可以在激活模板中使用。这可以确保只有使用者批准的列可以与激活模板一起使用。如果没有定义激活策略,那么数据的任何列都不能被激活。设置激活策略将覆盖您账户的任何现有激活策略。

实参:

  • cleanroom_name (字符串) – 要在其中设置激活策略的 Clean Room 的名称。

  • 列(数组) - 可以激活的自有数据的列的名称,格式为 template name:database name.schema name.table name:column_name

返回: (字符串) 成功消息。

示例:

CALL samooha_by_snowflake_local_db.consumer.set_activation_policy(
  $cleanroom_name,
  [
    'prod_overlap_analysis:SAMOOHA_SAMPLE_DATABASE_NAME.DEMO.CUSTOMERS:HASHED_EMAIL',
    'prod_overlap_analysis:SAMOOHA_SAMPLE_DATABASE_NAME.DEMO.CUSTOMERS:REGION_CODE' ]);
Copy

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);
Copy

dcr_health.provider_run_provider_activation_history

描述: 返回指定 Clean Room 的提供商激活请求历史记录。显示了由提供商和使用者发起的提供商激活请求。此过程提供了额外的信息,以帮助调试提供商激活方面的问题。

实参:

  • cleanroom_name(字符串) – 请求激活的 Clean Room 的名称。您必须是此 Clean Room 中的提供商或使用者。

返回: (表) – 激活请求列表,其中包含有关每个请求的信息,包括模板和分段名称、状态、使用者账户定位器以及请求返回的任何错误消息。

示例:

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

使用者自定义模板

下列 APIs 允许您将使用者定义模板添加到 clean room。有关更多信息,请参阅 consumer-written 模板

consumer.create_template_request

描述:向 Clean Room 提供商发送请求,要求他们批准自定义模板,以便将其添加到 Clean Room。请参阅 developer-consumer-templates

实参:

  • *cleanroom_name * (字符串) – 在其中添加模板的 Clean Room 的名称。

  • template_name(字符串) – 要添加的模板的名称。必须全部是小写字母、数字、空格或下划线。激活模板的名称必须以“activation”开头。

  • template_definition(字符串) – JinjaSQL 模板。了解模板语法。

返回: (字符串) 成功消息。

示例:

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

consumer.get_sql_jinja

描述: 将 JinjaSQL 模板评估为 SQL 语句。此过程用于开发自定义模板,以查看模板在使用一组给定参数进行处理后如何呈现。

此过程只能处理标准 JinjaSQL (https://github.com/sripathikrishnan/jinjasql) 语句;不能处理 join_policycolumn_policy 等 JinjaSQL Clean Room 扩展。

实参:

  • template_string(字符串) – 待处理的 JinjaSQL 代码。仅支持标准 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'));
Copy

响应:

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');
Copy

consumer.generate_python_request_template

描述: 生成包含自定义 Python 代码的使用者 Clean Room 模板。生成的模板包含您的 Python 代码和 JinjaSQL 模板占位符。将最终模板传递给 consumer.create_template_request

有关使用者定义模板的更多信息,请参阅 使用者编写的自定义模板

实参:

  • function_name(字符串) – 模板用于调用函数的函数名称。

  • arguments(字符串对数组) – 函数 function_name 所需的实参数组。每个元素都是以空格分隔的对,用于指定实参名称及其 Snowflake SQL 数据类型。例如:['size INT', 'start_date DATE']

  • packages(字符串数组) – Python 代码所需的包名称数组。如果没有,请指定一个空数组。请参阅支持包的完整列表。 (https://repo.anaconda.com/pkgs/snowflake/)。示例:['pandas','numpy']

  • 导入 - [不支持:请勿使用]

  • rettype(字符串) – Snowflake SQL 返回函数类型。示例:INTEGER, VARCHAR。

  • handler(字符串) – Python 代码中主处理程序函数的名称。这通常是 'main'

  • code(字符串) – 您的 Python 代码实施。如果您包含一个导入,并且您的指定处理程序是在导入中定义的,则可以是空字符串。

返回: (字符串) 返回带 JinjaSQL 模板占位符的 Python UDF。在将模板字符串传递给 consumer.create_template_request 之前,必须正确转义所有嵌套的 $$ 或单引号 (')。请参阅 使用者提交的代码

示例:

使用一个简单的 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.
  [],                                -- Reserved.
  'INTEGER',                         -- SQL return type.
  'main',                            -- Standard main handler.
  $$
import pandas as pd
import numpy as np

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

以下示例显示了生成的代码。<INSERT SQL TEMPLATE HERE> 替换为您的模板 JinjaSQL 代码。

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 run the SQL query
LET SQL_TEXT varchar := $$<INSERT SQL TEMPLATE HERE>$$;

-- Run 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 (字符串) - 要列出模板请求的 Clean Room。

返回: 包含以下列的表:

  • request_id - 请求的 ID,由 Clean Room 系统生成。

  • provider_identifier - 提供商的账户定位器。

  • template_name - 使用者在请求中提供的模板名称。

  • template_name – 使用者要求添加到 Clean Room 的模板的源代码。

  • request_status - 请求的状态:PENDING、APPROVED 或 REJECTED。

  • reason - 如果请求状态为 REJECTED,则提供商应在此处说明拒绝的理由。

示例:

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

Clean Room 元数据 getter 方法

以下方法显示了 clean room 的相关属性:

consumer.describe_cleanroom

描述: 提供关于指定 Clean Room 的关键信息的摘要,包括模板、数据集和策略。如果通过应用 is_obscated 实参 隐藏了 模板,则必须使用 Snowflake Enterprise Edition 或更高版本才能查看模板名称。

实参:

  • cleanroom_name (字符串) - 要描述的 Clean Room 的名称。

返回: (字符串) Clean Room 的描述。

示例:

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

consumer.view_provider_datasets

描述: 列出提供商添加到 Clean Room 的所有数据集。

实参:

返回: (表) 提供商添加的数据集表。在查询中使用此处返回的表名。

示例:

CALL samooha_by_snowflake_local_db.consumer.view_provider_datasets($cleanroom_name);
Copy

consumer.view_added_templates

描述: 列出 Clean Room 中的所有模板。如果通过应用 is_obscated 实参 隐藏了 模板,则必须使用 Snowflake Enterprise Edition 或更高版本才能查看模板。

实参:

返回: 此 Clean Room 中的模板列表以及每个模板的源代码(除非模板被提供商隐藏了)。

示例:

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

library.is_consumer_run_enabled

描述: 检查是否为指定的 Clean Room 启用了使用者运行的分析。默认情况下处于启用状态,但 Clean Room 提供商可以将其禁用。

实参:

返回: (字符串) 此 Clean Room 是否允许使用者运行分析。

示例:

CALL samooha_by_snowflake_local_db.library.is_consumer_run_enabled($cleanroom_name);
Copy

consumer.view_cleanrooms

描述: 列出此账户已联接(已安装)或可联接的所有 Clean Room。要仅查看已安装的 Clean Room,请运行 consumer.view_installed_cleanrooms。要查看此账户创建的所有 Clean Room,请调用 provider.view_cleanrooms

实参:

返回: (表) 此账户已安装或邀请的所有 Clean Room。

示例:

CALL samooha_by_snowflake_local_db.consumer.view_cleanrooms();
Copy

consumer.view_installed_cleanrooms

描述: 列出此账户中已安装(联接)的所有 Clean Room。要查看已联接和未联接的 Clean Room,请调用 consumer.view_cleanrooms。要查看在此账户中创建的所有 Clean Room,请调用 provider.view_cleanrooms

实参:

返回:)此账户中安装的 Clean Room。

示例:

CALL samooha_by_snowflake_local_db.consumer.view_installed_cleanrooms();
Copy

差分隐私

这些过程控制 Clean Room 中的 差分隐私。您还可以在调用 consumer.enable_templates_for_provider_run 时在模板级指定差分隐私。

consumer.is_dp_enabled

描述: 检查是否已在 Clean Room 中启用了差分隐私。必须安装 Clean Room 才能检查此值。

实参:

返回: (布尔) Clean Room 是否已启用差分隐私。

示例:

CALL samooha_by_snowflake_local_db.consumer.is_dp_enabled($cleanroom_name);
Copy

consumer.view_remaining_privacy_budget

描述: 查看可用于从 Clean Room 进行查询的剩余隐私预算。预算耗尽后,在重置预算之前,将不允许继续调用 run_analysis。预算每日重置。

实参:

  • cleanroom_name (字符串) Clean Room 的名称。必须安装 Clean Room 才能成功完成此过程。

返回: (浮点) 剩余的隐私预算。

示例:

CALL samooha_by_snowflake_local_db.consumer.view_remaining_privacy_budget($cleanroom_name);
Copy

consumer.set_privacy_settings

描述: 为提供商运行的使用自定义模板的分析(包括激活)设置隐私设置。覆盖所有先前设置的值。每次调用此方法时,它都会擦除所有先前的配置设置。

实参:

  • cleanroom_name (字符串) – 应该应用这些设置的 Clean Room 的名称。

  • privacy_settings(字符串) – 一个字符串 JSON 对象,用于在提供商运行自定义模板时指定隐私设置。以下是该对象的语法:

    '{
      "null" : <template_config>
    }'
    
    Copy

    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 }
    }')
  );
Copy

返回: (字符串) 成功消息。

Snowpark Container Service 过程

阅读有关在 Clean Room 中使用 Snowplark Container Services 的更多信息。

consumer.start_or_update_service

描述: 在此 Clean Room 中创建并启动提供商定义的最新 Snowpark Container Services 版本。每当提供商调用 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'
));
Copy

环境管理

使用以下方法来协助通用 Clean Room 功能。

consumer.set_cleanroom_ui_accessibility

描述:为当前账户中的使用者显示或隐藏 Clean Room UI 中的 Clean Room。

实参:

  • cleanroom_name (字符串) – Clean Room 的名称。

  • visibility_status(字符串) – 以下区分大小写的值之一:

    • HIDDEN – 对当前使用者账户中的所有用户隐藏 Clean Room UI 中的指定 Clean Room。Clean Room 仍可使用 API 调用访问。

    • EDITABLE – 让 Clean Room 在 Clean Room UI 中可见。

返回: (字符串) 成功消息。

示例:

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

consumer.manage_datastats_task_on_account

描述: 启用或禁用计算 Clean Room 统计数据的后台任务。该任务默认运行,但您可以将其禁用以降低成本。

重要

要管理此任务,所有 协作者都必须使用 相同的值 调用此过程的相应 提供商使用者 版本。

实参:

  • 启用(布尔) – TRUE 为启用任务,FALSE 为禁用任务。

返回: (字符串) 成功消息。

示例:

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

library.enable_local_db_auto_upgrades

描述: 启用在发布新过程或功能时自动升级 Snowflake Data Clean Room 环境的任务(该任务是 samooha_by_snowflake_local_db.admin.expected_version_task。)调用此过程来自动升级,而不是对每个新版本调用 library.apply_patch

虽然禁用该任务可能会降低成本,但我们建议让它继续运行,以确保您的系统上有最新版本的 Clean Room 环境。

实参:

返回: (字符串) 成功或失败消息。

示例:

CALL samooha_by_snowflake_local_db.library.enable_local_db_auto_upgrades();
Copy

library.disable_local_db_auto_upgrades

描述: 禁用在新版本发布时自动升级 Snowflake Data Clean Room 环境的任务。如果您禁用自动升级,则必须对每个 新版本 调用 library.apply_patch

实参:

返回: (字符串) 成功或失败消息。

示例:

CALL samooha_by_snowflake_local_db.library.disable_local_db_auto_upgrades();
Copy

library.apply_patch

描述: 更新 Clean Room 环境,在环境中启用新功能和修复。在发布新版本的 Clean Room 环境时调用此任务。(这通常每周一次;请参阅 近期 Snowsight 和功能版本 中的 Clean Room 条目。)此过程会更新 SAMOOHA_BY_SNOWFLAKE_LOCAL_DB

您可以通过调用 library.enable_local_db_auto_upgrades 来自动更新补丁。我们建议启用自动更新。

实参:

返回: (字符串) 成功消息。

示例:

CALL samooha_by_snowflake_local_db.library.apply_patch();
Copy

consumer.patch_cleanroom

描述: 将指定的 Clean Room 更新到最新版本,从而为该 Clean Room 启用新功能和修复。通常,只有在 Snowflake 支持部门要求您调用此任务时,您才会进行调用。

在使用者调用 library.patch_cleanroom 之前,提供商应先调用 library.patch_cleanroom。否则,将没有可应用的补丁。

实参:

  • cleanroom_name(字符串) – 要应用补丁的 Clean Room 的名称。

返回: (字符串) 成功消息。

示例:

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

dcr_health.dcr_tasks_health_check

描述: 显示有关正在运行或最近停止的 Clean Room 任务的信息。

实参:

返回: (表) 有关 Clean Room 任务的信息,包括计划、仓库名称和仓库规模。

示例:

CALL samooha_by_snowflake_local_db.dcr_health.dcr_tasks_health_check();
Copy

已弃用的过程

下列过程已弃用,在此处列出仅为保障列表完整性。如果指明了替换过程,请使用较新的过程。

library.register_table_or_view – 已弃用

注意

此过程现已弃用。 请使用 library.register_objects

描述: 注册所有类型的表和视图。

实参: object_names(数组)、is_view(布尔)、is_iceberg(布尔)、is_external(布尔)、is_under_managed_access_schema(布尔)

返回: (字符串) 成功消息。

示例

要注册表:

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

要注册 Iceberg 表:

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

library.register_table – 已弃用

注意

此过程现已弃用。 请使用 library.register_objects

描述:register_db 类似,但在表级运行。可以传入表示完全限定表名称的数组或字符串,并授予 SAMOOHA_APP_ROLE 角色选择权限,使用户能够将表链接到 clean room 中。

如果要在托管访问架构(即使用 WITH MANAGED ACCESS 参数创建的架构)中注册表,请改用 library.register_managed_access_table

实参: table_name(数组)

返回: (字符串) 成功消息。

示例:

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

library.register_managed_access_table – 已弃用

注意

此过程现已弃用。 请使用 library.register_objects

描述: 类似于 register_table,但在使用 WITH MANAGED ACCESS 参数创建的架构中注册表。可以传入表示完全限定表名称的数组或字符串,并授予 SAMOOHA_APP_ROLE 角色选择权限,使用户能够将表链接到 clean room 中。

实参: table_name(数组)

返回: (字符串) 成功消息。

示例:

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

library.register_view – 已弃用

注意

此过程现已弃用。 请使用 library.register_objects

描述:register_db 类似,但在视图级运行。可以传入表示完全限定视图名称的数组或字符串,并授予 SAMOOHA_APP_ROLE 角色选择权限,使用户能够将视图链接到 clean room 中。

如果要在托管访问架构(即使用 WITH MANAGED ACCESS 参数创建的架构)中注册视图,请改用 library.register_managed_access_view

实参: view_name(数组)

返回: (字符串) 成功消息。

示例:

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

library.register_managed_access_view – 已弃用

注意

此过程现已弃用。 请使用 library.register_objects

描述: 类似于 register_view,但在使用 WITH MANAGED ACCESS 参数创建的架构中注册视图。可以传入表示完全限定视图名称的数组或字符串,并授予 SAMOOHA_APP_ROLE 角色选择权限,使用户能够将视图链接到 clean room 中。

实参: view_name(数组)

返回: (字符串) 成功消息。

示例:

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

library.unregister_table_or_view – 已弃用

注意

此过程现已弃用。 请使用 library.unregister_objects

描述: 取消注册所有类型的表和视图。

实参: object_names(数组)、is_view(布尔)、is_iceberg(布尔)、is_external(布尔)、is_under_managed_access_schema(布尔)

输出: (字符串) 成功消息。

示例

要取消注册表:

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

library.unregister_table – 已弃用

注意

此过程现已弃用。 请使用 library.unregister_objects

描述:unregister_db 类似,但在表级运行。可以传入表示完全限定表名称的数组或字符串来取消注册表。用户无法将取消注册的表链接到 Clean Room 中。

如果要在托管访问架构(即使用 WITH MANAGED ACCESS 参数创建的架构)中取消注册表,请改用 library.unregister_managed_access_table

实参: table_name(数组)

返回: (字符串) 成功消息。

示例:

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

library.unregister_managed_access_table – 已弃用

注意

此过程现已弃用。 请使用 library.unregister_objects

描述: 类似于 unregister_table,但在托管访问架构(即使用 WITH MANAGED ACCESS 创建的架构)中取消注册表。

实参: table_name(数组)

返回: (字符串) 成功消息。

示例:

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

library.unregister_view – 已弃用

注意

此过程现已弃用。 请使用 library.unregister_objects

描述:unregister_db 类似,但在视图级运行。可以传入表示完全限定视图名称的数组或字符串来取消注册视图。用户无法将取消注册的视图链接到 Clean Room 中。

如果要在托管访问架构(即使用 WITH MANAGED ACCESS 参数创建的架构)中注册视图,请改用 library.unregister_managed_access_view

实参: view_name(数组)

返回: (字符串) 成功消息。

示例:

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

library.unregister_managed_access_view – 已弃用

注意

此过程现已弃用。 请使用 library.unregister_objects

描述: 类似于 unregister_view,但在托管访问架构(即使用 WITH MANAGED ACCESS 创建的架构)中取消注册视图。

实参: view_name(数组)

返回: (字符串) 成功消息。

示例:

CALL samooha_by_snowflake_local_db.library.unregister_managed_access_view(['SAMOOHA_SAMPLE_DATABASE.DEMO.CUSTOMERS']);
Copy
语言: 中文