数据产品规范¶
定义提供商愿意与分析运行者共享的一组表,以及共享规则(例如策略、列格式以及表是否必须配合模板使用)。
数据提供商通过调用 REGISTER_DATA_OFFERING 提交此规范,这将返回一个可在协作规范中使用的产品 ID。
在注册数据产品的账户加入协作之前,该数据产品在协作中不可用。
您必须拥有 REGISTER DATA OFFERING 账户权限才能加入任何可以激活数据的协作;即,您是分析运行者且协作规范包含 activation_destinations 字段。有关更多信息,请参阅 访问管理 API 参考指南。
架构:
api_version所使用的 Collaboration API 的版本。必须是
2.0.0spec_type规范类型标识符。必须是
data_offeringname: data_offering_name要向协作者公开的一组表和列的名称。此名称用作协作规范中的数据产品参考值。您可以针对不同的用例,创建包含重叠表和列的多个数据产品。必须遵循 Snowflake 标识符规则,长度最多 75 个字符,并且在您的 Snowflake Data Clean Room 账户中是唯一的。
name_version对在此账户的所有数据产品中必须是唯一的。version此数据产品规范的自定义版本标识符(最多 20 个字符)。必须遵循 Snowflake 标识符规则。版本字符串在对 VIEW_DATA_OFFERINGS 和 VIEW_REGISTERED_DATA_OFFERINGS 的响应中拥有自己的列,因此请使用可按递增值排序的值。示例:
V0- :samp:`description: {data_offering_description}`(可选)
数据产品的描述(最多 1,000 个字符)。
datasets可供协作使用的一个或多个数据集的列表。
alias: dataset_name此数据对象的名称,用于
collaboration.run。必须遵循 Snowflake 标识符规则 并在此产品中保持唯一。最多 75 个字符。data_object_fqn: fully_qualified_table_name描述可供协作者使用的单个表。提供账户中源对象的完全限定名称 (
database.schema.table_name)。最大长度为 773 个字符。allowed_analyses: allowed_analysis_type协作者可以针对此表运行的分析类型。必填字段,具有以下值:
template_only:选择使用 时默认使用的角色和仓库。分析运行者只能使用协作规范中列出的模板来查询此表。template_and_freeform_sql:选择使用 时默认使用的角色和仓库。分析运行者可以使用协作规范中列出的模板查询此表,或者在代码环境中使用 自由格式 SQL 查询。
- ``object_class``(可选)
对象类型。以下值之一:
ads_log:选择使用 时默认使用的角色和仓库。此处列出的表和列必须符合广告日志要求。custom:选择使用 时默认使用的角色和仓库。一组没有特殊要求的自定义表和列。
schema_and_template_policies提供由
data_object_fqn列出的表中的列名列表,并定义每列的策略和格式。只有此处列出的列可供协作者使用。每列具有以下描述符:category: category_type类别决定了是否应用列重命名,以及应应用哪些数据格式强制执行。
category和column_type决定了向分析运行者公开的列名。支持以下值:join_standard:选择使用 时默认使用的角色和仓库。这是一个可联接列,其数据采用column_type字段中指定的格式。此列在共享数据产品中被重命名为column_type值。此列已添加到 Clean Room 联接策略。join_custom:选择使用 时默认使用的角色和仓库。这是任何格式的可联接列。当联接列没有合适的column_type时,请使用此项。在共享数据产品中使用原始列名。此列已添加到 Clean Room 联接策略。timestamp:选择使用 时默认使用的角色和仓库。这是一个可投影列,用于指定任何事件的时间戳。该列在共享数据产品中重命名为timestamp。passthrough:选择使用 时默认使用的角色和仓库。这是任何其他类型的可投影列。在共享数据产品中使用原始列名。event_type:选择使用 时默认使用的角色和仓库。这是一个可投影列,用于记录此行的事件类型分类,例如:“purchase”、“sign-up”、“impression”、“click”等。
- ``column_type: <format_type>``(当 category=join_standard 时必填,其他类别类型则忽略)
数据的格式。如果数据不符合此格式,则您对 REGISTER_DATA_OFFERING 的调用将失败。为符合
category = join_standard的列提供此字段。category和column_type决定了向分析运行者公开的列名。您不能为同一个表中的多个列分配相同的column_type值。支持以下格式类型:email:选择使用 时默认使用的角色和仓库。原始电子邮件地址。hashed_email_sha256:选择使用 时默认使用的角色和仓库。经 SHA256 哈希处理的电子邮件。hashed_email_b64_encoded:选择使用 时默认使用的角色和仓库。Base64 编码的哈希电子邮件。phone:选择使用 时默认使用的角色和仓库。不带标点符号的电话号码。例如:2015551212。hashed_phone_sha256:选择使用 时默认使用的角色和仓库。经 SHA256 哈希处理的电话号码。原始号码应采用phone格式。hashed_phone_b64_encoded:选择使用 时默认使用的角色和仓库。Base64 编码的哈希电话号码。device_id:选择使用 时默认使用的角色和仓库。原始设备 ID,例如移动广告 ID 或 CTV 设备 ID。hashed_device_id_sha256:经 SHA256 哈希处理的设备 ID。原文应采用device_id格式。hashed_device_b64_encoded:选择使用 时默认使用的角色和仓库。Base64 编码的哈希设备 ID。ip_address:选择使用 时默认使用的角色和仓库。采用 IPv4 格式的原始 IP 地址。hashed_ip_address_sha256:经 SHA256 哈希处理的 IPv4 地址。原文应采用ip_address格式。hashed_ip_address_b64_encoded:选择使用 时默认使用的角色和仓库。Base64 编码的哈希 IP 地址。first_name:选择使用 时默认使用的角色和仓库。原始名字。hashed_first_name_sha256:选择使用 时默认使用的角色和仓库。SHA256 哈希化后的名字。原文应采用first_name格式。hashed_first_name_b64_encoded:选择使用 时默认使用的角色和仓库。Base64 编码后的哈希化名字。last_name:选择使用 时默认使用的角色和仓库。原始姓氏。hashed_last_name_sha256:选择使用 时默认使用的角色和仓库。SHA256 哈希化后的姓氏。原文应采用last_name格式。hashed_last_name_b64_encoded:选择使用 时默认使用的角色和仓库。base64 编码的哈希化后姓氏。
- ``activation_allowed``(可选)
此列是否可用于激活目的。默认值为
false。
- ``freeform_sql_policies``(可选)
如果
allowed_analyses为template_and_freeform_sql,则此可选字段列出了在此数据产品上运行的 SQL 自由格式查询中应应用的任何 Snowflake 策略。有关更多信息,请参阅 将 Snowflake 策略应用到数据产品(仅限自由格式查询使用)。
- ``require_freeform_sql_policy``(可选)
此数据源是否必须定义
freeform_sql_policies。这用作故障保护,以防止在未分配策略的情况下关联至支持自由格式 SQL 查询的数据源。