与数据净室共享敏感数据

数据净室提供安全增强型环境,在该环境中,多方可以共享、联接和分析其数据资产,而无需移动或呈现底层数据。

BigQuery 数据净室在 Analytics Hub 平台上构建。虽然标准 Analytics Hub 数据交换提供了跨组织边界大规模共享数据的方法,但数据净室可帮助您处理敏感和受保护的数据共享应用场景。数据净室提供了额外的安全控制,可帮助保护底层数据并强制执行数据所有者定义的分析规则

以下是主要应用场景:

  • 广告系列规划和受众群体分析。让双方(例如卖方和买方)混合使用第一方数据,并以注重隐私权的方式改进数据丰富化。
  • 衡量和归因。匹配客户和媒体效果数据,以更好地了解营销工作的有效性并做出更明智的业务决策。
  • 激活。将客户数据与其他方的数据相结合,以深入了解客户,从而实现更好的细分功能和更有效的媒体激活。

除了营销行业之外,还有以下几种数据净室应用场景:

  • 零售与快速消费品 (CPG)。通过结合来自零售商的销售终端数据和来自快速消费品 (CPG) 公司的营销数据,优化营销和促销活动。
  • 金融服务。通过结合来自其他金融和政府机构的敏感数据来改进欺诈检测。汇总多家银行的客户数据,从而建立信用风险评分。
  • 医疗保健。在医生和制药研究人员之间共享数据,以了解患者对治疗的反应。
  • 供应链、物流和交通。合并来自供应商和营销者的数据,以全面了解产品在其整个生命周期内的业绩。

角色

BigQuery 数据净室中有三个主要角色:

架构

BigQuery 数据净室是基于 BigQuery 数据的发布和订阅模型构建的。BigQuery 架构提供了计算和存储之间的分离,可让数据贡献者共享数据,而无需创建数据的多个副本。下图简要展示了 BigQuery 数据净室架构:

数据贡献者将数据发布到数据净室,订阅者可以使用隐私过滤器进行查询。

数据净室

数据净室是一个用于共享敏感数据的环境,该环境中会阻止原始访问并强制执行查询限制。只有作为订阅者添加到数据净室的用户或群组才能订阅共享数据。数据净室所有者可以在 Analytics Hub 中创建任意数量的数据净室。

共享资源

共享资源是数据净室中的数据共享单元。资源必须是 BigQuery 表或视图。作为数据贡献者,您可以在项目中创建或使用要与订阅者共享的现有 BigQuery 资源。

列表

当数据贡献者将数据添加到数据净室时,系统会创建清单。清单包含对数据贡献者的共享资源的引用,以及可帮助订阅者使用数据的描述性信息。作为数据贡献者,您可以创建清单,并在其中为订阅者添加说明、示例查询以及文档链接等信息。

关联的数据集

关联数据集是一个只读 BigQuery 数据集,用作数据净室中所有数据的符号链接。当订阅者查询关联数据集中的资源时,系统会返回共享资源中的数据,该数据满足数据贡献者设置的分析规则。作为订阅者,当您订阅数据净室时,系统会在您的项目内创建关联数据集。系统不会创建数据的副本,并且订阅者无法查看某些元数据,例如视图定义。

分析规则

作为数据贡献者,您可以针对在数据净室中共享的资源配置分析规则分析规则可阻止对底层数据的原始访问并强制执行查询限制。例如,数据净室支持汇总阈值分析规则,该规则允许订阅者仅通过聚合查询分析数据。

数据出站流量控制

系统会自动启用数据出站流量控制,以防止订阅者从数据净室复制和导出原始数据。数据贡献者可以配置其他控制,以防止复制和导出订阅者获取的查询结果。

限制

