啟用 BigQuery 資料移轉服務
如要使用 BigQuery 資料移轉服務,您必須以專案擁有者的身分完成下列步驟:
- 建立專案並啟用 BigQuery API。
- 啟用 BigQuery 資料移轉服務。
如要進一步瞭解身分與存取權管理 (IAM) 角色,請參閱 IAM 說明文件中的「瞭解角色」一文。
建立專案並啟用 BigQuery API
使用 BigQuery 資料移轉服務之前,您必須先建立專案,在大多數情況下,還必須啟用該專案的計費功能。您可以在現有專案使用 BigQuery 資料移轉服務,或建立一個新專案。若您使用現有的專案,可能還需啟用 BigQuery API。
如何建立專案並啟用 BigQuery API:
-
In the Google Cloud console, go to the project selector page.
-
Select or create a Google Cloud project.
為專案啟用計費功能,以便進行所有轉移作業。免費轉帳的費用為 $0 美元。
即使您從多個來源移轉資料,也只需要為每個專案啟用計費功能一次。資料移轉後,您必須啟用帳單功能,才能在 BigQuery 中查詢資料。
- 新專案會自動啟用 BigQuery。如要在現有專案中啟用 BigQuery,請啟用 BigQuery API。
啟用 BigQuery API
啟用 BigQuery 資料移轉服務
建立移轉之前,您必須先啟用 BigQuery 資料移轉服務。如要啟用 BigQuery 資料移轉服務,您必須取得專案的擁有者角色。
如何啟用 BigQuery 資料移轉服務:
在 API 程式庫中開啟 BigQuery Data Transfer API 頁面。
在下拉式選單中選取適當的專案。
按一下 [ENABLE] (啟用) 按鈕。
服務代理
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 互動前觸發服務代理建立作業 (例如,如果您需要為服務代理授予額外角色),可以使用下列任一方法:
- API:services.GenerateServiceIdentity
- gcloud CLI:gcloud beta services identity create
- Terraform 供應工具:google_project_service_identity
當您手動觸發服務代理人建立作業時,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
角色:
主控台
在 Google Cloud 控制台中開啟「IAM」頁面
按一下 [Select a project] (選取專案)。
選取專案並點選 [Open] (開啟)。
按一下 [Add] (新增),將新成員加入專案並設定其權限。
在「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 可以是
group
或user
。 - 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 資料移轉服務後,請建立資料來源的移轉作業。
- Amazon S3
- Amazon Redshift
- Azure Blob 儲存體
- Campaign Manager
- Cloud Storage
- 購物比較服務中心 (CSS Center) (預先發布版)
- Display & Video 360
- Facebook 廣告 (預先發布版)
- Google Ad Manager
- Google Ads
- Google Analytics 4 (預先發布版)
- Google Merchant Center (預先發布版)
- Google Play
- MySQL (預先發布版)
- Oracle (預先發布版)
- PostgreSQL (預先發布版)
- Salesforce (預先發布版)
- Salesforce Marketing Cloud (預先發布版)
- Search Ads 360
- ServiceNow (預先發布版)
- Teradata
- YouTube 頻道
- YouTube 內容擁有者