BigQuery Sharing 简介
BigQuery Sharing(以前称为 Analytics Hub)是一个数据交换平台,让您可以在强大的安全和隐私框架内,跨越组织边界大规模共享数据和数据洞见。借助 Sharing 功能,您可以发现和访问由不同数据提供商精选的数据内容库。此数据库还包括 Google 提供的数据集。
例如,您可以通过 Sharing,通过第三方数据集和 Google 数据集来增强您的分析和机器学习项目。
借助 Analytics Hub Identity and Access Management (IAM) 角色,您可以执行以下 Sharing 任务:
- 作为 Analytics Hub 发布方,您可以与合作伙伴网络或您自己的组织内实时共享数据。清单可让您共享数据,而无需复制共享数据,并且可以在 Google Cloud Marketplace 上或通过您自己的渠道实现创收。您可以构建具有精细权限的分析就绪数据源目录,让您可以将数据交付给适当的受众。您还可以管理订阅并查看清单的用量指标。 
- 作为 Analytics Hub 订阅方,您可以发现您要查找的数据,将共享数据与现有数据相结合,并利用 BigQuery 的内置功能。当您订阅某个清单时,系统会在您的项目中创建一个关联的数据集或关联的 Pub/Sub 订阅。您可以使用订阅资源来管理订阅,该资源会存储订阅方的相关信息并表示发布方和订阅方之间的连接。 
- 作为 Analytics Hub 查看者,您可以在 BigQuery Sharing 中浏览您有权访问的共享资源,并向发布方请求访问共享数据。您可以在 BigQuery Sharing 和 Cloud Marketplace 上发现已与 Cloud Marketplace 集成的商业清单。 
- 作为 Analytics Hub 管理员,您可以创建启用数据共享的数据交换,然后向数据发布者和订阅方授予访问这些数据交换的权限。 
如需了解详情,请参阅配置 Analytics Hub 角色。
架构
Sharing 是基于Google Cloud 数据资源的发布和订阅模型构建,支持就地零副本共享。Sharing 支持以下 Google Cloud 资源:
- BigQuery 数据集
- Pub/Sub 主题
发布者工作流
下图介绍了发布方如何共享资产:
以下各部分介绍了此工作流中的功能。
共享资源
共享资源是发布方在 BigQuery Sharing 中进行共享的基本单元。
共享数据集
共享数据集是一种 BigQuery 数据集,是 BigQuery Sharing 中数据共享的基本单元。BigQuery 架构中的计算与存储分离,使数据发布方可以与任意数量的订阅方共享数据集,而无需创建多个数据副本。作为发布方,您可以在项目中创建或使用现有的 BigQuery 数据集(其中包含您希望提供给订阅方的受支持对象):
请注意以下与 VPC Service Controls 和 Sharing 相关的限制:
- 不建议发布方在 VPC Service Controls 边界内的项目中发布共享数据。如果项目中的共享数据集位于 VPC Service Controls 边界内,则交换项目(托管清单)和所有订阅方的项目都需要设置适当的入站流量规则和出站流量规则,才能成功订阅发布方的清单。 
- 不建议交换管理员将其交换项目置于 VPC Service Controls 边界内,因为这可能会中断发布工作流,导致发布方项目和所有订阅方的项目都需要入站流量和出站流量规则才能成功订阅其清单。 
共享主题
共享主题是一个 Pub/Sub 主题,用作BigQuery 中的流数据共享单元。作为发布方,您可以在项目中创建 Pub/Sub 或使用现有 Pub/Sub 主题,并将其分发给订阅方。
数据交换
数据交换是一个支持自助式数据共享的容器。它包含引用共享资源的清单。发布方和管理员可以在数据交换和清单级别向订阅方授予访问权限。此方法有助于避免为底层共享资源显式授予访问权限。订阅方可以浏览数据交换、发现自己可以访问的数据,以及订阅共享资源。在创建数据交换时,您可以为其分配一个主要联系人邮箱。主要联系人邮箱提供了一种途径,方便用户就数据交换相关问题或疑虑与数据交换所有者联系。数据交换分为以下几种类型:
- 不公开数据交换。默认情况下,数据交换是不公开的,只有能够访问该交换的用户或群组才能查看或订阅其清单。
- 公开数据交换。默认情况下,数据交换是不公开的,只有能够访问该交换的用户或群组才能查看或订阅其清单。但是,您可以选择将数据交换公开。Google Cloud 用户 (allAuthenticatedUsers) 可以发现和订阅公开数据交换中的清单。如需详细了解公开数据交换,请参阅将数据交换公开。
借助 Analytics Hub Admin 角色,您可以创建多个数据交换,并管理执行 Sharing 任务的其他用户。
清单
清单是指向发布方在数据交换中所列共享资源的引用。作为发布方,您可以创建清单并指定资源说明、要运行的示例查询或示例消息数据、所有相关文档的链接,以及可帮助订阅方使用您的共享资源的任何其他信息。创建清单时,您可以分配主要联系人邮箱、提供商姓名和联系人以及发布商姓名和联系人。通过主要联系人邮箱,用户可以就数据交换方面的问题或疑虑与商家信息的所有者联系。提供商名称和联系信息是最初为商家提供数据的代理机构的信息。此信息为选填信息。发布商名称和联系人是指发布数据以供在 BigQuery Sharing 中使用的代理机构。此信息为选填信息。如需了解详情,请参阅管理清单。
根据为清单设置的 Identity and Access Management (IAM) 政策以及包含清单的数据交换类型,清单可以是以下两种类型:
- 公开清单。它与所有 Google Cloud 用户 (allAuthenticatedUsers) 共享。公开数据交换中的清单是公开清单。这些清单可以是对免费公共资源或商业资源的引用。如果清单属于商业资源,订阅方可以直接向数据提供方请求对清单的访问权限,也可以浏览和购买已集成到 Google Cloud Marketplace 的商业清单。
- 非公开清单。可直接与个人或群组共享。例如,非公开列表可以引用您与组织内的其他内部团队共享的营销指标数据集。
订阅者工作流
下图介绍了 Analytics Hub 订阅方如何与共享资源进行互动:
以下各部分介绍了订阅方工作流中的功能。
关联的资源
订阅 BigQuery Sharing 清单时,系统会创建关联的资源,将订阅方连接到底层共享资源。
关联的数据集
关联的数据集是一个只读 BigQuery 数据集,用作共享数据集的指针或引用。如果订阅列表,则会在您的项目中创建关联的数据集,而不是数据集的副本,因此订阅方可以读取数据,但无法在其中添加或更新对象。通过关联的数据集查询表和视图等对象时,系统将返回共享数据集中的数据。如需详细了解关联数据集,请参阅查看和订阅清单及数据交换。
关联的数据集有权访问共享数据集的表和视图。拥有关联数据集的订阅方无需任何额外的 Identity and Access Management 授权,即可访问共享数据集的表和视图。
关联的数据集支持以下对象:
关联的 Pub/Sub 订阅
订阅包含共享主题的清单会在订阅方项目中创建关联的 Pub/Sub 订阅。系统不会创建共享主题或消息数据的副本。关联的 Pub/Sub 订阅的订阅方可以访问发布到共享主题的消息。订阅方无需任何额外的 Identity and Access Management 授权即可访问共享主题的消息数据。发布方可以直接在 Pub/Sub 中或通过 BigQuery Sharing 订阅管理来管理订阅。如需详细了解关联的 Pub/Sub 订阅,请参阅使用 Pub/Sub 进行数据流共享。
数据出站流量选项(仅限 BigQuery 共享数据集)
通过数据出站流量选项,发布方可以限制订阅方从 BigQuery 关联数据集导出数据的操作。
发布方可以对清单和/或查询结果启用数据出站流量限制。当数据出站流量受限时,系统会应用以下限制:
- 停用复制、克隆、导出和快照 API。 
- Google Cloud 控制台中的复制、克隆、导出和快照选项已停用。 
- 禁止将受限数据集连接到表探索器。 
- 对受限数据集停用 BigQuery Data Transfer Service。 
- 禁止 - CREATE VIEW AS SELECT语句 并禁止将数据写入目标视图。
创建清单时,您可以设置适当的数据出站流量选项。
限制
共享具有以下限制:
- 共享数据集最多可以有 1,000 个关联的数据集。 
- 共享主题最多可以有 10,000 个 Pub/Sub 订阅。此限制包括关联的 Pub/Sub 订阅,以及在 BigQuery Sharing 之外(例如直接从 Pub/Sub)创建的 Pub/Sub 订阅。 
- 在创建列表时,您无法选择包含不受支持的资源的数据集作为共享数据集。如需详细了解 BigQuery Sharing 支持的 BigQuery 对象,请参阅本文档中的共享数据集。 
- 您无法在关联数据集中的表上附加 IAM 标记。请改为在关联的数据集级别应用这些权限。 
- 2023 年 7 月 25 日之前创建的关联数据集不会由订阅资源回填。只有在 2023 年 7 月 25 日之后创建的订阅才适用 API 方法。 
- 如果您是发布方,则存在以下 BigQuery 互操作性限制: - 必须向订阅方授予读取源数据集的明确权限,才能查询关联数据集中的视图。如需授予对视图的访问权限,最佳实践是发布方应创建授权视图。授权视图可向订阅方授予对视图数据的访问权限,而无需向他们授予对底层源数据的访问权限。 
- 查询计划显示共享视图查询和例程查询,包括项目 ID 以及授权视图中涉及的其他数据集。切勿在共享视图或常规查询中添加您认为敏感的加密密钥等内容。 
- 共享数据集会在 Data Catalog(已弃用)和 Dataplex Universal Catalog 中编入索引。共享数据集的更新(例如添加表或视图)可供订阅方无延迟地使用。但在某些情况下,例如,当共享数据集中有超过一百个订阅方或表时,更新最多可能需要长达 18 小时才能在这些服务中编入索引。由于索引延迟,订阅方无法立即在 Google Cloud 控制台中搜索这些更新后的资源。 
- 共享主题会在 Data Catalog(已弃用)和 Dataplex Universal Catalog 中编入索引,但您无法特别针对资源类型进行过滤。 
- 如果您对列出的表设置了行级安全性或数据遮盖政策,则订阅方必须是企业版或企业 Plus 版客户,才能针对关联的数据集运行查询作业。如需了解版本,请参阅 BigQuery 版本简介。 
 