BigQuery 数据净室存在以下限制:

  • 您只能对视图设置分析规则,不能对表或具体化视图设置。由于此限制,如果数据贡献者直接将表或具体化视图(或没有分析规则的视图)共享到数据净室,则订阅者拥有对这些资源中的数据的原始访问权限。
  • 由于数据净室是在 Analytics Hub 平台上构建的,因此需遵循所有 Analytics Hub 限制
  • 数据净室仅在 Analytics Hub 区域中提供。
  • 作为订阅者,您无法在 Dataplex 或 Data Catalog 中搜索共享资源。
  • 作为订阅者,您无法在关联的数据集上查询 INFORMATION_SCHEMA 视图
  • 作为数据贡献者,您无法将整个数据集直接发布到数据净室。
  • 作为数据贡献者,您无法将模型或例程发布到数据净室。
  • 您最多可以向数据净室添加 100 个共享资源。如果您需要提高此限制,请联系 bq-dcr-feedback@google.com

准备工作

授予为用户提供执行本文档中的每个任务所需权限的 Identity and Access Management (IAM) 角色,启用 Analytics Hub API,并将 Analytics Hub Admin 角色分配给数据净室所有者(将创建数据净室的用户)。

所需权限

如需获得使用数据净室所需的权限,请让您的管理员为您授予 BigQuery Data Editor (roles/bigquery.dataEditor) IAM 角色。如需详细了解如何授予角色,请参阅管理访问权限

此预定义角色可提供使用数据净室所需的权限。如需查看所需的确切权限,请展开所需权限部分:

所需权限

使用数据净室需要以下权限:

  • serviceUsage.services.get
  • serviceUsage.services.list
  • serviceUsage.services.enable

您也可以使用自定义角色或其他预定义角色来获取这些权限。

如需详细了解 BigQuery 中的 IAM 角色和权限,请参阅 IAM 简介

启用 Analytics Hub API

如需启用 Analytics Hub API,请选择以下选项之一:

控制台

打开 Google Cloud 项目的 Analytics Hub API 页面并启用它。

启用 Analytics Hub API

bq

运行 gcloud services enable 命令

gcloud services enable analyticshub.googleapis.com

启用 Analytics Hub API 后,您可以访问 Analytics Hub 页面

分配 Analytics Hub Admin 角色

数据净室所有者必须具有 Analytics Hub Admin 角色 (roles/analyticshub.admin)。如需了解如何向其他用户授予此角色,请参阅创建 Analytics Hub 管理员

数据净室所有者工作流

作为数据净室所有者,您可以执行以下操作:

  • 创建数据净室。
  • 更新数据净室属性。
  • 删除数据净室。
  • 管理数据贡献者。
  • 管理订阅者。
  • 共享数据净室。

其他数据净室所有者权限

您必须具有项目的 Analytics Hub Admin 角色 (roles/analyticshub.admin) 才能执行数据净室所有者任务。

创建数据净室

  1. 在 Google Cloud 控制台中,转到 Analytics Hub 页面。

    转到 Analytics Hub

  2. 点击创建净室

  3. 项目部分,选择用于数据净室的项目。您必须为项目启用 Analytics Hub API。

  4. 指定数据净室的位置、名称、主要联系人、图标(可选)和说明。只有与数据净室位于同一区域的资源才能列在数据净室中。

  5. 点击创建净室

  6. 可选:在净室权限部分中,添加其他数据净室所有者、数据贡献者或订阅者。

    创建数据净室窗格。

更新数据净室

  1. 在 Google Cloud 控制台中,转到 Analytics Hub 页面。

    转到 Analytics Hub

  2. 点击您要更新的数据净室的显示名称。

  3. 详细信息标签页中,点击修改净室详细信息

  4. 根据需要更新数据净室名称、主要联系人、图标或说明。

  5. 点击保存

删除数据净室

  1. 在 Google Cloud 控制台中,转到 Analytics Hub 页面。

    转到 Analytics Hub

  2. 在您要删除的数据净室所在的行中,点击 更多操作 > 删除

  3. 如需确认,请输入 delete,然后点击删除。此操作无法撤消。

删除数据净室后,其中的所有清单都会被删除。但是,共享资源和关联的数据集不会被删除。关联数据集会与源数据集解除关联,因此订阅者查询数据净室中的资源会开始失败。

管理数据贡献者

