使用集合让一切井井有条 根据您的偏好保存内容并对其进行分类。

管理清单

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

  • 在您拥有发布权限的数据交换中创建清单。
  • 更新、删除和共享清单。
  • 管理您的 Analytics Hub 清单的不同角色,例如清单管理员、订阅者和查看者。
  • 查看订阅了您的清单的所有订阅者。
  • 从清单中移除订阅者。

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

  • 公开清单。它可被 Google Cloud 用户 (allAuthenticatedUsers) 发现订阅。公开数据交换中的清单是公开清单。这些清单可以是对免费公共数据集或商业数据集的引用。如果此清单属于商业数据集,则订阅者可以请求访问此清单,并且数据提供商会联系这些订阅者。

  • 非公开清单。可直接与个人或群组共享。例如,不公开清单可以引用您与组织内的其他内部团队共享的营销指标数据集。虽然您可以允许 allAuthenticatedUsers 订阅您的清单,但清单将保持不公开状态,并且不会在 Analytics Hub 页面显示为公开清单。如需与用户共享此类清单,请将清单的网址提供给他们。如需让不公开清单可被发现,您必须公开您的数据交换

准备工作

要开始使用 Analytics Hub,您需要在 Google Cloud 项目中启用 Analytics Hub API。

所需权限

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

  • serviceUsage.services.get/list 用于在 Cloud Console 中查看 API
  • serviceUsage.services.enable(用于启用 API)

以下预定义的 IAM 角色均包含启用 Analytics Hub API 所需的权限:

  • roles/editor
  • roles/owner
  • roles/serviceusage.serviceUsageAdmin

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

启用 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.link 权限。以下 BigQuery 预定义角色包含 bigquery.datasets.link 权限。

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

如需查看组织中的项目之间您有权访问的所有数据交换,您必须拥有 resourcemanager.organizations.get 权限。以下 BigQuery 预定义的角色可提供此权限:

  • roles/browser

查看数据交换

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

创建清单

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

您不应为使用客户管理的加密密钥的数据集创建清单,因为订阅者将无法获取访问该数据集所需的 Cloud KMS 密钥。相反,我们建议将使用客户管理的加密密钥的数据集复制到使用 Google 管理的加密密钥创建的数据集中,然后根据复制的数据集创建清单。另一种方案是使用 Google 管理的加密密钥在数据集中创建具体化视图,该加密密钥使用客户管理的加密密钥引用表。

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

控制台

  1. 在 Google Cloud Console 中,转到 Analytics Hub 页面。

    转到 Analytics Hub

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

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

  3. 点击 创建清单

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

  5. 如果您要创建商业数据集,则必须填写申请访问权限联系人字段。您必须输入登记表的电子邮件地址或网址,以便订阅者与您联系。

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

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

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

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

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

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

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

      • 发布者名称:创建清单的发布者的名称。
      • 发布者主要联系人:数据集发布者主要联系人的电子邮件地址或网址。
    • 图标:产品详情的图标。

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

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

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

  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:数据交换的位置。如需详细了解有哪些位置支持 Analytics Hub,请参阅支持的区域
  • DATAEXCHANGE_ID:数据交换 ID。
  • LISTING_ID:清单 ID。

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

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

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

如果您想为用户提供访问非公开清单的权限,则必须为该清单的个人或组设置 IAM 政策。对于商业清单,您的数据交换必须公开。公开数据交换中的清单会显示在所有Google Cloud 用户 (allAuthenticatedUsers) 的 Analytics Hub 中。为了让用户能够请求访问商业清单,您必须向用户授予 Analytics Hub Viewer 角色

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

控制台

  1. 在 Google Cloud Console 中,转到 Analytics Hub 页面。

    转到 Analytics Hub

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

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

  4. 点击 设置权限

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

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

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

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

  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。

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

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

创建清单管理员

如需允许用户管理清单,您必须创建 Analytics Hub 清单管理员。如需创建清单管理员,您需要在清单级别向用户授予 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                |
+----------------+-------------+----------------------------+------------------------------+--------------------+--------------------------------+

移除订阅

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

如需移除订阅,请按以下步骤操作:

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

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

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

  4. 点击移除

更新清单

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

控制台

  1. 在 Google Cloud Console 中,转到 Analytics Hub 页面。

    转到 Analytics Hub

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

  3. 点击要更新的清单。

  4. 点击 修改清单

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

  6. 要预览更改,请点击预览

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

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. 在 Google Cloud Console 中,转到 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 方法

后续步骤