- 如果您是订阅方,则存在以下 BigQuery 互操作性限制: - 不支持引用关联数据集中的表的具体化视图。 
- 不支持截取关联的数据集表的快照。 
- 包含大于 1 TB(物理存储空间)的关联数据集和 - JOIN语句的查询可能会失败。您可以与支持团队联系来解决此问题。
- 您不能将区域限定符与 - INFORMATION_SCHEMA视图结合使用来查看关联数据集的元数据。
- 在关联的数据集中查询例程时,您只能查询用户定义的函数(SQL 和 JavaScript UDF)和表函数例程类型。查询不受支持的例程类型会导致以下错误消息: - Querying routine type type is not yet supported on linked dataset dataset.
 
- 以下限制适用于面向多个区域的清单: - 仅共享数据集和关联的数据集副本支持多个区域的清单。对于共享 Pub/Sub 主题和订阅,不支持面向多个区域的清单。
- 数据净室不支持面向多个区域的清单。
- BigQuery Omni 区域不支持面向多个区域的清单。
 
- 用量指标存在以下限制: - 您无法获取 2023 年 7 月 20 日之前订阅的清单的用量指标。 
- num_rows_processed和- total_bytes_processed字段的外部表用量指标可能包含不准确的数据。
- 只有通过 BigQuery 作业产生的用量支持使用用量指标。不支持使用以下资源产生的消耗: 
- 系统仅会为 2024 年 4 月 22 日之后的查询填充视图的用量指标。 
- 系统不会为 BigQuery 中关联的 Pub/Sub 订阅捕获用量指标(您可以继续在 Pub/Sub 中查看用量)。 
 
