启用 BigQuery Data Transfer Service
要使用 BigQuery Data Transfer Service,您必须以项目所有者身份完成以下步骤:
- 创建项目并启用 BigQuery API。
- 启用 BigQuery Data Transfer Service。
如需详细了解 Identity and Access Management (IAM) 角色,请参阅 IAM 文档中的了解角色。
创建项目并启用 BigQuery API
在使用 BigQuery Data Transfer Service 之前,您必须先创建项目,而且大多数情况下,您还需要为该项目启用结算功能。您可以在 BigQuery Data Transfer Service 中使用现有项目,也可以新建一个项目。使用现有项目时,您可能还需要启用 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 Data Transfer Service
您必须先启用 BigQuery Data Transfer Service,然后才能创建转移作业。要启用 BigQuery Data Transfer Service,您必须对项目拥有 Owner 角色。
要启用 BigQuery Data Transfer Service,请按如下所述操作:
打开 API 库中的 BigQuery Data Transfer API 页面。
从下拉菜单中选择相应的项目。
点击“启用”按钮。
服务代理
BigQuery Data Transfer Service 使用服务代理来访问和管理资源。这包括但不限于以下资源:
- 检索在授权数据转移时使用的服务账号的访问令牌。
- 将通知发布到提供的 Pub/Sub 主题(如果已启用)。
- 启动 BigQuery 作业。
在您启用 BigQuery Data Transfer Service 并首次使用 API 后,系统会自动代表您创建服务代理。创建服务代理后,Google 会自动授予预定义的服务代理角色。
跨项目服务账号授权
如果您使用服务账号授权数据转移,而不是使用启用了 BigQuery Data Transfer Service 的项目中的服务账号,则必须使用以下 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 Data Transfer Service 的项目的编号。
如需详细了解跨项目资源配置,请参阅 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 Data Transfer Service 的项目的编号。
授予 bigquery.admin
权限
我们建议向创建 BigQuery Data Transfer Service 转移作业的用户授予 bigquery.admin
预定义 IAM 角色。bigquery.admin
角色可提供执行最常见任务所需的 IAM 权限。bigquery.admin
角色可提供以下 BigQuery Data Transfer Service 权限:
- BigQuery Data Transfer Service 权限:
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 网页。
点击选择项目。
选择项目并点击打开。
点击添加向项目添加新成员,然后为这些成员设置相应的权限。
在添加成员对话框中,执行以下操作:
- 在成员部分中,输入用户或群组的电子邮件地址。
- 在选择角色下拉列表中,依次点击 BigQuery > BigQuery 管理员。
点击添加。
gcloud
您可以使用 Google Cloud CLI 向用户或群组授予 bigquery.admin
角色。
要将单个绑定添加到项目的 IAM 政策,请输入以下命令。如需添加用户,请按照如下格式提供 --member
标志:user:user@example.com
。如需添加群组,请按照如下格式提供 --member
标志:group:group@example.com
。
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 Data Transfer Service 后,为您的数据源创建转移作业。
- Amazon S3
- Amazon Redshift
- Azure Blob Storage
- Campaign Manager
- Cloud Storage
- Display & Video 360
- Facebook Ads(预览版)
- Google Ad Manager
- Google Ads
- Google Merchant Center(预览版)
- Google Play
- Oracle(预览版)
- Salesforce(预览版)
- Salesforce Marketing Cloud(预览版)
- Search Ads 360
- ServiceNow(预览版)
- TeraData
- YouTube 频道
- YouTube 内容所有者