借助适用于 YouTube 的 BigQuery Data Transfer Service,您可以自动安排和管理 YouTube 频道报告的周期性加载作业。
支持的报告
- 频道报告(自动加载到 BigQuery 中)
适用于 YouTube 频道报告的 BigQuery Data Transfer Service 目前支持以下报告选项:
报告选项 | 支持 |
---|---|
支持的 API 版本 | 2018 年 6 月 18 日 |
时间安排 | 每天,约在 14:10 UTC 您可以配置时段 |
刷新时段 | 过去 1 天 无法配置。 |
回填时长上限 | 30 天 自 2018 年 7 月起,包含历史数据的 YouTube 报告自生成之日起 30 天内可用。(包含非历史数据的报告在 60 天内可用。)如需了解详情,请参阅 YouTube Reporting API 文档中的历史数据。 |
如需了解 YouTube 频道报告如何转换为 BigQuery 表和视图,请参阅 YouTube 频道报告转换。
限制
每个报告支持的文件大小上限为 1710 GB。
准备工作
创建 YouTube 频道转移作业之前,请先做好以下准备工作:
- 验证您是否已完成启用 BigQuery Data Transfer Service 所需的所有操作。
- 创建 BigQuery 数据集以存储 YouTube 数据。
所需权限
创建 YouTube 频道转移作业需要以下权限:
- YouTube:YouTube 频道的所有权
BigQuery:BigQuery 中的以下 Identity and Access Management (IAM) 权限:
- 用于创建转移作业的
bigquery.transfers.update
。 - 针对目标数据集的
bigquery.datasets.get
和bigquery.datasets.update
权限。 - 如果您要设置 Pub/Sub 的转移作业运行通知,必须拥有
pubsub.topics.setIamPolicy
权限。如果您只是要设置电子邮件通知,则无需 Pub/Sub 权限。如需了解详情,请参阅 BigQuery Data Transfer Service 运行通知。
- 用于创建转移作业的
预定义的 IAM 角色 bigquery.admin
具有创建 YouTube 频道转移作业所需的所有 BigQuery 权限。如需详细了解 BigQuery 中的 IAM 角色,请参阅预定义的角色和权限。
设置 YouTube 频道转移作业
设置 YouTube 频道转移作业需要提供以下信息:
- 表后缀:您在设置转移作业时为频道提供的简单易记的名称。系统会将此后缀附加到作业 ID 的后面以创建表名称,例如 reportTypeId_suffix。此后缀用于防止不同的转移作业写入相同的表。在将数据加载到同一数据集的所有转移作业中,表后缀必须是唯一的,而且要简短,以尽量缩短所生成的表名称的长度。
如果您目前在使用 YouTube Reporting API,并且目前具有报告作业,则 BigQuery Data Transfer Service 会加载您的报告数据。如果您目前没有报告作业,设置转移作业会自动启用 YouTube 报告作业。
如需创建 YouTube 频道转移作业,请执行以下操作:
控制台
转到控制台中的 BigQuery 页面。
点击转移。
点击创建转移作业。
在创建转移作业页面中执行以下操作:
在来源类型部分的来源中,选择 YouTube 频道。
在转移配置名称部分的显示名中,输入转移作业的名称,例如
My Transfer
。转移作业名称可以是任何容易辨识的值,方便您以后在需要修改该作业时能轻松识别。在时间表选项部分的时间表中,保留默认值(立即开始)或点击在设置的时间开始 (Start at a set time)。
- 在重复频率部分,从以下选项中选择转移作业的运行频率。
- 每日一次(默认值)
- 每周一次
- 每月一次
- 自定义
- 按需
在开始日期和运行时间部分,输入开始转移作业的日期和时间。如果您选择的是立即开始,则此选项会处于停用状态。
- 在重复频率部分,从以下选项中选择转移作业的运行频率。
在目标设置部分的目标数据集中,选择您创建的用来存储数据的数据集。
在数据源详细信息部分,执行以下操作:
- 在表后缀 (Table suffix) 部分中,输入后缀,例如
MT
。 勾选配置作业 (Configure jobs) 复选框,允许 BigQuery Data Transfer Service 为您管理 YouTube 报告作业。如果您的帐号目前没有对应的 YouTube 报告,系统会创建新的报告作业来启用它们。
- 在表后缀 (Table suffix) 部分中,输入后缀,例如
(可选)在通知选项部分,执行以下操作:
点击保存。
bq
输入 bq mk
命令并提供转移作业创建标志 --transfer_config
。此外,还必须提供以下标志:
--data_source
--target_dataset
--display_name
--params
bq mk \ --transfer_config \ --project_id=project_id \ --target_dataset=dataset \ --display_name=name \ --params='parameters' \ --data_source=data_source
其中:
- project_id 是项目 ID。
- dataset 是转移作业配置的目标数据集。
- name 是转移作业配置的显示名。转移作业名称可以是任何容易辨识的值,让您以后在需要修改时能够轻松识别。
- parameters 包含所创建转移作业配置的参数(采用 JSON 格式),例如
--params='{"param":"param_value"}'
。对于 YouTube 频道转移作业,您必须提供table_suffix
参数。您可以选择将configure_jobs
参数设置为true
,以允许 BigQuery Data Transfer Service 为您管理 YouTube 报告作业。如果您的频道目前没有 YouTube 报告,系统会创建新的报告作业来启用报告。 - data_source 是数据源,即
youtube_channel
。
您还可以提供 --project_id
标志以指定具体项目。如果未指定 --project_id
,系统会使用默认项目。
例如,以下命令使用表后缀 MT
和目标数据集 mydataset
创建名为 My Transfer
的 YouTube 频道转移作业。该转移作业将在默认项目中创建:
bq mk \
--transfer_config \
--target_dataset=mydataset \
--display_name='My Transfer' \
--params='{"table_suffix":"MT","configure_jobs":"true"}' \
--data_source=youtube_channel
API
使用 projects.locations.transferConfigs.create
方法并提供一个 TransferConfig
资源实例。
Java
查询数据
当数据转移到 BigQuery 时,数据会写入按提取时间分区的表。如需了解详情,请参阅分区表简介。
如果您要直接查询表,而不是使用自动生成的视图,那么必须在查询中使用 _PARTITIONTIME
伪列。如需了解详情,请参阅查询分区表。
YouTube 频道转移作业设置问题排查
如果您在设置转移作业时遇到问题,请参阅排查转移作业配置问题中的 YouTube 转移作业问题。