YouTube 内容所有者转移作业
借助适用于 YouTube 内容所有者的 BigQuery Data Transfer Service 连接器,您可以自动安排和管理 YouTube 内容所有者报告的周期性加载作业。
支持的报告
适用于 YouTube 内容所有者报告的 BigQuery Data Transfer Service 支持以下报告选项:
报告选项 | 支持 |
---|---|
支持的 API 版本 | 2018 年 6 月 18 日 |
重复频率 | 世界协调时间 (UTC) 每天 14:45 左右 您可以配置一天中的时段 |
刷新时段 | 过去 1 天 无法配置。 |
回填时长上限 | 30 天 自 2018 年 7 月起,包含历史数据的 YouTube 报告自生成之日起 30 天内可用。(包含非历史数据的报告在政策更改后的 60 天内可用。)如需了解详情,请参阅 YouTube Reporting API 文档中的历史数据。 |
如需了解 YouTube 内容所有者报告如何转换为 BigQuery 表和视图,请参阅 YouTube 内容所有者报告转换。
从 YouTube 内容所有者转移作业中注入数据
当您将数据从 YouTube 内容所有者报告转移到 BigQuery 时,系统会将数据加载到按日期分区的 BigQuery 表中。数据加载到的表分区对应于数据源中的日期。如果您在同一日期安排多次转移,BigQuery Data Transfer Service 会使用最新数据覆盖该特定日期的分区。同一天的多个转移作业或正在运行的回填不会导致重复数据,其他日期的分区不受影响。刷新时段
刷新时段是指发生数据转移时数据转移检索数据的天数。例如,如果刷新时段为三天,并且每天进行转移,则 BigQuery Data Transfer Service 会从过去三天内的源表中检索所有数据。在此示例中,当每天进行转移时,BigQuery Data Transfer Service 会使用当前日期的源表数据副本创建新的 BigQuery 目标表分区,然后自动触发回填运行作业,以使用过去两天的源表数据来更新 BigQuery 目标表分区。自动触发的回填运行作业会覆盖或以增量方式更新 BigQuery 目标表,具体取决于 BigQuery Data Transfer Service 连接器是否支持增量更新。
首次运行数据转移作业时,数据转移作业会检索刷新时段内可用的所有源数据。例如,如果刷新时段为三天,并且您首次运行数据转移作业,则 BigQuery Data Transfer Service 会检索三天内的所有源数据。
刷新时段会映射到 TransferConfig.data_refresh_window_days
API 字段。
如需检索刷新时段之外的数据(例如历史数据),或在出现任何转移中断或缺口时恢复数据,您可以启动或安排回填运行作业。
限制
- 每个报告支持的文件大小上限为 1710 GB。
- 可安排数据转移作业的最小频率为每 24 小时一次。默认情况下,数据转移作业从创建数据转移作业时开始。但是,您可以在设置转移作业时配置转移作业开始时间。
- BigQuery Data Transfer Service 不支持在 YouTube 内容所有者转移期间执行增量数据转移。指定数据转移的日期时,系统会转移该日期的所有数据。
准备工作
创建 YouTube 内容所有者数据转移作业之前,请完成以下事项:
- 确认您已完成启用 BigQuery Data Transfer Service 所需的所有操作。
- 创建 BigQuery 数据集以存储 YouTube 数据。
- 确认您拥有 YouTube 内容所有者账号。YouTube 内容所有者与 YouTube 频道不同。 通常,只有在您管理许多不同频道的情况下,才会拥有 YouTube 内容所有者账号。
- 如果您要设置 Pub/Sub 的转移作业运行通知,必须拥有
pubsub.topics.setIamPolicy
权限。如果您只想设置电子邮件通知,则无需 Pub/Sub 权限。如需了解详情,请参阅 BigQuery Data Transfer Service 运行通知。
所需权限
请确保创建数据转移作业的人员拥有以下所需权限:
BigQuery:
- 用于创建数据转移作业的
bigquery.transfers.update
权限 - 针对目标数据集的
bigquery.datasets.get
和bigquery.datasets.update
权限
预定义的 IAM 角色
bigquery.admin
包含bigquery.transfers.update
、bigquery.datasets.update
和bigquery.datasets.get
权限。如需详细了解 BigQuery Data Transfer Service 中的 IAM 角色,请参阅访问权限控制。- 用于创建数据转移作业的
YouTube:
- YouTube 内容管理员或 YouTube 内容所有者。
内容管理员有权管理内容所有者的 YouTube 内容。内容所有者是一个综合性账号,拥有一个或多个 YouTube 频道以及这些频道中的视频。
- 在 YouTube 内容所有者报告设置中取消选中
Hide revenue data
。
对于要转移的与收入相关的报告,应为创建转移作业的用户取消选中 YouTube 报告权限设置
Hide revenue data
。
设置 YouTube 内容所有者转移作业
设置 YouTube 内容所有者数据转移作业需要提供以下信息:
- 内容所有者 ID:由 YouTube 提供。当您以内容所有者或内容管理员身份登录 YouTube 时,您的 ID 会显示在网址中的
o=
之后。例如,如果网址为https://studio.youtube.com/owner/AbCDE_8FghIjK?o=AbCDE_8FghIjK
,则内容所有者 ID 为AbCDE_8FghIjK
。如需选择其他内容管理器账号,请参阅登录内容管理器账号或 YouTube 频道切换器。如需详细了解如何创建和管理您的内容管理器账号,请参阅配置内容管理器账号设置。 - 表后缀:您在设置转移作业时为频道提供的简单易记的名称。系统会将此后缀附加到作业 ID 的后面以创建表名称,例如 reportTypeId_suffix。此后缀用于防止不同的数据转移作业将数据写入相同的表。在将数据加载到同一数据集的所有转移作业中,表后缀必须是唯一的,而且要简短,以尽量缩短所生成的表名称的长度。
如果您使用 YouTube Reporting API,并且已有报告作业,则 BigQuery Data Transfer Service 会加载您的报告数据。如果您还没有报告作业,则设置数据转移作业会自动启用 YouTube 报告作业。
如需设置 YouTube 内容所有者数据转移作业,请执行以下操作:
控制台
转到 Google Cloud 控制台中的 BigQuery 页面。 确保以 Content Owner 或 Content Manager 身份登录账号。
点击转移作业。
点击创建转移作业。
在创建转移作业页面上:
在来源类型部分中,为来源选择 YouTube 内容所有者 (YouTube Content Owner)。
在转移配置名称部分的显示名称中,输入数据转移作业的名称,例如
My Transfer
。转移作业名称可以是任何可让您在需要修改转移作业时识别该转移作业的名称。在时间表选项部分中,执行以下操作:
在重复频率部分,针对数据转移作业的运行频率选择一个选项。如果您选择天,请提供世界协调时间 (UTC) 的有效时间。
- 营业时间
- 天
- 按需
如果适用,请选择立即开始或在设置的时间开始,并提供开始日期和运行时间。
在 Destination settings 部分的 Destination dataset 中,选择您创建的用来存储数据的数据集。
在数据源详细信息部分,执行以下操作:
- 在内容所有者 ID 部分中,输入您的内容所有者 ID。
在表后缀 (Table suffix) 部分中,输入后缀,例如
MT
。
在服务账号菜单中,从与您的 Google Cloud 项目关联的服务账号中选择一个服务账号。您可以将服务账号与数据转移作业相关联,而不是使用用户凭据。如需详细了解如何将服务账号用于数据转移,请参阅使用服务账号。
(可选)在通知选项部分,执行以下操作:
点击保存。
如果这是您首次登录账号,请选择一个账号,然后点击允许。选择您是 Content Owner 或 Content Manager 的同一账号。
bq
输入 bq mk
命令并提供转移作业创建标志 --transfer_config
。此外,还必须提供以下标志:
--data_source
--target_dataset
--display_name
--params
可选标志:
--service_account_name
- 指定用于内容所有者转移作业身份验证的服务账号,而不是您的用户账号。
bq mk \ --transfer_config \ --project_id=project_id \ --target_dataset=dataset \ --display_name=name \ --params='parameters' \ --data_source=data_source \ --service_account_name=service_account_name
其中:
- project_id 是项目 ID。
- dataset 是转移作业配置的目标数据集。
- name 是转移作业配置的显示名。数据转移作业名称可以是任何可让您以后需要修改转移作业时识别该转移作业的值。
- parameters 包含所创建转移作业配置的参数(采用 JSON 格式),例如
--params='{"param":"param_value"}'
。对于 YouTube 内容所有者数据转移作业,您必须提供content_owner_id
和table_suffix
参数。您可以视需要将configure_jobs
参数设置为true
,以允许 BigQuery Data Transfer Service 为您管理 YouTube 报告作业。如果您的账号不存在 YouTube 报告,系统会创建新的报告作业来启用它们。 - data_source 是数据源,即
youtube_content_owner
。 - service_account_name 是用于对数据转移作业进行身份验证的服务账号名称。该服务账号应属于用于创建转移作业的同一
project_id
,并且应具有所有所需的权限。
您还可以提供 --project_id
标志以指定具体项目。如果未指定 --project_id
,系统会使用默认项目。
例如,以下命令使用内容所有者 ID AbCDE_8FghIjK
、表后缀 MT
和目标数据集 mydataset
创建一个名为 My Transfer
的 YouTube 内容所有者数据转移作业。该数据转移作业在默认项目中创建:
bq mk \
--transfer_config \
--target_dataset=mydataset \
--display_name='My Transfer' \
--params='{"content_owner_id":"abCDE_8FghIjK","table_suffix":"MT","configure_jobs":"true"}' \
--data_source=youtube_content_owner
API
使用 projects.locations.transferConfigs.create
方法并提供一个 TransferConfig
资源实例。
Java
试用此示例之前,请按照 BigQuery 快速入门:使用客户端库中的 Java 设置说明进行操作。 如需了解详情,请参阅 BigQuery Java API 参考文档。
如需向 BigQuery 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为客户端库设置身份验证。
查询数据
当数据转移到 BigQuery 时,这些数据会写入注入时间分区表。如需了解详情,请参阅分区表。
如果您要直接查询表,而不是使用自动生成的视图,则必须在查询中使用 _PARTITIONTIME
伪列。如需了解详情,请参阅查询分区表。
排查 YouTube 内容所有者转移作业设置问题
如果您在设置数据转移作业时遇到问题,请参阅排查转移作业配置问题中的 YouTube 转移作业问题。