啟用 BigQuery 資料移轉服務

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

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

如要進一步瞭解 Identity and Access Management (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.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.
  3. 為專案啟用計費功能,以便進行所有轉移作業。免費轉移不會產生任何費用。

    即使要從多個來源移轉資料,每個專案也只需要啟用一次計費功能。資料移轉後,您也必須啟用帳單,才能在 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

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

如要在專案的 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。
  • principalgroupuser
  • 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 資料移轉服務後,請建立資料來源的移轉作業。