作为数据净室所有者,您需要管理哪些用户可以将数据添加到数据净室(数据贡献者)。如需允许用户将数据添加到数据净室,请为其授予特定数据净室的 Analytics Hub Publisher 角色 (roles/analyticshub.publisher):

  1. 在 Google Cloud 控制台中,转到 Analytics Hub 页面。

    转到 Analytics Hub

  2. 点击您要授予其权限的数据净室的显示名称。

  3. 详细信息标签页中,点击设置权限

  4. 点击添加主账号

  5. 新的主账号部分,输入您要添加的数据贡献者的用户名或电子邮件地址。

  6. 选择角色部分,选择 Analytics Hub > Analytics Hub Publisher

  7. 点击保存

您随时可以通过点击设置权限来删除和更新数据贡献者。

您可以在 IAM 页面中授予整个项目的 Analytics Hub Publisher 角色,该角色可为用户提供将数据添加到项目中的任何数据净室的权限。但是,我们不建议执行此操作,因为这可能会导致用户的访问权限过于宽松。

管理订阅者

作为数据净室所有者,您需要管理哪些用户可以订阅数据净室(订阅者)。如需允许用户订阅数据净室,请为其授予特定数据净室的 Analytics Hub Subscriber (roles/analyticshub.subscriber) 和 Analytics Hub Subscription Owner (roles/analyticshub.subscriptionOwner) 角色:

  1. 在 Google Cloud 控制台中,转到 Analytics Hub 页面。

    转到 Analytics Hub

  2. 点击您要授予其权限的数据净室的显示名称。

  3. 详细信息标签页中,点击设置权限

  4. 点击添加主账号

  5. 新的主账号部分,输入您要添加的订阅者的用户名或电子邮件地址。

  6. 选择角色部分,选择 Analytics Hub > Analytics Hub Subscriber

  7. 点击 添加其他角色

  8. 选择角色部分,选择 Analytics Hub > Analytics Hub Subscription Owner

  9. 点击保存

您随时可以通过点击设置权限来删除和更新订阅者。

您可以在 IAM 页面中授予整个项目的 Analytics Hub Subscriber 和 Analytics Hub Subscription Owner 角色,该角色可为用户提供订阅项目中的任何数据净室的权限。但是,我们不建议执行此操作,因为这可能会导致用户的访问权限过于宽松。

共享数据净室

您可以直接与订阅者共享数据净室:

  1. 在 Google Cloud 控制台中,转到 Analytics Hub 页面。

    转到 Analytics Hub

  2. 在您要共享的数据净室所在的行中,点击 更多操作 > 复制共享链接

  3. 与订阅者共享复制的链接,以让他们可以查看和订阅数据净室。

数据贡献者工作流

作为数据贡献者,您可以执行以下操作:

  • 通过创建清单将数据添加到数据净室。
  • 更新清单。
  • 删除清单。
  • 共享数据净室。
  • 监控清单。

其他数据贡献者权限

如需执行数据贡献者任务,您必须具有数据净室的 Analytics Hub Publisher 角色 (roles/analyticshub.publisher)。

此外,对于包含要在数据净室中列出的资源的数据集,您需要拥有 bigquery.datasets.link 权限。如果您要查看组织中当前项目之外的数据净室,则还需要拥有 resourcemanager.organization.get 权限。

创建清单(添加数据)

如需使用分析规则准备数据并将其以清单形式发布到数据净室,请执行以下操作:

  1. 在 Google Cloud 控制台中,转到 Analytics Hub 页面。

    转到 Analytics Hub

  2. 点击您要在其中创建清单的数据净室的显示名称。

    如果您与数据净室所有者位于不同组织中,并且看不到数据净室,请向数据净室所有者索要直接链接。

  3. 点击添加数据

  4. 选择数据集表/视图名称部分,输入要在数据净室及其相应数据集中列出的表或视图。您将通过几个步骤添加分析规则,以防止对此底层数据进行原始访问。

  5. 选择您要发布的资源对应的列。

  6. 设置清单的视图名称、主要联系人和说明(可选)。

  7. 点击下一步

  8. 为清单选择分析规则并配置详细信息。

  9. 为清单设置数据出站流量控制。

  10. 点击下一步

  11. 查看您要添加到数据净室的数据和分析规则。

  12. 点击添加数据。 系统会为您的数据创建一个视图,并将其作为清单添加到数据净室。系统不会添加源表或视图本身。

