管理清单

作为 Analytics Hub 发布方,您可以执行以下任务:

  • 在您拥有发布权限的数据交换中创建清单。
  • 更新、删除、共享和查看清单的使用情况指标。
  • 管理 BigQuery Sharing(以前称为 Analytics Hub)清单的不同角色,例如清单管理员、订阅方和查看者。
  • 查看订阅了您的清单的所有订阅者。
  • 监控清单的使用情况
  • 从清单中移除订阅者。

清单是对发布者在数据交换中列出的共享数据集的引用。根据为清单设置的 Identity and Access Management (IAM) 政策以及包含清单的数据交换类型,清单可以是以下两种类型:

准备工作

如需开始使用 BigQuery Sharing(以前称为 Analytics Hub),您需要在 Google Cloud 项目中启用 Analytics Hub API。

所需权限

要启用 Analytics Hub API,您需要以下 Identity and Access Management (IAM) 权限:

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

以下预定义 IAM 角色可提供启用 Analytics Hub API 所需的权限:

  • roles/serviceusage.serviceUsageAdmin

如需详细了解 BigQuery 中的 IAM 角色,请参阅预定义的角色和权限

启用 Analytics Hub API

如需启用 Analytics Hub API,请执行以下操作:

控制台

前往 Analytics Hub API 页面,然后为您的 Google Cloud 项目启用 Analytics Hub API。

启用 Analytics Hub API

gcloud

运行 gcloud services enable 命令:

gcloud services enable analyticshub.googleapis.com

所需权限

如需管理清单和订阅,您必须具有以下 Analytics Hub 角色之一:

  • Analytics Hub Publisher 角色 (roles/analyticshub.publisher),用于在您的清单中创建、更新、删除和设置 IAM 政策。

  • Analytics Hub List Admin 角色 (roles/analyticshub.listingAdmin),用于更新、删除和设置清单的 IAM 政策。

  • Analytics Hub Admin 角色 (roles/analyticshub.Admin),用于创建、更新、删除和设置数据交换中所有清单的 IAM 政策。

如需了解详情,请参阅 Analytics Hub 用户角色。如需了解如何向其他用户授予这些角色,请参阅创建清单管理员

此外,如需创建清单,您还必须拥有要为其创建清单的数据集的 bigquery.datasets.getbigquery.datasets.update 权限。以下 BigQuery 预定义角色包含 bigquery.datasets.update 权限。

  • BigQuery Data Owner 角色 (roles/bigquery.dataOwner)
  • BigQuery Admin 角色 (roles/bigquery.admin)

如需查看组织中的项目之间您有权访问的所有数据交换,您必须拥有 resourcemanager.organizations.get 权限。没有任何 BigQuery 预定义角色可提供此权限,因此您需要使用 IAM 自定义角色

查看数据交换

如需查看组织中您有权访问的数据交换列表,请参阅查看数据交换。如果数据交换位于其他组织中,则 Analytics Hub 管理员必须与您共享该数据交换的链接

创建清单

清单是对发布者在数据交换中列出的共享数据集的引用。

如需创建清单,请按以下步骤操作:

控制台

  1. 前往 Sharing (Analytics Hub) 页面。

    前往 Sharing (Analytics Hub)

    此时会显示一个页面,其中列出了您可以访问的所有数据交换。

  2. 点击要在其中创建清单的数据交换名称。

  3. 点击 创建清单

  4. 配置数据部分的资源类型菜单中,选择 BigQuery 数据集Pub/Sub 主题

    • 如果您选择 BigQuery 数据集,请执行以下操作:

      1. 共享数据集菜单中,选择现有数据集,或点击创建数据集以创建新数据集。选择要在数据交换中列出的数据集。该数据集必须与数据交换位于同一区域。创建清单后,无法更新此字段。当订阅方查看关联数据集的元数据时,系统会返回源数据集名称和包含该数据集的项目的 ID。

      2. 数据出站流量控制中,选择相应的数据出站流量选项。

        • 如需对共享数据集应用数据出站流量限制,但不对共享数据集的查询结果应用该限制,请选择禁止复制和导出共享数据
        • 如需对共享数据集和共享数据集的查询结果应用数据出站流量限制,请选择禁止复制和导出查询结果,这将会同时自动设置禁止复制和导出共享数据
        • 如需对共享数据集应用数据 API 复制和导出出站流量限制,请选择禁止通过 API 复制和导出表,这将会同时自动设置禁止复制和导出共享数据
    • 如果您选择 Pub/Sub 主题,则可以在共享主题菜单中选择现有的 Pub/Sub 主题,也可以点击创建主题以创建新主题。

  5. 清单详细信息部分的显示名称中,输入清单的名称。

  6. 输入以下可选详细信息:

    • 类别:最多选择两个最符合您的清单的类别。订阅者可以根据这些类别过滤清单

    • 数据亲和性:发布方用于发布数据的区域。订阅方可以通过从同一区域读取数据,最大限度地降低或避免 Pub/Sub 网络出站费用,此信息对订阅方非常有用。如需详细了解出站费用,请参阅数据传输费用

    • 图标:产品详情的图标。 支持 PNG 和 JPEG 文件格式。图标的文件大小必须小于 512 KiB,尺寸不得超过 512 x 512 像素。

    • 说明:有关清单的简要说明。订阅者可以根据说明搜索清单

    • 公开可检测性:在 BigQuery Sharing 目录中启用清单的公开可检测性。如果您启用了此选项,请向 allUsersallAuthenticatedUsers 授予 Analytics Hub Viewer 角色 (roles/analyticshub.viewer)。如需了解详情,请参阅为清单授予角色。如果交换已公开,则已继承清单详情权限,无需采取任何进一步操作。

      公开可检测的交换因权限继承而不能包含非公开清单,但非公开交换可以包含公开清单。如需创建公开清单,数据清单所在的项目必须具有关联的组织和结算账号。 如果您要创建与 Cloud Marketplace 集成的商业清单,我们建议将清单设为可公开检测到。

    • 文档 > Markdown:其他信息,例如任何相关文档的链接以及任何有助于订阅方使用您的主题的其他信息。

  7. 清单联系信息部分中,输入以下可选详细信息:

    • 主要联系人:输入用于清单的主要联系人的电子邮件 ID 或网址。

    • 申请访问权限联系人:输入登记表的电子邮件 ID 或网址,以便订阅方与您联系。

    • 提供商:展开提供商部分,并在以下字段中指定详细信息:

      • 提供方名称:主题提供方的名称。
      • 提供方的主要联系人:主题提供方的主要联系人的电子邮件 ID 或网址。

      订阅者可以根据数据提供商过滤清单。

    • 发布者:展开发布者部分,并在以下字段中指定详细信息:

      • 发布者名称:创建清单的发布者的名称。
      • 发布方主要联系人:主题发布方主要联系人的电子邮件 ID 或网址。
  8. 查看清单预览部分。

  9. 点击发布

API

使用 projects.locations.dataExchanges.listings.create 方法

POST https://analyticshub.googleapis.com/v1/projects/PROJECT_ID/location/LOCATION/dataExchanges/DATAEXCHANGE_ID/listings?listingId=LISTING_ID

替换以下内容:

  • PROJECT_ID:包含要在其中创建清单的数据交换的项目 ID。
  • LOCATION:数据交换的位置。如需详细了解有哪些位置支持 Sharing,请参阅支持的区域
  • DATAEXCHANGE_ID:数据交换 ID。
  • LISTING_ID:清单 ID。

在请求正文中,提供清单详细信息。如果请求成功,则响应正文包含清单的详细信息。如果您启用订阅方电子邮件日志记录(预览版),则清单响应会包含 log_linked_dataset_query_user_email: true

如需详细了解您可以使用 API 针对清单执行的任务,请参阅 projects.locations.dataExchanges.listings 方法

从数据集创建清单

