使用 BigQuery Data Transfer Service 创建转移作业后,您可以执行以下操作:
- 获取有关传输配置的信息
- 列出传输配置
- 查看传输的运行历史记录
- 查看传输运行详情,例如日志消息
- 更新传输
- 设置回填
- 更新凭据
- 停用传输
- 删除传输
获取传输相关信息
创建传输后,您可以获取有关传输配置的信息。配置包含您在创建传输时提供的值。
所需权限
要获取有关转移作业的信息,您需要具备 bigquery.transfers.get
权限。以下预定义的 IAM 角色包含 bigquery.transfers.get
权限:
bigquery.admin
bigquery.user
获得 bigquery.transfers.get
权限的用户可以查看有关项目中所有转移作业的信息。
如需详细了解 BigQuery Data Transfer Service 中的 IAM 角色,请参阅访问权限控制参考文档。
获取转移作业相关信息
获取转移作业配置相关信息的方法如下:
控制台
在 Cloud Console 中,转到 BigQuery 页面。
点击转移作业。
在转移作业页面上,点击列表中的相应转移作业。
点击所选转移作业的配置。
系统会显示转移作业配置和数据源详细信息。以下示例显示了 Teradata 迁移的配置属性。
bq
输入 bq show
命令并提供转移作业配置的资源名称。--format
标志可用于控制输出格式。
bq show \
--format=prettyjson \
--transfer_config resource_name
其中:
- resource_name 是转移作业的资源名称(也称为转移作业配置)。如果您不知道转移作业的资源名称,请发出
bq ls --transfer_config --transfer_location=location
命令以列出所有转移作业。
例如,输入以下命令可显示转移作业配置 projects/myproject/locations/us/transferConfigs/1234a123-1234-1a23-1be9-12ab3c456de7
。
bq show \
--format=prettyjson \
--transfer_config projects/myproject/locations/us/transferConfigs/1234a123-1234-1a23-1be9-12ab3c456de7
API
使用 projects.locations.transferConfigs.get
方法并通过 name
参数提供转移作业配置。
Java
列出传输配置
所需权限
要列出项目中的所有转移作业或转移作业配置,您需要具备 bigquery.transfers.get
权限。以下预定义的 IAM 角色包含 bigquery.transfers.get
权限:
bigquery.admin
bigquery.user
获得 bigquery.transfers.get
权限的用户可以列出项目中的所有转移作业。
如需详细了解 BigQuery Data Transfer Service 中的 IAM 角色,请参阅访问权限控制参考文档。
列出转移作业
列出项目中的转移作业配置的方法如下:
控制台
在 Cloud Console 中,转到 BigQuery 页面。
点击转移作业。
如果项目中有转移作业配置,则转移作业页面上会显示转移作业配置列表。
bq
要按位置列出一个项目的所有转移作业配置,请输入 bq ls
命令并提供 --transfer_location
和 --transfer_config
标志。您还可以提供 --project_id
标志以指定具体项目。如果未指定 --project_id
,则系统会使用默认项目。--format
标志可用于控制输出格式。
要列出特定数据源的转移作业配置,请提供 --filter
标志。
要以分页格式查看特定数量的转移作业配置,请提供 --max_results
标志以指定转移作业数量。该命令使用 --page_token
标志返回您提供的页面标记,以查看后续 n 个配置。
bq ls \ --transfer_config \ --transfer_location=location \ --project_id=project_id \ --max_results=integer \ --filter=dataSourceIds:data_sources
其中:
- location 是转移作业配置的位置。位置是在您创建转移作业时指定的。
- project_id 是项目 ID。
- integer 是每页要显示的结果数。
- data_sources 是以下一项或多项:
amazon_s3
- Amazon S3 数据转移dcm_dt
- Campaign Manager 数据转移google_cloud_storage
- Cloud Storage 数据转移cross_region_copy
- 数据集副本dfp_dt
- Google Ad Manager 数据转移adwords
- Google Ads 数据转移merchant_center
- Google Merchant Center 数据转移play
- Google Play 数据转移doubleclick_search
- Search Ads 360 数据转移youtube_channel
- YouTube 频道数据转移youtube_content_owner
- YouTube 内容所有者数据转移redshift
- Amazon Redshift 迁移on_premises
- Teradata 迁移
示例:
输入以下命令以显示您的默认项目位于美国的所有转移作业配置。--format
标志用于控制输出。
bq ls \
--format=prettyjson \
--transfer_config \
--transfer_location=us
输入以下命令以显示 ID 为 myproject
的项目位于美国的所有转移作业配置。
bq ls \
--transfer_config \
--transfer_location=us \
--project_id=myproject
输入以下命令以列出最新的 3 个转移作业配置。
bq ls \
--transfer_config \
--transfer_location=us \
--project_id=myproject \
--max_results=3
该命令会返回下一页标记。复制页面标记并在 bq ls
命令中提供此标记,以查看接下来的 3 个结果。
bq ls \
--transfer_config \
--transfer_location=us \
--project_id=myproject \
--max_results=3 \
--page_token=AB1CdEfg_hIJKL
输入以下命令以列出项目 ID 为 myproject
的 Ads 和 Campaign Manager 转移作业配置。
bq ls \
--transfer_config \
--transfer_location=us \
--project_id=myproject \
--filter=dataSourceIds:dcm_dt,adwords
API
使用 projects.locations.transferConfigs.list
方法并通过 parent
参数提供项目 ID。
Java
Python
查看运行历史记录
在运行已安排好的传输时,系统会为每个传输配置保留运行历史记录,其中包括成功的传输运行和失败的传输运行。超过 90 天的传输运行会从运行历史记录中自动删除。
所需权限
要查看一项转移作业配置的运行历史记录,您需要具备 bigquery.transfers.get
权限。预定义的 IAM 角色 bigquery.user
包含 bigquery.transfers.get
权限。
如需详细了解 BigQuery Data Transfer Service 中的 IAM 角色,请参阅访问权限控制参考文档。
查看运行历史记录
查看转移作业配置的运行历史记录的方法如下:
控制台
在 Cloud Console 中,转到 BigQuery 页面。
点击转移作业。
在转移作业页面上,点击列表中的相应转移作业。
您将转到所选转移作业的运行历史记录页面。
bq
要列出特定转移作业配置的转移作业运行,请输入 bq
ls
命令并提供 --transfer_run
标志。您还可以提供 --project_id
标志以指定具体项目。如果 resource_name 不包含项目信息,则系统会使用 --project_id
值。如果未指定 --project_id
,则系统会使用默认项目。--format
标志可用于控制输出格式。
要查看特定数量的转移作业运行,请提供 --max_results
标志。该命令使用 --page_token
标志返回您提供的页面标记,以查看后续 n 个配置。
要根据运行状态列出转移作业运行,请提供 --filter
标志。
bq ls \ --transfer_run \ --max_results=integer \ --transfer_location=location \ --project_id=project_id \ --filter=states:state, ... \ resource_name
其中:
- integer 是要返回的结果数。
- location 是转移作业配置的位置。位置是在您创建转移作业时指定的。
- project_id 是项目 ID。
- state, ... 是以下内容之一或是一个以英文逗号分隔的列表:
SUCCEEDED
FAILED
PENDING
RUNNING
CANCELLED
- resource_name 是转移作业的资源名称(也称为转移作业配置)。如果您不知道转移作业的资源名称,请发出
bq ls --transfer_config --transfer_location=location
命令以列出所有转移作业。
示例:
输入以下命令,以显示转移作业配置 projects/myproject/locations/us/transferConfigs/1234a123-1234-1a23-1be9-12ab3c456de7
的 3 次最新运行。--format
标志用于控制输出。
bq ls \
--format=prettyjson \
--transfer_run \
--max_results=3 \
--transfer_location=us \
projects/myproject/locations/us/transferConfigs/1234a123-1234-1a23-1be9-12ab3c456de7
该命令会返回下一页标记。复制页面标记并在 bq ls
命令中提供此标记,以查看接下来的 3 个结果。
bq ls \
--format=prettyjson \
--transfer_run \
--max_results=3 \
--page_token=AB1CdEfg_hIJKL \
--transfer_location=us \
projects/myproject/locations/us/transferConfigs/1234a123-1234-1a23-1be9-12ab3c456de7
输入以下命令以显示转移作业配置 projects/myproject/locations/us/transferConfigs/1234a123-1234-1a23-1be9-12ab3c456de7
的所有失败的运行。
bq ls \
--format=prettyjson \
--transfer_run \
--filter=states:FAILED \
--transfer_location=us \
projects/myproject/locations/us/transferConfigs/1234a123-1234-1a23-1be9-12ab3c456de7
API
使用 projects.locations.transferConfigs.runs.list
方法并通过 parent
参数指定项目 ID。
Java
查看传输运行详情和日志消息
在传输运行出现在运行历史记录中时,您可以查看运行详情,包括日志消息、警告和错误、运行名称以及开始和结束时间。
所需权限
要查看转移作业运行详情,您需要具备 bigquery.transfers.get
权限。预定义的 IAM 角色 bigquery.user
包含 bigquery.transfers.get
权限。
如需详细了解 BigQuery Data Transfer Service 中的 IAM 角色,请参阅访问权限控制参考文档。
查看转移作业运行详情
查看转移作业运行详情的方法如下:
控制台
在 Cloud Console 中,转到 BigQuery 页面。
点击转移作业。
在转移作业页面上,点击列表中的相应转移作业。
您将转到所选转移作业的运行历史记录页面。
点击各次转移作业运行,相应的运行详情面板就会打开。
在运行详情中,记下所有错误消息。在联系 Google Cloud 支持团队时,您需要用到这些信息。运行详情还包括日志消息和警告。
bq
要查看转移作业运行详情,请输入 bq show
命令并使用 --transfer_run
标志提供转移作业运行的名称。--format
标志可用于控制输出格式。
bq show \ --format=prettyjson \ --transfer_run run_name
其中:
- run_name 是转移作业运行名称。您可以使用
bq ls
命令检索运行名称。
示例:
输入以下命令以显示转移作业运行 projects/myproject/locations/us/transferConfigs/1234a123-1234-1a23-1be9-12ab3c456de7/runs/1a2b345c-0000-1234-5a67-89de1f12345g
的详情。
bq show \
--format=prettyjson \
--transfer_run \
projects/myproject/locations/us/transferConfigs/1234a123-1234-1a23-1be9-12ab3c456de7/runs/1a2b345c-0000-1234-5a67-89de1f12345g
要查看转移作业运行的转移作业日志消息,请输入带有 --transfer_log
标志的 bq ls
命令。您可以使用 --message_type
标志按类型过滤日志消息。
要查看特定数量的日志消息,请提供 --max_results
标志。该命令使用 --page_token
标志返回您提供的页面标记,以查看后续 n 条消息。
bq ls \ --transfer_log \ --max_results=integer \ --message_type=messageTypes:message_type \ run_name
其中:
- integer 是要返回的日志消息数量。
- message_type 是要查看的日志消息的类型(单个值或以英文逗号分隔的列表):
INFO
WARNING
ERROR
- run_name 是转移作业运行名称。您可以使用
bq ls
命令检索运行名称。
示例:
输入以下命令以查看转移作业运行 projects/myproject/locations/us/transferConfigs/1234a123-1234-1a23-1be9-12ab3c456de7/runs/1a2b345c-0000-1234-5a67-89de1f12345g
的前 2 条日志消息。
bq ls \
--transfer_log \
--max_results=2 \
projects/myproject/locations/us/transferConfigs/1234a123-1234-1a23-1be9-12ab3c456de7/runs/1a2b345c-0000-1234-5a67-89de1f12345g
该命令会返回下一页标记。复制页面标记并在 bq ls
命令中提供此标记,以查看接下来的 2 个结果。
bq ls \
--transfer_log \
--max_results=2 \
--page_token=AB1CdEfg_hIJKL \
projects/myproject/locations/us/transferConfigs/1234a123-1234-1a23-1be9-12ab3c456de7/runs/1a2b345c-0000-1234-5a67-89de1f12345g
输入以下命令以仅查看转移作业运行 projects/myproject/locations/us/transferConfigs/1234a123-1234-1a23-1be9-12ab3c456de7/runs/1a2b345c-0000-1234-5a67-89de1f12345g
的错误消息。
bq ls \
--transfer_log \
--message_type=messageTypes:ERROR \
projects/myproject/locations/us/transferConfigs/1234a123-1234-1a23-1be9-12ab3c456de7/runs/1a2b345c-0000-1234-5a67-89de1f12345g
API
使用 projects.transferConfigs.runs.transferLogs.list
方法并通过 parent
参数提供转移作业运行的名称。
Java
更新传输
添加传输后,您可以编辑传输。您可以修改在传输创建期间填充的任何字段(源除外):
- 目标数据集
- 显示名
- 为特定传输类型指定的任何参数
- 运行通知设置
所需权限
要更新转移作业,您需要具备 bigquery.transfers.update
权限。预定义的 IAM 角色 bigquery.admin
包含 bigquery.transfers.update
权限。
如需详细了解 BigQuery Data Transfer Service 中的 IAM 角色,请参阅访问权限控制参考文档。
更新转移作业
更新转移作业的方法如下:
控制台
在 Cloud Console 中,转到 BigQuery 页面。
点击转移作业。
在转移作业页面上,点击列表中的相应转移作业。
点击修改以更新转移作业配置。
bq
输入 bq update
命令并使用 --transfer_config
标志提供转移作业配置的资源名称,并提供 --display_name
、--target_dataset
、--refresh_window_days
或 --params
标志。
bq update \ --display_name='name' \ --target_dataset=dataset \ --params='parameters' \ --refresh_window_days=integer \ --transfer_config \ resource_name
其中:
- name 是转移作业配置的显示名。
- dataset 是转移作业配置的目标数据集。
- parameters 包含转移作业配置的参数(采用 JSON 格式),例如:
--params='{"param":"param_value"}'
。您可以修改以下参数:- Google Ads:
customer_id
- Campaign Manager:
bucket
和network_id
- Google Ad Manager:
bucket
和network_code
- Google Merchant Center:
merchant_id
- Google Play:
bucket
和table_suffix
- Search Ads 360:
agency_id
、advertiser_id
、include_removed_entities
、table_filter
、custom_floodlight_variables
- YouTube 频道:
table_suffix
- YouTube 内容所有者:
content_owner_id
和table_suffix
- Google Ads:
- integer 是一个介于 0 到 30 之间的值。如需了解如何设置刷新时段,请参阅对应于您的转移作业类型的文档。
- resource_name 是转移作业的资源名称(也称为转移作业配置)。如果您不知道转移作业的资源名称,请发出
bq ls --transfer_config --transfer_location=location
命令以列出所有转移作业。
示例:
输入以下命令,以更新 Google Ads 转移作业 projects/myproject/locations/us/transferConfigs/1234a123-1234-1a23-1be9-12ab3c456de7
的显示名、目标数据集、刷新时段和参数。
bq update \
--display_name='My changed transfer' \
--target_dataset=mydataset2 \
--params='{"customer_id":"123-123-5678"}' \
--refresh_window_days=3 \
--transfer_config \
projects/myproject/locations/us/transferConfigs/1234a123-1234-1a23-1be9-12ab3c456de7
API
使用 projects.transferConfigs.patch
方法并通过 transferConfig.name
参数提供转移作业的资源名称。如果您不知道转移作业的资源名称,请发出 bq ls --transfer_config --transfer_location=location
命令以列出所有转移作业,或调用 projects.locations.transferConfigs.list
方法并通过 parent
参数提供项目 ID。
Java
Python
设置回填和刷新运行
刷新
请注意,数据回填功能不适用于以下类型的传输。但是,您可以设置刷新运行。
回填
您可以随时手动启动数据回填。除了源限制之外,BigQuery Data Transfer Service 为每项回填请求提供最长 180 天的支持。该服务不支持多项同时回填请求。
如需了解可以回填的数据量,请参阅您的数据源对应的文档:
- Campaign Manager
- Google Ad Manager
- Google Ads
- 为 Google Ads 设置数据回填后,系统会每天获取一次匹配表的快照,并将其存储在与最近运行日期对应的分区中。
如果安排了数据回填,则系统不会更新以下表的匹配表快照:
- Ad
- AdGroup
- AgeRange
- Audience
- BidGoal
- Budget
- Campaign
- Criteria
- Customer
- Gender
- Keyword
- LocationBasedCampaignCriterion
- ParentalStatus
- Placement
- Video
- 为 Google Ads 设置数据回填后,系统会每天获取一次匹配表的快照,并将其存储在与最近运行日期对应的分区中。
如果安排了数据回填,则系统不会更新以下表的匹配表快照:
- Google Merchant Center(Beta 版)
- Google Play
- Search Ads 360
- 为 Search Ads 360 设置数据回填后,系统会每天截取一次匹配表的快照,并将其存储在与最近运行日期对应的分区中。如果安排了数据回填,则系统不会更新以下表的匹配表快照:
- Account
- Ad
- Advertiser
- AdGroup
- AdGroupTarget
- BidStrategy
- Campaign
- CampaignTarget
- FeedItem
- FloodlightActivity
- Keyword
- NegativeAdGroupKeyword
- NegativeAdGroupTarget
- NegativeCampaignKeyword
- NegativeCampaignTarget
- ProductAdvertised
- ProductGroup
- ProductLeadAndCrossSellFloodlightStats
- Video
- Placement
- Video
- 为 Search Ads 360 设置数据回填后,系统会每天截取一次匹配表的快照,并将其存储在与最近运行日期对应的分区中。如果安排了数据回填,则系统不会更新以下表的匹配表快照:
- YouTube - 频道报告
- YouTube - 内容所有者报告
请注意,数据回填功能不适用于 Cloud Storage转移作业。但是,您可以设置 Cloud Storage 转移作业的刷新运行。
所需权限
要安排回填,您需要具备 bigquery.transfers.update
权限。预定义的 IAM 角色 bigquery.admin
包含 bigquery.transfers.update
权限。
如需详细了解 BigQuery Data Transfer Service 中的 IAM 角色,请参阅访问权限控制参考文档。
安排回填
安排回填的方法如下:
控制台
在 Cloud Console 中,转到 BigQuery 页面。
点击转移作业。
在转移作业页面上,点击列表中的相应转移作业。
点击更多菜单,然后选择安排回填。
在安排回填对话框中,选择开始日期和结束日期。
bq
输入 bq mk
命令,提供 --transfer_run
标志并指定 --start_time
和 --end_time
。
bq mk \ --transfer_run \ --start_time='start_time' \ --end_time='end_time' \ resource_name
其中:
start_time 和 end_time 是以 Z 结尾或包含有效时区偏移量的时间戳。例如:
2017-08-19T12:11:35.00Z
2017-05-25T00:00:00+00:00
resource_name 是转移作业的资源名称(也称为转移作业配置)。如果您不知道转移作业的资源名称,请发出
bq ls --transfer_config --transfer_location=location
命令以列出所有转移作业。
示例:
输入以下命令,以安排转移作业配置 projects/myproject/locations/us/transferConfigs/1234a123-1234-1a23-1be9-12ab3c456de7
的回填。
bq mk \
--transfer_run \
--start_time 2017-05-25T00:00:00Z \
--end_time 2017-05-25T00:00:00Z \
projects/myproject/locations/us/transferConfigs/1234a123-1234-1a23-1be9-12ab3c456de7
API
使用 projects.locations.transferConfigs.scheduleRuns
方法并通过 parent
参数提供转移作业配置资源。
Java
Python
更新凭据
传输使用创建该传输的用户的凭据。如果您需要更改附加到某项传输配置的用户,则可以更新传输的凭据。如果创建传输的用户不再与贵组织合作,这种做法非常有用。
所需权限
要更新凭据,您需要具备 bigquery.transfers.update
权限。预定义的 IAM 角色 bigquery.admin
包含 bigquery.transfers.update
权限。
如需详细了解 BigQuery Data Transfer Service 中的 IAM 角色,请参阅访问权限控制参考文档。
更新转移作业的凭据
更新转移作业凭据的方法如下:
控制台
在 Cloud Console 中,转到 BigQuery 页面。
点击转移作业。
在转移作业页面上,点击列表中的相应转移作业。
点击更多菜单,然后选择刷新凭据 (Refresh credentials)。
登录您的 Google 帐号,点击允许以授予 BigQuery Data Transfer Service 权限,使其能够查看您的报告数据以及在 BigQuery 中访问和管理数据。
bq
输入 bq update
命令并使用 --transfer_config
标志提供转移作业配置的资源名称,并提供 --update_credentials
标志。
bq update \ --update_credentials=boolean \ --transfer_config \ resource_name
其中:
- boolean 是一个布尔值,指示是否应为转移作业配置更新凭据。
- resource_name 是转移作业的资源名称(也称为转移作业配置)。如果您不知道转移作业的资源名称,请发出
bq ls --transfer_config --transfer_location=location
命令以列出所有转移作业。
示例:
输入以下命令,以更新 Google Ads 转移作业 projects/myproject/locations/us/transferConfigs/1234a123-1234-1a23-1be9-12ab3c456de7
的凭据。
bq update \
--update_credentials=true \
--transfer_config \
projects/myproject/locations/us/transferConfigs/1234a123-1234-1a23-1be9-12ab3c456de7
API
使用 projects.transferConfigs.patch
方法并提供 authorizationCode
和 updateMask
参数。
Java
Python
停用传输
停用转移作业时,disabled 会添加到转移作业名称。停用转移作业时,系统不会安排新的转移作业运行,也不允许新的回填。任何正在进行的转移作业运行均会完成。
停用转移作业不会移除已转移到 BigQuery 的任何数据。除非删除数据集或删除表,否则您需要为之前转移的数据支付标准 BigQuery 存储费用。
所需权限
要停用转移作业,您需要具备 bigquery.transfers.update
权限。预定义的 IAM 角色 bigquery.admin
包含 bigquery.transfers.update
权限。
如需详细了解 BigQuery Data Transfer Service 中的 IAM 角色,请参阅访问权限控制参考文档。
停用转移作业
停用转移作业的方法如下:
控制台
在 Google Cloud Console 中,转到 BigQuery 页面。
点击转移作业。
在转移作业页面上,点击列表中要停用的转移作业。
点击停用。要重新启用转移作业,请点击启用。
bq
CLI 不支持停用转移作业。
API
使用 projects.locations.transferConfigs.patch
方法并在 projects.locations.transferConfig
资源中将 disabled
设置为 true
。
Java
重新启用转移作业:
删除传输
删除传输时,系统不会安排新的传输运行。任何正在进行的传输运行均会停止。
删除传输不会移除已传输至 BigQuery 的任何数据。除非删除数据集或删除表,否则您需要为之前转移的数据支付标准 BigQuery 存储费用。
所需权限
要删除转移作业,您需要具备 bigquery.transfers.update
权限。预定义的 IAM 角色 bigquery.admin
包含 bigquery.transfers.update
权限。
如需详细了解 BigQuery Data Transfer Service 中的 IAM 角色,请参阅访问权限控制参考文档。
删除转移作业
删除转移作业的方法如下:
控制台
在 Google Cloud Console 中,转到 BigQuery 页面。
点击转移作业。
在转移作业页面上,点击列表中要删除的转移作业。
点击删除。为安全起见,您需要在框中输入“delete”一词以确认您的意图。
bq
输入 bq rm
命令并提供转移作业配置的资源名称。您可以使用 -f
标志在不经确认的情况下删除转移作业配置。
bq rm \
-f \
--transfer_config \
resource_name
其中:
- resource_name 是转移作业的资源名称(也称为转移作业配置)。如果您不知道转移作业的资源名称,请发出
bq ls --transfer_config --transfer_location=location
命令以列出所有转移作业。
例如,输入以下命令可删除转移作业配置 projects/myproject/locations/us/transferConfigs/1234a123-1234-1a23-1be9-12ab3c456de7
。
bq rm \
--transfer_config \
projects/myproject/locations/us/transferConfigs/1234a123-1234-1a23-1be9-12ab3c456de7
API
使用 projects.locations.transferConfigs.delete
方法并通过 name
参数提供要删除的资源。
Java
Python