通过在数据净室中列出资源,您可以为所有当前和未来数据净室订阅者授予对共享资源中的数据的访问权限。

如果您尝试创建包含共享资源(没有分析规则)的清单,则系统会显示一条警告,表明订阅者将能够访问该资源的原始数据。如果您确认愿意在没有分析规则的情况下发布此类资源,则仍可以创建清单。

如果您收到 Failed to save listing 错误,请确保您拥有执行数据贡献者任务所需的权限

更新清单

  1. 在 Google Cloud 控制台中,转到 Analytics Hub 页面。

    转到 Analytics Hub

  2. 点击包含清单的数据净室的显示名称。

  3. 在您要更新的清单所在的行中,点击 更多操作 > 修改清单

  4. 根据需要更新主要联系人或说明。

  5. 点击下一步

  6. 根据需要更新分析规则。您只能更新所选规则的参数。您无法切换到其他规则。

  7. 点击下一步

  8. 查看列表,然后点击添加数据

清单创建后,您便无法更改其来源资源或数据出站流量控制。

删除清单

  1. 在 Google Cloud 控制台中,转到 Analytics Hub 页面。

    转到 Analytics Hub

  2. 点击包含清单的数据净室的显示名称。

  3. 在您要删除的清单所在的行中,点击 更多操作 > 删除清单

  4. 如需确认,请输入 delete,然后点击删除。此操作无法撤消。

删除清单后,共享资源和关联数据集不会被删除。关联数据集会与源数据集解除关联,因此订阅者查询该清单中的数据将开始失败。

共享数据净室

您可以直接与订阅者共享数据净室:

  1. 在 Google Cloud 控制台中,转到 Analytics Hub 页面。

    转到 Analytics Hub

  2. 在您要共享的数据净室所在的行中,点击 更多操作 > 复制共享链接

  3. 与订阅者共享复制的链接,以让他们可以查看和订阅数据净室。

监控清单

您可以通过查询 INFORMATION_SCHEMA.SHARED_DATASET_USAGE 视图来查看您在数据净室中共享的资源的源数据集的用量指标。

如需查看清单订阅者,请执行以下操作:

  1. 在 Google Cloud 控制台中,转到 Analytics Hub 页面。

    转到 Analytics Hub

  2. 点击数据净室的显示名称。

  3. 在您要查看的清单所在的行中,点击 更多操作 > 查看订阅

订阅者工作流

订阅者可以查看和订阅数据净室。订阅数据净室会在订阅者的项目中创建关联数据集。每个关联数据集都与数据净室具有相同的名称。

您无法订阅数据净室中的特定清单。您只能订阅数据净室本身。

其他订阅者权限

您必须具有数据净室的 Analytics Hub Subscriber (roles/analyticshub.subscriber) 和 Analytics Hub Subscription Owner (roles/analyticshub.subscriptionOwner) 角色才能执行订阅者任务。

此外,在订阅净室时,您需要拥有项目的 bigquery.datasets.create 权限才能创建关联数据集。

订阅数据净室

订阅数据净室后,通过在您的项目中创建关联数据集,可为您提供对清单中的数据的查询权限。如需订阅数据净室,请执行以下操作:

  1. 在 Google Cloud 控制台中,转到 BigQuery 页面。

    转到 BigQuery

  2. 探索器窗格中,点击 添加

  3. 选择 Analytics Hub。系统会打开一个发现页面。

  4. 如需显示您有权访问的数据净室,请在过滤条件列表中选择净室

  5. 点击您要订阅的数据净室。系统会打开数据净室的说明页面。

  6. 点击订阅

  7. 选择订阅的目标项目,然后点击订阅

关联数据集现已添加到您指定的项目中,可用于查询。

作为订阅者,您可以修改关联数据集的某些元数据,例如说明和标签。您还可以设置关联数据集的权限。但是,对关联数据集的更改不会影响源数据集。您也看不到视图定义。

关联数据集中包含的资源为只读资源。作为订阅者,您无法修改关联数据集中资源的数据或元数据。您也无法指定关联数据集中各个资源的权限。

