管理 BigQuery 共享中的数据交换

作为 Analytics Hub 管理员,您可以执行以下任务:

  • 创建、更新、查看、共享和删除数据交换
  • 创建、更新、删除和共享清单。
  • 管理 Analytics Hub 管理员,清单管理员、发布者、订阅者和查看者。

默认情况下,数据交换是不公开的,只有有权访问该交换的用户或群组才能查看或订阅数据。但是,如果您希望清单能够由 Google Cloud 用户 (allAuthenticatedUsers)发现订阅,您便可以请求公开您的数据交换

准备工作

如需开始使用 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 Admin 角色 (roles/analyticshub.admin)。如需了解详情,请参阅 Analytics Hub Admin 角色。如需了解如何向其他用户授予此角色,请参阅创建 Analytics Hub 管理员

创建数据交换

如需创建数据交换,请按以下步骤操作:

控制台

  1. 转到 Analytics Hub 页面。

    转到 Analytics Hub

  2. 点击 创建交换

  3. 创建交换对话框中,选择数据交换的项目区域。创建数据交换后,您便无法更新项目和区域。

  4. 显示名称部分,输入数据交换的名称。

  5. 可选:在以下字段中输入值:

    • 主要联系人:输入数据交换的主要联系人的网址或电子邮件地址。
    • 说明:输入数据交换的说明。
  6. 如需记录对关联数据集执行作业和查询的用户的所有主要标识符,请点击订阅方电子邮件日志记录切换开关(预览)。启用此选项后,数据交换下的所有商品详情都会启用订阅方电子邮件日志记录。

  7. 如需开启公开可检测性,请点击公开可检测性切换开关。可公开检测到交换后,交换中的所有清单都会显示并可在目录中进行搜索。如果您启用公开可检测性,则必须配置交换权限。由于权限继承,默认情况下,所有清单都将设置成使用交换的同一公开可检测性类型。因此,公开交换不能包含非公开清单,但非公开交换可以包含公开清单(例如,您可以在单个清单级别设置公开可检测性类型)。您要创建数据交换的项目必须具有关联的组织和结算账号。

  8. 点击创建交换

  9. 可选:在交换权限部分,执行以下步骤:

    1. 在以下字段中输入电子邮件地址,以授予 Analytics Hub 用户角色:

    2. 如需保存权限,请点击设置权限

  10. 如果您没有为数据交换设置权限,请点击跳过

API

使用 projects.locations.dataExchanges.create 方法

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

替换以下内容:

  • PROJECT_ID:要在其中创建数据交换的项目的 ID。
  • LOCATION:数据交换的位置。如需详细了解有哪些位置支持 BigQuery Sharing(以前称为 Analytics Hub),请参阅支持的区域
  • DATAEXCHANGE_ID:您的数据交换的 ID。

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

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

更新数据交换

如需更新数据交换,请按以下步骤操作:

控制台

  1. 转到 Analytics Hub 页面。

    转到 Analytics Hub

  2. 从数据交换清单中,点击要更新的数据交换。

  3. 点击详细信息标签页。

  4. 点击 修改交换

  5. 修改交换对话框中,更新以下字段:

    • 显示名
    • 主要联系人
    • 说明
    • 公开可检测性
      • 如果您启用了公开可检测性,请向 allUsersallAuthenticatedUsers 授予 Analytics Hub Viewer 角色 (roles/analyticshub.viewer)。
      • 如果您停用公开可检测性,请从 allUsersallAuthenticatedUsers 中移除 Analytics Hub Viewer 角色 (roles/analyticshub.viewer)。公开交换不能包含非公开清单,但非公开交换可以包含公开清单。
    • 订阅者电子邮件日志记录预览版

  6. 点击保存

API

使用 projects.locations.dataExchanges.patch 方法

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

UPDATEMASK 替换为您要更新的字段列表。如需更新多个值,请使用英文逗号分隔列表(比方说,更新数据交换的显示名和主要联系人),请输入 displayName,primaryContact

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

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

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

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

查看数据交换

如需查看组织中您有权访问的所有数据交换,请按照以下步骤操作:

控制台

  1. 转到 Analytics Hub 页面。

    转到 Analytics Hub

  2. 查看 Google Cloud 组织中的数据交换列表。

API

使用 organizations.locations.dataExchanges.list 方法

GET https://analyticshub.googleapis.com/v1/organizations/ORGANIZATION_ID/location/LOCATION/dataExchanges

替换以下内容:

  • ORGANIZATION_ID:组织 ID。如需了解详情,请参阅获取组织 ID
  • LOCATION:要为其列出现有数据交换的位置。

共享数据交换

如果 Analytics Hub 发布者与包含数据交换的组织属于不同组织,则发布者无法在“共享”中查看数据交换。您必须与发布者共享数据交换的链接。

  1. 转到 Analytics Hub 页面。

    转到 Analytics Hub

  2. 从数据交换列表中,点击 更多选项

  3. 点击 复制共享链接

向用户授予对数据交换的访问权限

如需向用户授予访问数据交换的权限,您必须为该数据交换设置 IAM 政策。如需了解预定义的 IAM 用户角色,请参阅 Analytics Hub 用户角色。为此,请按以下步骤操作:

控制台

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

    转到 Analytics Hub

  2. 点击您要设置权限的数据交换名称。

  3. 点击 设置权限

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

  5. 新建主账号字段中,添加要授予其访问权限的电子邮件。

  6. 对于选择角色,请将指针悬停在 Analytics Hub 上,然后选择以下 Identity and Access Management (IAM) 角色之一:

    • Analytics Hub Admin
    • Analytics Hub Publisher
    • Analytics Hub Listing Admin
    • Analytics Hub Subscriber
    • Analytics Hub Viewer
  7. 点击保存

API

  1. 使用 projects.locations.dataExchanges.getIamPolicy 方法通过列表 getIamPolicy 方法读取现有政策:

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

    替换以下内容:

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

    BigQuery Sharing(以前称为 Analytics Hub)会返回当前政策。

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

    • 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.setIamPolicy 方法写入更新后的政策。在请求正文中,提供上一步中写入的更新后 IAM 政策。

    POST https://analyticshub.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/dataExchanges/DATAEXCHANGE_ID:setIamPolicy
    

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

创建 Analytics Hub 管理员

如需管理数据交换,您必须创建 Analytics Hub 管理员。如需创建交换管理员,您需要在项目或数据交换级别向用户授予 Analytics Hub Admin 角色 (roles/analyticshub.admin)

如果您希望管理员管理项目中的所有数据交换,请授予项目的 Analytics Hub Admin 角色。如果您希望管理员管理特定数据交换,请授予该数据交换的 Analytics Hub Admin 角色

公开数据交换

默认情况下,数据交换是不公开的,只有有权访问该交换的用户或群组才能查看或订阅其清单。但是,您可以选择公开数据交换。Google Cloud 用户 (allAuthenticatedUsers) 可以发现和订阅公共数据交换中的清单。

如需公开数据交换,请按以下步骤操作:

  1. 如需让 allAuthenticatedUsers 查看清单,您必须在数据交换级层授予他们 Analytics Hub Viewer 角色

  2. 如需让 allAuthenticatedUsers 订阅清单,您必须在数据交换级层授予他们 Analytics Hub Subscriber 角色

  3. 创建更新数据交换时,开启公开可检测性。公开数据交换时,请指定适当的权限。

删除数据交换

删除数据交换后,其中的所有清单也会被删除。 但是,共享数据集和关联的数据集不会被删除。此外,项目被删除后,项目内的数据交换不会被删除。您需要先删除这些数据交换,然后再删除项目。删除数据交换后,此操作无法撤消。

要删除数据交换,请按以下步骤操作:

控制台

  1. 转到 Analytics Hub 页面。

    转到 Analytics Hub

  2. 从数据交换列表中,点击要删除的数据交换。

  3. 点击详细信息标签页。

  4. 点击 删除交换

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

  6. 点击删除

API

使用 projects.locations.dataExchanges.delete 方法

DELETE https://analyticshub.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/dataExchanges/DATAEXCHANGE_ID

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

后续步骤