您还可以通过执行以下操作,从数据集创建清单:

  1. 在 Google Cloud 控制台中,前往 BigQuery 页面。

    前往 BigQuery

  2. 点击相应数据集以查看其详细信息。

  3. 依次点击共享 > 以清单形式发布

    系统会打开创建清单对话框。

  4. 选择要发布此清单的数据交换。数据交换必须与数据集位于同一区域。如需详细了解如何创建数据交换,请参阅创建数据交换并设置权限

  5. 共享数据集菜单中,选择现有数据集,或点击创建数据集以创建新数据集。选择要在数据交换中列出的数据集。该数据集必须与数据交换位于同一区域。创建清单后,无法更新此字段。

    当订阅方查看关联数据集的元数据时,系统会返回源数据集名称和包含该数据集的项目的 ID。

  6. 数据出站流量控制中,选择相应的数据出站流量选项。

    • 如需对共享数据集应用数据出站流量限制,但不对共享数据集的查询结果应用该限制,请选择禁止复制和导出共享数据
    • 如需对共享数据集和共享数据集的查询结果应用数据出站流量限制,请选择禁止复制和导出查询结果,这将会同时自动设置禁止复制和导出共享数据
    • 如需对共享数据集应用数据 API 复制和导出出站流量限制,请选择禁止通过 API 复制和导出表,这将会同时自动设置禁止复制和导出共享数据
  7. 清单详细信息部分的显示名称中,输入清单的名称。

  8. 输入以下可选详细信息:

    • 类别:最多选择两个最符合您的清单的类别。订阅方可以根据这些类别过滤清单

    • 数据亲和度:发布商用于发布数据的区域。订阅方可以通过从同一区域读取数据,最大限度地降低或避免 Pub/Sub 网络出站流量费用,此信息对订阅方非常有用。如需详细了解出站费用,请参阅数据传输费用

    • 图标:产品详情的图标。 支持 PNG 和 JPEG 文件格式。图标的文件大小必须小于 512 KiB,尺寸不得超过 512 x 512 像素。

    • 说明:有关清单的简要说明。订阅者可以根据说明搜索清单

    • 公开可检测性:在 BigQuery Sharing 目录中启用清单的公开可检测性。如果您启用了此选项,请向 allUsersallAuthenticatedUsers 授予 Analytics Hub Viewer 角色 (roles/analyticshub.viewer)。如需了解详情,请参阅为清单授予角色。如果交换已公开,则已继承清单详情权限,无需采取任何进一步操作。

      公开可检测的交换因权限继承而不能包含非公开清单,但非公开交换可以包含公开清单。如需创建公开清单,数据清单所在的项目必须具有关联的组织和结算账号。 如果您要创建与 Cloud Marketplace 集成的商业清单,我们建议将清单设为可公开检测到。

    • 订阅方电子邮件日志记录:保留订阅方用户的电子邮件,以便了解此列表的关联数据集的使用情况。电子邮件日志记录一旦启用并保存,此设置便无法修改。如需停用电子邮件日志记录,请删除清单并重新创建,而无需点击订阅方电子邮件日志记录切换开关(预览版)。

    • 文档 > Markdown:其他信息,例如任何相关文档的链接以及任何有助于订阅方使用您的主题的其他信息。

  9. 清单联系信息部分中,输入以下可选详细信息:

    • 主要联系人:输入用于清单的主要联系人的电子邮件 ID 或网址。

    • 申请访问权限联系人:输入登记表的电子邮件 ID 或网址,以便订阅方与您联系。

    • 提供商:展开提供商部分,并在以下字段中指定详细信息:

      • 提供方名称:主题提供方的名称。
      • 提供方的主要联系人:主题提供方的主要联系人的电子邮件 ID 或网址。

      订阅者可以根据数据提供商过滤清单。

    • 发布者:展开发布者部分,并在以下字段中指定详细信息:

      • 发布者名称:创建清单的发布者的名称。
      • 发布方主要联系人:主题发布方主要联系人的电子邮件 ID 或网址。
  10. 查看清单预览部分。

  11. 点击发布

为用户提供访问清单的权限

