管理 BigQuery 共用資料交換

BigQuery sharing 管理員可以在 BigQuery sharing (舊稱 Analytics Hub) 中執行下列操作:

  • 建立、更新、查看、分享及刪除資料交換
  • 建立、更新、刪除及共用房源資訊。
  • 管理 BigQuery sharing 管理員、清單管理員、發布者、訂閱者和檢視者。

根據預設,資料交換庫是私人的,只有可存取該交換庫的使用者或群組才能查看或訂閱資料。不過,如要讓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

以下是具有啟用 Analytics Hub API 所需權限的預先定義 IAM 角色:

如要啟用 Analytics Hub API,請選取下列其中一個選項:

控制台

前往 Analytics Hub API 頁面,為專案啟用 Analytics Hub API。 Google Cloud

啟用 Analytics Hub API

gcloud

執行 gcloud services enable 指令:

gcloud services enable analyticshub.googleapis.com

必要的角色

如要取得管理資料交易所所需的權限,請要求管理員授予您專案的Analytics Hub 管理員角色 (roles/analyticshub.admin) IAM 角色。如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和組織的存取權」。

您或許也能透過自訂角色或其他預先定義的角色,取得必要權限。

建立資料交換庫

如要建立資料交換庫,請按照下列步驟操作:

控制台

  1. 前往「Sharing (Analytics Hub)」頁面。

    前往「共用」(Analytics Hub)

  2. 按一下 「建立交易」

  3. 在「建立交易」對話方塊中,選取資料交易的「專案」和「區域」。資料交換建立後,就無法更新專案和區域。

  4. 在「顯示名稱」部分,輸入資料交換的名稱。

  5. 選填:在下列欄位中輸入值:

    • 主要聯絡人:輸入資料交換的主要聯絡人網址或電子郵件地址。
    • 說明:輸入資料交換的說明。
  6. 如要記錄在連結資料集上執行工作和查詢的所有使用者主體 ID,請按一下「訂閱端電子郵件記錄」切換鈕。啟用這個選項後,資料交換庫中所有日後的清單項目都會啟用訂閱者電子郵件記錄功能。記錄的資料會顯示在INFORMATION_SCHEMA.SHARED_DATASET_USAGE 檢視畫面job_principal_subject 欄位中。

  7. 如要開啟公開可偵測性,請按一下「公開可偵測性」切換按鈕。交換庫公開後,目錄中就會顯示並可搜尋交換庫中的所有項目。啟用公開探索功能後,您必須設定交換權限。由於權限會沿用,系統預設會為所有清單項目設定與交易所相同的公開搜尋類型。因此,公開交換庫無法包含私人清單項目,但私人交換庫可以包含公開清單項目 (例如,您可以在個別清單項目層級設定公開可探索類型)。您要在其中建立資料交換的專案,必須有相關聯的機構和帳單帳戶。

  8. 按一下「建立交易」

  9. 選用步驟:在「Exchange Permissions」(Exchange 權限) 部分執行下列步驟:

    1. 在下列欄位中輸入電子郵件地址,即可授予 Identity and Access Management (IAM) 角色:

    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。

在要求主體中,提供資料交換詳細資料

如果要求成功,回應主體會包含資料交換的詳細資料。

如果您使用 logLinkedDatasetQueryUserEmail 欄位啟用訂閱者電子郵件記錄功能,資料交換庫回應會包含 log_linked_dataset_query_user_email: true。記錄的資料會顯示在 INFORMATION_SCHEMA.SHARED_DATASET_USAGE 檢視畫面job_principal_subject 欄位中。

如要進一步瞭解如何使用 API 對資料交易所執行工作,請參閱 projects.locations.dataExchanges 方法

更新資料交換

如要更新資料交換庫,請按照下列步驟操作:

