啟用 BigQuery 資料移轉服務

如要使用 BigQuery 資料移轉服務,您必須以專案擁有者的身分完成下列步驟:

  • 建立專案並啟用 BigQuery API。
  • 啟用 BigQuery 資料移轉服務。

如要進一步瞭解身分與存取權管理 (IAM) 角色,請參閱 IAM 說明文件中的「瞭解角色」一文。

建立專案並啟用 BigQuery API

使用 BigQuery 資料移轉服務之前,您必須先建立專案,在大多數情況下,還必須啟用該專案的計費功能。您可以在現有專案使用 BigQuery 資料移轉服務,或建立一個新專案。若您使用現有的專案,可能還需啟用 BigQuery API。

如何建立專案並啟用 BigQuery API:

  1. In the Google Cloud console, go to the project selector page.

    Go to project selector

  2. Select or create a Google Cloud project.

  3. 為專案啟用計費功能,以便進行所有轉移作業。免費轉帳的費用為 $0 美元。

    即使您從多個來源移轉資料,也只需要為每個專案啟用計費功能一次。資料移轉後,您必須啟用帳單功能,才能在 BigQuery 中查詢資料。

    瞭解如何確認專案已啟用計費功能

  4. 新專案會自動啟用 BigQuery。如要在現有專案中啟用 BigQuery,請啟用 BigQuery API。

    啟用 BigQuery API

啟用 BigQuery 資料移轉服務

建立移轉之前,您必須先啟用 BigQuery 資料移轉服務。如要啟用 BigQuery 資料移轉服務,您必須取得專案的擁有者角色。

如何啟用 BigQuery 資料移轉服務:

  1. 在 API 程式庫中開啟 BigQuery Data Transfer API 頁面。

  2. 在下拉式選單中選取適當的專案。

  3. 按一下 [ENABLE] (啟用) 按鈕。

    啟用 Data Transfer API

服務代理

BigQuery 資料移轉服務會使用服務代理程式存取及管理您的資源。包括但不限於下列資源:

  • 擷取服務帳戶的存取權杖,以便在授權資料移轉時使用。
  • 將通知發布至提供的 Pub/Sub 主題 (如果已啟用)。
  • 啟動 BigQuery 工作。
  • 從提供的 Pub/Sub 訂閱項目擷取事件,以便進行 Cloud Storage 事件驅動轉移

啟用 BigQuery 資料移轉服務並首次使用 API 後,系統會自動為您建立服務代理。建立服務代理時,Google 會自動授予預先定義的服務代理角色

跨專案服務帳戶授權

如果您使用服務帳戶授權資料移轉作業,但該服務帳戶來自不同的專案 (與已啟用 BigQuery 資料移轉服務的專案不同),則必須使用下列 Google Cloud CLI 指令,將 roles/iam.serviceAccountTokenCreator 角色授予服務代理:

gcloud iam service-accounts add-iam-policy-binding service_account \
--member serviceAccount:service-project_number@gcp-sa-bigquerydatatransfer.iam.gserviceaccount.com \
--role roles/iam.serviceAccountTokenCreator

其中:

  • service_account 是用於授權資料移轉作業的跨專案服務帳戶。
  • project_number 是啟用 BigQuery 資料移轉服務的專案編號。

如要進一步瞭解跨專案資源設定,請參閱 Identity and Access Management 服務帳戶冒用身分的說明文件,瞭解如何設定不同專案中的資源

手動建立服務代理

如果您想在與 API 互動前觸發服務代理建立作業 (例如,如果您需要為服務代理授予額外角色),可以使用下列任一方法:

當您手動觸發服務代理人建立作業時,Google 不會自動授予預先定義的服務代理人角色。您必須使用下列 Google Cloud CLI 指令,手動授予服務代理人預先定義的角色:

gcloud projects add-iam-policy-binding project_number \
--member serviceAccount:service-project_number@gcp-sa-bigquerydatatransfer.iam.gserviceaccount.com \
--role roles/bigquerydatatransfer.serviceAgent

其中:

  • project_number 是啟用 BigQuery 資料移轉服務的專案編號。

授予 bigquery.admin 存取權

建議您將 bigquery.admin 預先定義的 IAM 角色授予建立 BigQuery 資料移轉服務移轉作業的使用者。bigquery.admin 角色包含執行最常見工作所需的 IAM 權限。bigquery.admin 角色具備下列 BigQuery 資料移轉服務權限:

  • BigQuery 資料移轉服務權限:
    • bigquery.transfers.update
    • bigquery.transfers.get
  • BigQuery 權限:
    • bigquery.datasets.get
    • bigquery.datasets.update
    • bigquery.jobs.create

在某些情況下,不同資料來源可能需要不同的必要權限。如需具體的 IAM 資訊,請參閱各資料來源移轉指南中的「必要權限」一節。例如,請參閱 Amazon S3 移轉權限Cloud Storage 移轉權限

如要授予 bigquery.admin 角色:

主控台

  1. 在 Google Cloud 控制台中開啟「IAM」頁面

    開啟「IAM」頁面

  2. 按一下 [Select a project] (選取專案)

  3. 選取專案並點選 [Open] (開啟)

  4. 按一下 [Add] (新增),將新成員加入專案並設定其權限。

  5. 在「Add members」(新增成員) 對話方塊中:

    • 在「Members」(成員) 專區中輸入使用者或群組的電子郵件地址。
    • 在「Select a role」(選取角色) 下拉式選單中,依序點選 [BigQuery] > [BigQuery Admin] (BigQuery 管理員)
    • 按一下 [Add] (新增)。

      授予管理員

gcloud

您可以使用 Google Cloud CLI,將 bigquery.admin 角色授予使用者或群組。

如要在專案的 IAM 政策中新增單一繫結,請輸入下列指令。如要新增使用者,請提供採用 user:user@example.com 格式的 --member 旗標。如要新增群組,請提供採用 group:group@example.com 格式的 --member 旗標。

gcloud projects add-iam-policy-binding project_id \
--member principal:address \
--role roles/bigquery.admin

其中:

  • project_id 是您的專案 ID。
  • principal 可以是 groupuser
  • address 是使用者或群組的電子郵件地址。

例如:

gcloud projects add-iam-policy-binding myproject \
--member group:group@example.com \
--role roles/bigquery.admin

這個指令會輸出更新後的政策:

    bindings:
    - members:
      - group:group@example.com
        role: roles/bigquery.admin
    

如要進一步瞭解 BigQuery 中的 IAM 角色,請參閱預先定義的角色與權限一文。

後續步驟

啟用 BigQuery 資料移轉服務後,請建立資料來源的移轉作業。