- 订阅 Salesforce Data Cloud 数据时,存在以下限制: - Data Cloud 数据以视图的形式共享。作为订阅方,您无法访问视图引用的底层表。
 
支持的区域
BigQuery Sharing 功能在以下区域和多区域中受支持。
区域
下表列出了美洲支持 Sharing 的区域。| 区域说明 | 区域名称 | 详细信息 | 
|---|---|---|
| 俄亥俄州,哥伦布 | us-east5 | |
| 达拉斯 | us-south1 |  | 
| 艾奥瓦 | us-central1 |  | 
| 拉斯维加斯 | us-west4 | |
| 洛杉矶 | us-west2 | |
| 墨西哥 | northamerica-south1 | |
| 蒙特利尔 | northamerica-northeast1 |  | 
| 北弗吉尼亚 | us-east4 | |
| 俄克拉何马 | us-central2 | |
| 俄勒冈 | us-west1 |  | 
| 盐湖城 | us-west3 | |
| 圣保罗 | southamerica-east1 |  | 
| 圣地亚哥 | southamerica-west1 | |
| 南卡罗来纳 | us-east1 | |
| 多伦多 | northamerica-northeast2 | |
| 区域说明 | 区域名称 | 详细信息 | 
|---|---|---|
| 德里 | asia-south2 | |
| 香港 | asia-east2 | |
| 雅加达 | asia-southeast2 | |
| 墨尔本 | australia-southeast2 | |
| 孟买 | asia-south1 | |
| 大阪 | asia-northeast2 | |
| 首尔 | asia-northeast3 | |
| 新加坡 | asia-southeast1 | |
| 悉尼 | australia-southeast1 | |
| 台湾 | asia-east1 | |
| 东京 | asia-northeast1 | 
| 区域说明 | 区域名称 | 详细信息 | 
|---|---|---|
| 比利时 | europe-west1 |  | 
| 柏林 | europe-west10 | |
| 芬兰 | europe-north1 |  | 
| 法兰克福 | europe-west3 | |
| 伦敦 | europe-west2 |  | 
| 马德里 | europe-southwest1 |  | 
| 米兰 | europe-west8 | |
| 荷兰 | europe-west4 |  | 
| 巴黎 | europe-west9 |  | 
| 都灵 | europe-west12 | |
| 华沙 | europe-central2 | |
| 苏黎世 | europe-west6 |  | 
| 区域说明 | 区域名称 | 详细信息 | 
|---|---|---|
| Dammam | me-central2 | |
| 多哈 | me-central1 | |
| 特拉维夫 | me-west1 | 
| 区域说明 | 区域名称 | 详细信息 | 
|---|---|---|
| 约翰内斯堡 | africa-south1 | 
多区域
下表列出了支持 BigQuery Sharing 的多区域。| 多区域说明 | 多区域名称 | 
|---|---|
| 欧盟成员国的数据中心1 | EU | 
| 美国的数据中心 | US | 
1 位于 EU 多区域的数据不会存储在 europe-west2(伦敦)或 europe-west6(苏黎世)数据中心中。
Omni 区域
下表列出了支持 Sharing 的 Omni 区域。| Omni 区域说明 | Omni 区域名称 | |
|---|---|---|
| AWS | ||
| AWS - 美国东部(北弗吉尼亚) | aws-us-east-1 | |
| AWS - 美国西部(俄勒冈) | aws-us-west-2 | |
| AWS - 亚太地区(首尔) | aws-ap-northeast-2 | |
| AWS - 亚太地区(悉尼) | aws-ap-southeast-2 | |
| AWS - 欧洲(爱尔兰) | aws-eu-west-1 | |
| AWS - 欧洲(法兰克福) | aws-eu-central-1 | |
| Azure | ||
| Azure - 美国东部 2 | azure-eastus2 | |
用例示例
本部分举例说明了如何在 BigQuery 中使用 Sharing 功能。
假设您是零售商,并且您的组织在名为 Google Cloud Forecasting 的项目中具有实时需求预测数据。您希望与供应链系统中数百个供应商共享此需求预测数据。下面说明了如何通过 BigQuery Sharing 功能与供应商共享数据:
管理员
作为 Forecasting 项目的所有者,您必须先启用 API,然后将 Analytics Hub Admin 角色分配给管理项目中数据交换的用户。具有 Analytics Hub Admin 角色的用户称为管理员。
此管理员可以执行以下任务:
- 在组织的 Forecasting 项目中创建、更新、删除和共享数据交换。 
- 管理其他具有 Analytics Hub Admin 角色的管理员。 
- 通过向组织的员工授予 Analytics Hub Publisher 角色来管理发布方。如果您希望某些员工只能更新、删除和共享列表,但不能创建列表,则可以向其授予 Analytics Hub Listing Admin 角色。 
- 通过向由所有供应商组成的 Google 群组授予 Analytics Hub Subscriber 角色来管理订阅方。如果您希望某些供应商只能查看可用的交换和列表,则可以向其授予 Analytics Hub Viewer 角色。这些供应商无法订阅清单。 
如需了解详情,请参阅管理数据交换。
发布方
发布方在 Forecasting 项目或其他项目中为其数据集创建以下列表:
- 列表 A:需求预测数据集 1
- 列表 B:需求预测数据集 2
- 列表 C:需求预测数据集 3
作为数据提供方,您可以跟踪共享数据集的用量指标。用量指标包括以下详细信息:
- 针对共享数据集运行的作业。
- 订阅方项目和组织对共享数据集的使用详情。
- 作业处理的行数和字节数。
如需了解详情,请参阅管理列表。
订阅人数
订阅方可以在数据交换中浏览其有权访问的列表。他们还可以订阅这些列表,以及通过创建关联的数据集将这些数据集添加到项目中。然后,供应商可以对这些关联的数据集运行查询,并实时检索结果。
如需了解详情,请参阅查看和订阅清单及数据交换。
价格
管理数据交换或清单无需支付额外费用。
对于 BigQuery 数据集,发布方按数据存储量计费,而订阅方根据按需价格模式或基于容量价格模式,为针对共享数据运行的查询付费。如需了解价格,请参阅 BigQuery 价格。
对于 Pub/Sub,主题发布方按向共享主题写入的字节总数(发布吞吐量)和网络出站流量(如适用)计费。订阅方根据从关联的订阅读取的字节总数(订阅吞吐量)和网络出站流量(如适用)付费。如需了解详情,请参阅 Pub/Sub 价格。
配额
如需了解 BigQuery Sharing 配额,请参阅配额和限制。
合规性
作为 BigQuery 的一部分,Sharing 功能符合以下合规计划:
VPC Service Controls
您可以设置允许发布方和订阅方访问具有 VPC Service Controls 边界的项目中的数据所需的入站流量和出站流量规则。如需了解详情,请参阅共享 VPC Service Controls 规则。
后续步骤
- 了解如何查看和订阅清单及数据交换。
- 了解如何授予 Analytics Hub 角色。