Snowflake Data Clean Room:开发人员 APIs 概述

Snowflake Data Clean Room 用于提供一流的开发人员 APIs,这使您能够使用 Clean Room 开发应用程序。您可以利用这些强大的 APIs 来管理 Clean Room 的生命周期,创建和运行各种安全分析,然后共享它们。

Clean Room 是一种加密安全的环境,可以保护其中的数据。Clean Room 仅运行由 Clean Room 创建者启用的特定分析和算法。此外,通过仅向外部公开汇总结果的差分隐私技术,还增加了一层保护。Clean Room 保证,除 Clean Room 创建者提供的算法外,任何用户或进程都不能读取或写入数据。

协作者

在 Clean Room 的生命周期中,通常有两方参与其中,他们共同参与协作:

  • 提供商 会创建一个 Clean Room,添加必要的数据,制定策略,添加相关分析,然后与使用者共享。

  • 使用者 接受供应商共享的 Clean Room。使用者可以安装 Clean Room,添加他们的数据,并通过向 Clean Room 内的分析模板传递适当的实参来运行任何支持的分析。

分析

分析是在 Clean Room 内运行的算法。提供商选择一些分析,并针对特定的 Clean Room 启用这些分析,然后使用者可以选择运行其中的一项或多项分析。

先决条件

在您可以使用 Snowflake Data Clean Room 的开发人员 APIs 之前,管理员必须配置 Clean Room 环境并将您添加为用户。有关详细信息,请参阅 开始使用 Snowflake Data Clean Room

您必须使用 SAMOOHA_APP_ROLE 角色才能执行开发人员 APIs。在执行 API 之前,请将以下内容添加到您的 Snowflake 工作表中:

USE ROLE samooha_app_role;
Copy

链接数据

提供商和使用者可以将数据链接到 Clean Room,这样就不必在 Clean Room 环境中拥有物理副本。由于 Snowflake Data Clean Rooms 依赖 Snowflake Native App Framework,因此您可以链接 Snowflake Native App Framework 支持的任何对象。

在 Clean Room 用户可以将数据链接到 Clean Room 之前,账户管理员必须在数据库、架构或对象级别注册数据。如果管理员注册一个数据库或架构,则还要注册该数据库或架构中的所有对象。有关管理员如何注册数据的信息,请参阅 为 Snowflake Data Clean Rooms 注册数据

在账户管理员注册数据后,Clean Room 用户可以执行 link_datasets 命令,将对象链接到 Clean Room。例如,提供商可以执行以下命令,将表 MY_TABLE 链接到 Clean Room dcr_cleanroom

CALL samooha_by_snowflake_local_db.provider.link_datasets('dcr_cleanroom', 
   ['MY_DB.MY_SCHEMA.MY_TABLE']);
Copy

备注

外部表和 Iceberg 表需要执行额外的步骤,才能在 Clean Room 中链接。有关更多信息,请参阅 Snowflake Data Clean Rooms:外部表和 Iceberg 表

从分析中检索以前的结果

当您使用开发者 APIs 运行分析时,Snowflake Data Cleans Rooms 会在您的账户中执行查询。您可以使用与分析关联的查询的查询 ID 从较早的分析中检索结果。

备注

如果在运行 API 分析和使用与使用此查询检索结果之间仓库暂停,您可能无法得到结果。

要检索之前分析的结果,请执行以下步骤:

  1. 登录 Snowsight。

  2. 选择 Monitoring >> Query History

  3. 使用筛选器查找与分析关联的查询,然后复制查询 ID。

  4. 打开工作表并执行查询,该查询根据查询的查询 ID 检索结果。例如,如果查询 ID 是 ABC123,然后执行:

       SELECT * FROM TABLE(result_scan(ABC123));
    
    Copy

API 参考文档

要获取开发人员 APIs 的描述和签名,请参阅以下内容:

扩展示例

为帮助您了解如何使用 Developer APIs 的各种功能,您可以参考以下示例。

端到端:提供商数据分析

  • 提供商可以对链接到 Clean Room 的数据集定义联接策略和其他列策略,然后将预定义的安全数据分析模板添加到 Clean Room 中。

  • 使用者可以使用供应商共享的 Clean Room,并在其中进行探索性分析。使用者必须遵守提供商设置的联接和列策略。

有关详细信息,请参阅 端到端:提供商数据分析

端到端:重叠分析

  • 提供商可以链接多个数据集,并添加预定义的分析模板,该模板对数据集执行到 Clean Room 的重叠分析。

  • 使用者可以链接更多数据集,并在 Clean Room 中所有可用的提供商和使用者数据集上共同执行重叠分析。

有关详细信息,请参阅 端到端:重叠分析

自定义分析模板

  • 提供商可以定义自定义分析模板并将其添加到 Clean Room 中,该模板允许使用者运行自定义分析。

  • 这些自定义分析模板可以通过利用强大的 SQL Jinja 模板使分析模板变得通用,同时还支持隐私增强技术,例如差分隐私。

有关详细信息,请参阅 自定义分析模板

基于 Python 的安全模板

  • 提供商可以加载自定义 Python 代码,以便在自定义分析模板内运行。

  • 所有加载到 Clean Room 的 Python 代码都是完全保密的,使用它的使用者无法进行查看。

有关详细信息,请参阅 基于 Python 的安全模板

机器学习

  • 提供商可以定义高级机器学习模型,用户可以在 Clean Room 内安全地运行这些模型。

  • 使用者不可见的安全 Python 代码可用于定义复杂 ML 模型,而这些模型可以在 Clean Room 内完全安全的环境中运行。

有关详细信息,请参阅 机器学习

基于 Python UDTF 的安全模板

  • 提供商可以使用简单的 API 创建基于 Python UDTFs 的安全模板,并与使用者共享。

  • 使用者可以使用提供商提供的简单模板,以使用 Python UDTF。

有关详细信息,请参阅 基于 Python UDTF 的安全模板

注册开发人员 API Clean Room 进入 Web 应用程序

  • 提供商可以将加载了自定义分析和模板的 Clean Room 注册到 Snowflake Data Clean Room 的 Web 应用程序 中,该应用程序允许他们的协作者在用户界面中使用 Clean Room。

  • 协作者可以完全通过 Web 应用程序与这些复杂的自定义 Clean Room 进行交互。

有关详细信息,请参阅 在web应用程序中注册开发者 API Clean Room

安全 Snowpark 过程

  • 提供商可以定义自己的 Snowpark 过程,并安全地与使用者共享。

  • 使用者可以使用通常的 run_analysis 工作流程来调用这些 Snowpark 过程。

有关详细信息,请参阅 安全 Snowpark 过程

语言: 中文