如果您想为用户提供访问非公开清单的权限,则必须为该清单的个人或组设置 IAM 政策。对于商业清单,您的数据交换必须公开。系统会在 Sharing 中为所有 Google Cloud 用户 (allAuthenticatedUsers) 显示公开数据交换中的清单。为了让用户能够浏览和请求访问商业清单,您必须向用户授予 Analytics Hub Viewer 角色。如需允许用户订阅商业清单,您必须明确向用户授予 Analytics Hub Subscriber 角色。对于与 Cloud Marketplace 集成的商业详情,Analytics Hub Subscriber 角色会根据 Cloud Marketplace 订单自动预配。

如果您希望让所有人(包括不使用 Google Cloud的用户)都能访问您的清单,则必须向 allUsers 授予 Analytics Hub Viewer 角色 (roles/analyticshub.viewer)。

要授予用户查看或订阅产品详情的权限,请按以下步骤操作:

控制台

  1. 前往 Sharing (Analytics Hub) 页面。

    前往 Sharing (Analytics Hub)

  2. 点击包含清单的数据交换名称。

  3. 点击您要为其添加订阅者的清单。

  4. 点击 设置权限

  5. 如需添加主账号,请点击 添加主账号

  6. 新建主账号字段中,根据清单类型添加以下详细信息:

    • 对于非公开清单,请输入要授予访问权限的身份的电子邮件 ID。

    • 对于公开清单,请添加 allAuthenticatedUsers

    • 对于可供所有人(包括非Google Cloud用户)检测到的公开清单,请添加 allUsers

  7. 对于选择角色,请将指针悬停在 Analytics Hub 上,然后根据清单类型选择以下角色之一:

    • 对于商业清单,请选择 Analytics Hub Viewer 角色。此角色允许用户查看清单和请求访问权限

    • 对于不公开或非商业的公开清单,请选择 Analytics Hub Subscriber 角色。此角色允许用户订阅清单

    如需了解详情,请参阅 Analytics Hub Subscriber 和 Viewer 角色

  8. 点击保存

API

  1. 使用 projects.locations.dataExchanges.listings.getIamPolicy 方法通过清单 getIamPolicy 方法读取现有政策。

    POST https://analyticshub.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/dataExchanges/DATAEXCHANGE_ID/listings/LISTING_ID:getIamPolicy
    

    替换以下内容:

    • PROJECT_ID:项目 ID,例如 my-project-1
    • LOCATION:包含清单的数据交换的位置。
    • DATAEXCHANGE_ID:数据交换 ID。
    • LISTING_ID:清单 ID。

    Sharing 会在响应中返回当前政策。

  2. 如需添加或移除成员及其关联的角色,请使用文本编辑器修改该政策。请按以下格式添加成员:

    • user:test-user@gmail.com
    • group:admins@example.com
    • serviceAccount:test123@example.domain.com
    • domain:example.domain.com

    例如,如需向 group:subscribers@example.com 授予 roles/analyticshub.subscriber 角色,请将以下绑定添加到政策中:

    {
     "members": [
       "group:subscribers@example.com"
     ],
     "role":"roles/analyticshub.subscriber"
    }
    
  3. 使用 projects.locations.dataExchanges.listings.setIamPolicy 方法写入更新后的政策。在请求正文中,提供上一步中写入的更新后 IAM 政策。

    POST https://analyticshub.googleapis.com/v1/projects/PROJECT_ID/location/LOCATION/dataExchanges/DATAEXCHANGE_ID/listings/LISTING_ID:setIamPolicy
    

    在请求正文中,提供清单详细信息。如果请求成功,则响应正文包含清单的详细信息。

如需详细了解您可以使用 API 针对清单执行的任务,请参阅 projects.locations.dataExchanges.listings 方法

为公开清单创建未经身份验证的网址

