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'
);
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'
);
安装 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);
consumer.is_enabled¶
描述: Clean Room 安装后可能会有短暂的延迟,然后才能投入使用。您可以调用此过程来确认 Clean Room 在安装后是否可以使用。
实参:
cleanroom_name (字符串) – 要检查状态的 Clean Room 的名称。
返回: (布尔值) 指定的 Clean Room 是否已安装并可供使用。
示例:
CALL samooha_by_snowflake_local_db.consumer.is_enabled($cleanroom_name);
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);
跨云协作¶
安装在另一个云区域创建的 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();
library.disable_laf_on_account¶
描述: 在当前账户上禁用 Cross-Cloud Auto-Fulfillment。需要 ACCOUNTADMIN 角色。
重要
您必须先调用 SYSTEM$ENABLE_GLOBAL_DATA_SHARING_FOR_ACCOUNT,再调用此过程。详细了解自动履行 和 管理自动履行权限。
实参: 无
返回: (字符串) 成功消息。
示例:
USE ROLE ACCOUNTADMIN;
CALL samooha_by_snowflake_local_db.library.disable_laf_on_account();
consumer.is_laf_enabled_for_cleanroom¶
描述: 描述该 Clean Room 是否启用了 Cross-Cloud Auto-Fulfillment。Cross-Cloud Auto-Fulfillment 必须由账户管理员配置。
实参:
cleanroom_name (字符串) - Clean Room 的名称。
返回: 该 Clean Room 是否启用了 Cross-Cloud Auto-Fulfillment。
示例:
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 的提供商的账户定位器。
返回: (字符串) 请求的状态消息。继续调用,直至状态变为 FULFILLED。
示例:
CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.consumer.request_laf_cleanroom(
$cleanroom_name,$provider_locator);
Provider-run analysis¶
有关提供商运行分析的更多信息,请参阅 Provider-run analysis。
library.is_provider_run_enabled¶
描述: 检查此 Clean Room 是否允许提供商运行分析。在提供商可以在此 Clean Room 中运行分析之前,使用者仍然必须通过调用 consumer.enable_templates_for_provider_run
授予明确许可。
实参:
cleanroom_name (字符串) - Clean Room 名称。
返回: (字符串) 描述 Clean Room 是否支持提供商运行分析。
示例:
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 中一个或多个模板的名称数组。
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']}
});
多提供商分析¶
这些过程支持 多提供商分析。
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_analysis
的consumer_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'
)
);
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);
注册和取消注册数据¶
使用以下过程注册和取消注册数据库、架构和对象。必须先注册表和视图,然后才能将其链接到 Clean Room。如果您注册了一个数据库或架构,则还需注册该数据库或架构中的所有对象。有关注册数据的更多信息,请参阅 注册数据。
consumer.register_db¶
描述: 在账户中注册一个数据库,以便能够将该数据库中的任何对象链接到该账户中的 Clean Room。要进行更精细的控制,您可以改为调用 register_schema
、register_managed_access_schema
或 register_object
。注册后添加到数据库的对象可能无法链接,在这种情况下,您应该重新注册数据库(或注册对象本身)。
您必须具有数据库的 MANAGE GRANTS 权限才能运行此过程。
实参:
db_name(字符串) - 要在此账户中注册的数据库的名称。
返回: (字符串) 成功消息。
示例:
USE ROLE <ROLE_WITH_MANAGE GRANTS>;
CALL samooha_by_snowflake_local_db.consumer.register_db('SAMOOHA_SAMPLE_DATABASE');
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']);
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']);
library.register_objects¶
描述: 授予 clean room 访问所有类型的表和视图的权限,使其可以通过调用 consumer.link_datasets
链接到 clean room。您可以通过调用 library.register_schema
、library.register_managed_access_schema
或 consumer.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']);
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();
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);
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');
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']);
library.unregister_managed_access_schema¶
描述:取消注册一个托管访问架构,以防止用户将其表和视图链接到 Clean Room。
实参:
schema_name(字符串数组) – 要取消注册的架构的完全限定名称。
返回: (字符串) 成功消息。
示例:
CALL samooha_by_snowflake_local_db.library.unregister_managed_access_schema(['SAMOOHA_SAMPLE_DATABASE.DEMO']);
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']);
链接和取消链接数据集¶
注册数据集后,您可以将该数据集的表或视图链接到特定的 Clean Room。您还可以从特定 Clean Room 取消链接表或视图,以从 Clean Room 删除对该数据的访问权限。
consumer.link_datasets¶
描述: 将表或视图链接到 Clean Room,根据您指定的任何联接和列策略,使该 Clean Room 内的模板可以访问该表。
实参:
cleanroom_name (字符串) - 数据链接到的 Clean Room 的名称。
full_tables(字符串数组) – 要提供给 Clean Room 的完全限定表或视图名称的列表。这些对象必须首先用适当的 注册方法 注册(提供 Clean Room 环境)。
返回: (字符串) 成功消息。
示例:
CALL samooha_by_snowflake_local_db.consumer.link_datasets(
$cleanroom_name,
['SAMOOHA_SAMPLE_DATABASE.DEMO.CUSTOMERS', 'MY_DB.MY_SCH.EXPOSURES']);
consumer.unlink_datasets¶
描述: 移除所有用户对指定 Clean Room 中指定表或视图的访问权限。这仅适用于您已链接到 Clean Room 的数据。
实参:
cleanroom_name (字符串) – 应移除访问权限 Clean Room 的名称。
tables_list(字符串数组) – 应阻止访问权限的完全限定表或视图名称的列表。
返回: (字符串) 成功消息。
示例:
CALL samooha_by_snowflake_local_db.consumer.unlink_datasets(
$cleanroom_name,
['SAMOOHA_SAMPLE_DATABASE.DEMO.CUSTOMERS', 'MYDB.MYSCH.EXPOSURES']);
consumer.view_consumer_datasets¶
描述: 查看任何使用者链接到指定 Clean Room 的所有表和视图。
实参:
cleanroom_name (字符串) - Clean Room 的名称。
返回: 链接到指定 Clean Room 的对象表,以及每个对象的 Clean Room 内部视图名称。
示例:
CALL samooha_by_snowflake_local_db.consumer.view_consumer_datasets($cleanroom_name);
管理和查看策略¶
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']);
consumer.view_join_policy¶
描述: 概述用户可以在 clean room 内安全地联接哪些列,由使用者在使用者数据集上设置。
实参:
cleanroom_name (字符串)
返回: 联接策略(表)
示例:
CALL samooha_by_snowflake_local_db.consumer.view_join_policy($cleanroom_name);
consumer.view_provider_join_policy¶
描述:概述用户可以在 Clean Room 内安全地联接哪些列,由提供商在提供商数据集上设置。
实参:
cleanroom_name (字符串)
返回: 联接策略(表)
示例:
CALL samooha_by_snowflake_local_db.consumer.view_provider_join_policy($cleanroom_name);
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'
]
);
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);
consumer.view_provider_column_policy¶
描述: 查看提供商已应用于 Clean Room 的所有列策略。
实参:
cleanroom_name (字符串)
返回: 列策略(表)
示例:
CALL samooha_by_snowflake_local_db.consumer.view_provider_column_policy($cleanroom_name);
模板¶
通过以下过程,用户可以使用 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');
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');
模板链¶
通过以下过程,用户可以使用 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);
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');
运行分析¶
以下过程根据指定的模板运行分析或激活。
consumer.run_analysis¶
描述:使用模板或模板链运行分析并返回结果表。
重要
实参:
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
检查相关模板。请检查模板以确定是否需要完全限定所使用的任何列名。如果表别名为p
或c
,则为列名使用小写形式的p
和c
表别名。此对象有一个可选的保留值:
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
)
);
激活¶
以下过程管理 激活,或将结果保存到使用者或提供商的 Snowflake 账户。您无法使用 API 激活第三方账户的数据。
library.view_external_activation_history¶
描述: 查看当前账户的激活请求历史记录。
实参: 无
返回: 包含激活请求的详细信息和状态的表。
示例:
CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.LIBRARY.view_external_activation_history();
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' ]);
consumer.approve_provider_activation_consent¶
描述: 批准提供商的请求以允许提供商激活,即将结果推送到提供商的 Snowflake 账户的能力。
实参:
cleanroom_name (字符串) - 提供商要求在其中运行模板的 Clean Room 的名称。
activation_template_name(字符串) – 提供商想运行的激活模板的名称。
返回: (字符串) 成功消息。如果提供商没有使用指定的模板在此 Clean Room 中调用 provider.request_provider_activation_consent
,则此过程将失败。
示例:
CALL samooha_by_snowflake_local_db.consumer.approve_provider_activation_consent(
$cleanroom_name,
'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);
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);
使用者自定义模板¶
下列 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 %};
$$);
consumer.get_sql_jinja¶
描述: 将 JinjaSQL 模板评估为 SQL 语句。此过程用于开发自定义模板,以查看模板在使用一组给定参数进行处理后如何呈现。
此过程只能处理标准 JinjaSQL (https://github.com/sripathikrishnan/jinjasql) 语句;不能处理 join_policy
或 column_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'));
响应:
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 代码的使用者 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)
$$
);
以下示例显示了生成的代码。<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);
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);
consumer.view_provider_datasets¶
描述: 列出提供商添加到 Clean Room 的所有数据集。
实参:
cleanroom_name (字符串) - Clean Room 的名称。
返回: (表) 提供商添加的数据集表。在查询中使用此处返回的表名。
示例:
CALL samooha_by_snowflake_local_db.consumer.view_provider_datasets($cleanroom_name);
consumer.view_added_templates¶
描述: 列出 Clean Room 中的所有模板。如果通过应用 is_obscated
实参 隐藏了 模板,则必须使用 Snowflake Enterprise Edition 或更高版本才能查看模板。
实参:
cleanroom_name (字符串) - Clean Room 的名称。
返回: 此 Clean Room 中的模板列表以及每个模板的源代码(除非模板被提供商隐藏了)。
示例:
CALL samooha_by_snowflake_local_db.consumer.view_added_templates($cleanroom_name);
library.is_consumer_run_enabled¶
描述: 检查是否为指定的 Clean Room 启用了使用者运行的分析。默认情况下处于启用状态,但 Clean Room 提供商可以将其禁用。
实参:
cleanroom_name (字符串) - Clean Room 的名称。
返回: (字符串) 此 Clean Room 是否允许使用者运行分析。
示例:
CALL samooha_by_snowflake_local_db.library.is_consumer_run_enabled($cleanroom_name);
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();
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();
差分隐私¶
这些过程控制 Clean Room 中的 差分隐私。您还可以在调用 consumer.enable_templates_for_provider_run
时在模板级指定差分隐私。
consumer.is_dp_enabled¶
描述: 检查是否已在 Clean Room 中启用了差分隐私。必须安装 Clean Room 才能检查此值。
实参:
cleanroom_name (字符串)
返回: (布尔) Clean Room 是否已启用差分隐私。
示例:
CALL samooha_by_snowflake_local_db.consumer.is_dp_enabled($cleanroom_name);
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);
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 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'
));
环境管理¶
使用以下方法来协助通用 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');
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);
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();
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();
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();
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);
dcr_health.dcr_tasks_health_check¶
描述: 显示有关正在运行或最近停止的 Clean Room 任务的信息。
实参: 无
返回: (表) 有关 Clean Room 任务的信息,包括计划、仓库名称和仓库规模。
示例:
CALL samooha_by_snowflake_local_db.dcr_health.dcr_tasks_health_check();
已弃用的过程¶
下列过程已弃用,在此处列出仅为保障列表完整性。如果指明了替换过程,请使用较新的过程。
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);
要注册 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
类似,但在表级运行。可以传入表示完全限定表名称的数组或字符串,并授予 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']);
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']);
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']);
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']);
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);
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']);
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']);
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']);
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']);