管理清单

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

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

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

准备工作

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

所需权限

要启用 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,请执行以下操作:

控制台

前往 Google Cloud 项目的 Analytics Hub API 页面,然后启用该 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. 转到 Analytics Hub 页面。

    转到 Analytics Hub

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

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

  3. 点击 创建清单

  4. 创建清单页面上的显示名称中,输入清单名称。

  5. 如果您要创建商业清单,请在申请访问权限的联系方式字段中填写登记表的电子邮件地址或网址,以便订阅者与您联系。或者,您也可以按照以下步骤创建标准商品详情,然后按照说明将商品详情发布到 Cloud Marketplace,以创建集成了 Cloud Marketplace 的商品详情。

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

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

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

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

      • 提供商名称:数据集提供商的名称。
      • 提供商的主要联系人:数据集提供商的主要联系人的电子邮件地址或网址。

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

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

      • 发布者名称:创建清单的发布者的名称。
      • 发布者主要联系人:数据集发布者主要联系人的电子邮件地址或网址。
    • 图标:产品详情的图标。 支持 PNG 和 JPEG 文件格式。图标的文件大小必须小于 512 KiB,尺寸不得超过 512 x 512 像素。

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

  7. 源数据集中,选择要在数据交换中列出的数据集。源数据集必须与数据交换位于同一区域。创建清单后,无法更新此字段。

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

    • 如需对共享数据集应用数据出站流量限制,但不对共享数据集的查询结果应用该限制,请选择禁止复制和导出共享数据
    • 如需对共享数据集和共享数据集的查询结果应用数据出站流量限制,请选择禁止复制和导出查询结果,这将会同时自动设置禁止复制和导出共享数据
    • 如需对共享数据集应用数据 API 复制和导出出站流量限制,请选择禁止通过 API 复制和导出表,这将会同时自动设置禁止复制和导出共享数据
  9. 可选:在商品详情部分,点击公开可检测性切换开关以启用公开可检测性。您必须向 allUsersallAuthenticatedUsers 授予 Analytics Hub Viewer 角色 (roles/analyticshub.viewer)。如需了解详情,请参阅为清单授予角色。如果交换已公开,则已继承清单详情权限,无需采取任何进一步操作。

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

  10. 可选:在商家信息详情部分,点击订阅方电子邮件记录切换开关 (Preview),以记录对关联数据集执行作业和查询的用户的所有主要标识符

  11. 可选:在文档 > Markdown 部分中,您可以输入其他信息,例如您可以在数据集上运行的示例查询、任何相关链接文档以及其他任何有助于订阅者使用数据集的信息。

  12. 点击保存

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:数据交换的位置。如需详细了解有哪些位置支持分享功能,请参阅支持的区域
  • 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. 数据出站流量控制中,选择相应的数据出站流量选项。

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

    显示名称是此清单的名称,为必填字段;其他字段为可选字段。

  7. 可选:点击公开可检测性切换开关以启用公开可检测性。您必须向 allUsersallAuthenticatedUsers 授予 Analytics Hub Viewer 角色 (roles/analyticshub.viewer)。如需了解详情,请参阅为清单授予角色。如果交换已公开,则已继承清单详情权限,无需采取任何进一步操作。

    公开可检测的交换因权限继承而不能包含非公开清单,但非公开交换可以包含公开清单。如需创建公开清单,数据清单所在的项目必须具有关联的组织和结算账号。

  8. 可选:在文档 > Markdown 部分中,您可以输入其他信息,例如您可以在数据集上运行的示例查询、任何相关链接文档以及其他任何有助于订阅者使用数据集的信息。

  9. 点击发布

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

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

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

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

控制台

  1. 转到 Analytics Hub 页面。

    转到 Analytics Hub

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

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

  4. 点击 设置权限

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

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

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

    • 对于公开清单,请添加 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。

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

  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 方法

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

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

  1. 转到 Analytics Hub 页面。

    转到 Analytics Hub

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

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

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

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

创建清单管理员

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

查看所有订阅

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

控制台

  1. 转到 Analytics Hub 页面。

    转到 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. 转到 Analytics Hub 页面。

    转到 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. 转到 Analytics Hub 页面。

    转到 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 方法

为了提高您的清单在分享目录中的曝光度和知名度,您可以将产品显示在精选部分。精选商品详情受 Google Cloud 《合作伙伴优势协议》的约束。

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

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

后续步骤