如需创建非经过身份验证的 Sharing 清单网址,以便非Google Cloud 用户也能查看,请执行以下操作:

  1. 前往 Sharing (Analytics Hub) 页面。

    前往 Sharing (Analytics Hub)

    此时会显示一个页面,其中列出了您可以访问的所有数据交换。

  2. 点击包含清单的数据交换名称。

  3. 点击显示名称即可查看清单详情。必须为相应清单启用公开可检测性

  4. 点击复制公开链接以生成未经身份验证的清单网址。确保此清单向 allUsers 授予 Analytics Hub Viewer 角色 (roles/analyticshub.viewer)。

创建清单管理员

如需允许用户管理清单,您必须创建 Sharing 清单管理员。如需创建清单管理员,您需要在清单级别向用户授予 Analytics Hub Publisher 或 Analytics Hub List Admin 角色。如需详细了解如何为清单授予这些角色,请参阅为清单授予角色

查看所有订阅

如需查看您的清单的所有当前订阅,请选择以下选项之一:

控制台

  1. 前往 Sharing (Analytics Hub) 页面。

    前往 Sharing (Analytics Hub)

  2. 点击要管理其订阅的清单所在的数据交换名称。

  3. 点击要列出其所有订阅者的清单。

  4. 如需查看清单的所有订阅者,请点击管理订阅

    管理订阅者

  5. 可选:您可以按订阅者详细信息过滤结果。

或者,如果您有权访问共享的数据集,则可以按照以下步骤列出订阅者:

  1. 转到 BigQuery 页面。

    转到 BigQuery

  2. 浏览器窗格中,展开您的项目并选择共享数据集。

  3. 共享列表中,选择管理订阅

SQL

以下示例使用 INFORMATION_SCHEMA.SCHEMATA_LINKS 视图列出 myproject 中位于 us 区域的共享数据集的所有关联数据集:

SELECT * FROM `myproject`.`region-us`.INFORMATION_SCHEMA.SCHEMATA_LINKS;

输出类似于以下内容:为简化输出,省略了某些列。

+----------------+-------------+----------------------------+------------------------------+--------------------+--------------------------------+
|  catalog_name  | schema_name | linked_schema_catalog_name | linked_schema_catalog_number | linked_schema_name | linked_schema_org_display_name |
+----------------+-------------+----------------------------+------------------------------+--------------------+--------------------------------+
| myproject      | myschema1   | subscriptionproject1       |                 974999999291 | subscriptionld1    | subscriptionorg                |
| myproject      | myschema2   | subscriptionproject2       |                 974999999292 | subscriptionld2    | subscriptionorg                |
| myproject      | myschema3   | subscriptionproject3       |                 974999999293 | subscriptionld3    | subscriptionorg                |
+----------------+-------------+----------------------------+------------------------------+--------------------+--------------------------------+

API

使用 projects.locations.dataExchanges.listings.listSubscriptions 方法

GET https://analyticshub.googleapis.com/v1/projects/PROJECT_ID/location/LOCATION/dataExchanges/DATAEXCHANGE_ID/listings/LISTING_ID:listSubscriptions

替换以下内容:

  • PROJECT_ID:您要订阅的列表的项目 ID。
  • LOCATION:您要订阅的清单所在的位置。
  • DATAEXCHANGE_ID:包含您要订阅的清单的数据交换 ID。
  • LISTING_ID:您要订阅的清单的 ID。

移除订阅

从清单中移除 2023 年 7 月 25 日之前创建的订阅后,关联的数据集会与共享数据集取消关联。订阅者仍然可以在其项目中看到这些数据集,但是这些数据集不再与共享的数据集关联。

如需从清单中移除 2023 年 7 月 25 日之前创建的订阅,请按以下步骤操作:

  1. 如需列出清单的所有订阅方,请按照查看所有订阅中的 Google Cloud 控制台说明执行操作。

  2. 如需从清单中移除订阅者,请点击 删除。如果要移除所有订阅,请点击移除所有订阅

  3. “移除订阅?”对话框中,输入 remove 以确认。

  4. 点击移除

如需移除 2023 年 7 月 25 日之后创建的订阅,请按以下步骤操作:

