管理清单

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

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

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

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

  • 非公开清单。可直接与个人或群组共享。例如,不公开清单可以引用您与组织内的其他内部团队共享的营销指标数据集。

准备工作

要开始使用 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 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)

创建清单

清单是对发布者在数据交换中列出的共享数据集的引用。如需了解详情,请参阅创建数据集

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

控制台

  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/v1beta1/projects/PROJECT_ID/location/LOCATION/dataExchanges/DATAEXCHANGE_ID/listings?listingId=LISTING_ID

替换以下内容:

  • PROJECT_ID:包含要在其中创建清单的数据交换的项目 ID。
  • LOCATION:数据交换的位置。您可以指定 USEU。如需详细了解支持 Analytics Hub 的位置,请参阅位置
  • DATAEXCHANGE_ID:数据交换 ID。
  • LISTING_ID:清单 ID。

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

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

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

如果您想为用户提供访问非公开清单的权限,则必须为该清单的个人或组设置 IAM 政策。对于商业清单,您的数据交换必须公开。公开数据交换中的清单会显示在所有 Google Cloud 用户(allauthenticated 用户)的 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/v1beta1/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/v1beta1/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. 在 Google Cloud Console 中,转到 Analytics Hub 页面。

    转到 Analytics Hub

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

  3. 点击要更新的清单。

  4. 点击 修改清单

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

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

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

API

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

PATCH https://analyticshub.googleapis.com/v1beta1/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/v1beta1/projects/PROJECT_ID/location/LOCATION/dataExchanges/DATAEXCHANGE_ID/listings/LISTING_ID

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

后续步骤