控制台

  1. 前往「Sharing (Analytics Hub)」頁面。

    前往「共用」(Analytics Hub)

  2. 在資料交易所清單中,按一下要更新的資料交易所。

  3. 前往「詳細資料」分頁。

  4. 按一下「編輯兌換」圖示

  5. 在「編輯交易所」對話方塊中,更新下列欄位:

    • 顯示名稱
    • 主要聯絡人
    • 說明
    • 開放搜尋
      • 如要啟用公開探索功能,請將 Analytics Hub 檢視者角色 (roles/analyticshub.viewer) 授予 allUsersallAuthenticatedUsers
      • 如要停用公開探索功能,請從 allUsersallAuthenticatedUsers 移除 Analytics Hub 檢視者角色 (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

在要求主體中,指定下列欄位的更新值:

  • displayName
  • description
  • primaryContact
  • documentation
  • icon
  • discoveryType
  • logLinkedDatasetQueryUserEmail

如要瞭解這些欄位的詳細資訊,請參閱「資源:DataExchange」。

如要進一步瞭解如何使用 API 對資料交易所執行工作,請參閱 projects.locations.dataExchanges 方法

查看資料交換庫

如要查看您有權存取的專案或機構資料交換庫,請按照下列步驟操作:

控制台

  1. 前往「Sharing (Analytics Hub)」頁面。

    前往「共用」(Analytics Hub)

  2. 查看 Google Cloud 專案中的資料交換清單。如果您擁有 resourcemanager.organizations.get 權限,也可以查看貴 Google Cloud 機構內資料交換庫的清單。

API

如要查看專案中的資料交換,請使用 projects.locations.dataExchanges.list 方法

GET https://analyticshub.googleapis.com/v1/projects/PROJECT_ID/location/LOCATION/dataExchanges

更改下列內容:

  • PROJECT_ID:專案 ID。
  • LOCATION:要列出現有資料交換的位置。

如要查看貴機構的資料交換活動,請使用 organizations.locations.dataExchanges.list 方法

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

更改下列內容:

  • ORGANIZATION_ID:組織 ID。詳情請參閱「取得機構 ID」。
  • LOCATION:要列出現有資料交換的位置。

共用資料交換庫

如果 BigQuery sharing 發布者所屬的機構與資料交換庫所屬的機構不同,發布者就無法在「共用」中查看資料交換庫。您必須與發布者共用資料交換庫的連結。

  1. 前往「Sharing (Analytics Hub)」頁面。

    前往「共用」(Analytics Hub)

  2. 在資料交換清單中,按一下「更多選項」圖示

  3. 按一下「複製共用連結」

授予使用者資料交換存取權

如要授予使用者資料交換存取權,您必須為該資料交換設定 IAM 政策。如要瞭解預先定義的 IAM 使用者角色,請參閱「BigQuery 共用 IAM 角色」。請按照以下步驟操作:

控制台

  1. 前往 Google Cloud 控制台的「Sharing (Analytics Hub)」(共用 (Analytics Hub)) 頁面。

    前往「共用」(Analytics Hub)

  2. 按一下要設定權限的資料交換名稱。

  3. 前往「詳細資料」分頁。

  4. 按一下 「設定權限」

  5. 如要新增主體,請按一下 「新增主體」

  6. 在「New principals」(新增主體) 欄位中,新增要授予存取權的電子郵件 ID。您也可以使用 allUsers 將資源設為公開,讓網際網路上的所有人都能存取,或使用 allAuthenticatedUsers 將資源設為僅供登入 Google 的使用者存取。

  7. 在「Select a role」(選取角色) 選單中選取「Analytics Hub」,然後選取下列其中一個 Identity and Access Management (IAM) 角色:

    • Analytics Hub 管理員
    • Analytics Hub 清單管理員
    • Analytics Hub 發布者
    • Analytics Hub 訂閱者
    • Analytics Hub 訂閱項目擁有者
    • Analytics Hub 檢視者
  8. 按一下 [儲存]

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. 如要新增或移除成員及其相關聯的身分與存取權管理 (IAM) 角色,請使用文字編輯器編輯政策。請使用下列格式新增成員:

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

    舉例來說,如要將 roles/analyticshub.subscriber 角色授予 group:subscribers@example.com,請在政策中新增下列繫結:

    {
     "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
    

    在要求主體中提供房源詳細資料。如果要求成功,回應主體會包含房源詳細資料。

建立 BigQuery 共用管理員

如要管理資料交換,您必須授予使用者專案或資料交換層級的 Analytics Hub 管理員角色 (roles/analyticshub.admin),藉此建立資料交換管理員。

如要讓管理員管理專案中的所有資料交換,請授予該專案的 Analytics Hub 管理員角色

如要讓管理員管理特定資料交換,請授予該資料交換的 Analytics Hub 管理員角色

公開資料交換庫

根據預設,資料交換庫為私有,只有可存取該交換庫的使用者或群組,才能查看或訂閱其刊登內容。不過,您可以選擇公開資料交換。公開資料交易所中的項目可供Google Cloud 使用者 (allAuthenticatedUsers)探索及訂閱。

如要公開資料交換庫,請按照下列步驟操作:

  1. 如要讓 allAuthenticatedUsers 查看商家資訊,您必須在資料交換層級授予使用者 Analytics Hub 檢視者角色 (roles/analyticshub.viewer)。

  2. 如要讓使用者allAuthenticatedUsers 訂閱商家資訊,您必須在資料交換層級授予使用者 Analytics Hub 訂閱者角色 (roles/analyticshub.subscriber)。

  3. 建立更新資料交換時,請開啟公開探索功能。公開資料交換時,請指定適當的權限。

刪除資料交換

刪除資料交易所時,系統也會一併刪除其中的所有房源資訊。 不過,系統不會刪除共用資料集和連結的資料集。 此外,刪除專案時,不會一併刪除其中的資料交換。 您必須先刪除這些資料交換,才能刪除專案。 資料交換刪除後就無法復原。

刪除資料交換前,請根據資料交換的設定執行下列步驟:

如要刪除資料交換庫,請按照下列步驟操作:

控制台

  1. 前往「Sharing (Analytics Hub)」頁面。

    前往「共用」(Analytics Hub)

  2. 在資料交換清單中,按一下要刪除的資料交換。

  3. 前往「詳細資料」分頁。

  4. 按一下 「刪除兌換項目」

  5. 在「要刪除對話嗎?」對話方塊中輸入「刪除」,確認要刪除對話。

  6. 按一下「Delete」(刪除)

API

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

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

如要進一步瞭解如何使用 API 對資料交易所執行工作,請參閱 projects.locations.dataExchanges 方法

後續步驟