控制台

  1. 如需列出清单的所有订阅方,请按照查看所有订阅中的 Google Cloud 控制台说明执行操作。

  2. 点击订阅标签页。

  3. 如需从清单中移除订阅者,请选择要移除的订阅,然后点击 移除订阅

  4. “移除订阅?”对话框中,输入 remove 以确认。

  5. 点击移除

API

使用 projects.locations.subscriptions.revoke 方法

POST https://analyticshub.googleapis.com/v1/projects/PROJECT_ID/location/LOCATION/subscriptions/SUBSCRIPTION_ID:revoke

替换以下内容:

  • PROJECT_ID:要移除的订阅的项目 ID。
  • LOCATION:要移除的订阅的位置。
  • SUBSCRIPTION:要移除的订阅的 ID。

更新清单

要更新清单,请按照下列步骤操作:

控制台

  1. 前往 Sharing (Analytics Hub) 页面。

    前往 Sharing (Analytics Hub)

  2. 点击包含清单的数据交换名称。

  3. 点击要更新的清单。

  4. 点击 修改清单

  5. 修改字段中的值。您可以修改除清单的来源数据集之外的所有值。

  6. 可选:

    • 如果您启用了公开可检测性,请向 allUsersallAuthenticatedUsers 授予 Analytics Hub Viewer 角色 (roles/analyticshub.viewer)。如需了解详情,请参阅为清单授予角色
    • 如果您停用公开可检测性,请从 allUsersallAuthenticatedUsers 中移除 Analytics Hub Viewer 角色。公开交换不能包含非公开清单,但非公开交换可以包含公开清单。
    • 电子邮件日志记录一旦启用并保存,此设置便无法修改。如需停用电子邮件日志记录,请删除清单并重新创建,而无需点击订阅方电子邮件日志记录切换开关(预览版)。
  7. 要预览更改,请点击预览

  8. 要保存更改,请点击保存

API

使用 projects.locations.dataExchanges.listings.patch 方法

PATCH https://analyticshub.googleapis.com/v1/projects/PROJECT_ID/location/LOCATION/dataExchanges/DATAEXCHANGE_ID/listings/LISTING_ID?updateMask=UPDATEMASK

UPDATEMASK 替换为您要更新的字段列表。如需更新多个值,请使用英文逗号分隔列表。在请求正文中,指定更新后的值。

在请求正文中,为以下字段指定更新后的值:

  • 显示名称
  • 说明
  • 类别
  • 文档
  • 图标
  • 主要联系人
  • 公开可检测性
  • 订阅方电子邮件日志记录(预览版

如需详细了解这些字段,请参阅资源:清单

如需详细了解您可以使用 API 针对清单执行的任务,请参阅 projects.locations.dataExchanges.listings 方法

删除清单

删除清单后,订阅者将无法再查看该清单。删除清单还会从订阅者的项目中删除所有关联的数据集(移除所有订阅)。

删除清单的操作无法撤消。要删除清单,请按以下步骤操作:

控制台

  1. 前往 Sharing (Analytics Hub) 页面。

    前往 Sharing (Analytics Hub)

  2. 点击包含清单的数据交换名称。

  3. 点击要删除的清单。

  4. 点击 删除

  5. “是否要删除清单?”对话框中,输入 delete 以确认删除。

  6. 点击删除

API

使用 projects.locations.dataExchanges.listings.delete 方法

DELETE https://analyticshub.googleapis.com/v1/projects/PROJECT_ID/location/LOCATION/dataExchanges/DATAEXCHANGE_ID/listings/LISTING_ID

如需详细了解您可以使用 API 针对清单执行的任务,请参阅 projects.locations.dataExchanges.listings 方法

为了提高您的清单在 Sharing 目录中的可见性和认知度,您可以在精选部分中显示清单。精选清单受《 Google Cloud Partner Advantage 协议》的约束。

有兴趣将其清单列入 Sharing 目录精选部分的合作伙伴必须满足以下条件:

如需申请将您的清单列入精选部分,请填写并提交登记表。如要申请将您的清单从该部分中移除,请提交相同的登记表

后续步骤