如需退订数据净室,请删除关联数据集。

查询关联数据集中的数据

如需查询关联数据集中的数据,请使用 SELECT WITH AGGREGATION_THRESHOLD 语法,该语法使您能够对强制执行分析规则的视图运行查询。如需查看此语法的示例,请参阅查询汇总阈值分析规则强制执行的视图

示例场景:广告主和发布商归因分析

广告主希望跟踪其营销活动的效果。广告主拥有其客户的第一方数据,包括他们的交易记录、受众特征和兴趣。发布商拥有来自其网站的数据,包括向访问者展示的广告及其转化。

广告主和发布商同意使用数据净室来合并数据并衡量其广告系列的效果。在这种情况下,发布商可以创建数据净室,并为广告主提供其数据以执行分析。这样,系统便会生成归因报告,让广告主了解哪些广告对推动销售最有效。然后,广告主可以使用这些信息来改进其未来的营销活动。

广告主和发布商通过以下流程编排 BigQuery 数据净室:

创建数据净室(发布商)

  1. 发布商组织中的数据净室所有者在其 BigQuery 项目中启用 Analytics Hub API,并将用户 A 指定为数据净室所有者 (Analytics Hub Admin)。
  2. 用户 A 创建一个名为 Campaign Analysis 的数据净室并分配以下权限:
    • 数据贡献者 (Analytics Hub Publisher):用户 B,发布商组织中的数据工程师。
    • 订阅者(Analytics Hub Subscriber 和 Subscription Owner):用户 C,广告主组织中的营销分析师。

将数据添加到数据净室(发布商)

  1. 用户 B 在数据净室中创建一个名为 Publisher Conversion Data 的新清单。 在清单创建的过程中,将创建包含分析规则的新视图。

订阅数据净室(广告主)

  1. 用户 C 订阅数据净室,以便为数据净室中的所有清单(包括 Publisher Conversion Data 清单)创建关联数据集。
  2. 用户 C 现在可以运行聚合查询,以将此关联数据集中的数据与其第一方数据相结合来衡量广告系列的效果。

实体解析

数据净室应用场景通常需要联接不包含通用标识符的数据贡献者和订阅者数据集中的实体。订阅者和数据贡献者在多个数据集中表示相同记录的方式可能不同,因为数据集来自不同的数据源,或者数据集使用来自不同命名空间的标识符。

数据准备过程中,BigQuery 中的实体解析会执行以下操作:

  • 对于数据贡献者,实体解析使用贡献者选择的通用提供方的标识符在其共享资源中删除重复记录和解析记录。此过程会启用跨贡献者联接。
  • 对于订阅者,实体解析会删除重复信息并解析订阅者第一方数据集中的记录,同时关联到数据贡献者数据集中的实体。此过程会在订阅者数据集和数据贡献者数据之间启用联接。

如需使用您选择的身份提供方设置实体解析,请参阅在 BigQuery 中配置和使用实体解析

探索数据净室资产

如需查找您有权访问的所有数据净室,请执行以下操作:

  • 对于数据净室所有者和数据贡献者,请在 Google Cloud 控制台中进入 Analytics Hub 页面。

    转到 Analytics Hub

    系统会列出您可以访问的所有数据净室。

  • 对于订阅者,请执行以下操作:

    1. 在 Google Cloud 控制台中,转到 BigQuery 页面。

      转到 BigQuery

    2. 探索器窗格中,点击 添加

    3. 选择 Analytics Hub。系统会打开一个发现页面。

    4. 如需显示您有权访问的数据净室,请在过滤条件列表中选择净室

如需在项目中查找数据净室创建的所有关联数据集,请在命令行环境中运行以下命令:

PROJECT=PROJECT_ID \
for dataset in $(bq ls --project_id $PROJECT | tail +3); \
do [ "$(bq show -d --project_id $PROJECT $dataset | egrep LINKED)" ] \
&& echo $dataset; done

PROJECT_ID 替换为包含关联数据集的项目。

价格

数据贡献者只需为数据存储付费。订阅者在运行查询时只需为计算(分析)付费。

订阅者必须拥有非版本产品或企业 Plus 版

后续步骤