排查转移作业配置问题

本文档旨在帮助您排查在设置 BigQuery Data Transfer Service 转移作业时遇到的最常见问题。本文档并未包含所有可能的错误消息或问题。

如果您遇到本文档未涉及的问题,可请求支持

在联系 Cloud Customer Care 之前,请记录转移作业配置和转移作业运行详情。如需了解如何获取这些详细信息,请参阅获取转移详情查看转移作业运行详情和日志消息

检查错误

如果首次转移作业运行失败,您可以检查运行历史记录中的详细信息。运行历史记录中列出的错误可帮助您使用本文档确定适当的解决方法。

您还可以使用 Logs Explorer 来查看特定转移作业的错误消息。以下 Logs Explorer 过滤条件会返回有关特定转移配置作业的信息,以及所有错误消息:

resource.type="bigquery_dts_config"
labels.run_id="RUN_ID"
resource.labels.config_id="CONFIG_ID"

替换以下内容:

  • RUN_ID:特定作业运行的 ID 编号
  • CONFIG_ID:转移配置作业的 ID 编号

在联系 Customer Care 之前,请从运行历史记录或 Logs Explorer 中捕获所有相关信息,包括所有错误消息。

常见问题

诊断常规转移问题时,请验证以下内容:

  • 确认已完成您的转移类型对应文档页面的“准备工作”部分中的所有步骤。
  • 转移配置属性准确无误。
  • 用于创建转移作业的用户账号可访问底层资源。

如果您的转移作业配置准确无误,并且您已授予相应的权限,请参阅以下内容来获取常见问题的解决方案。

错误:An unexpected issue was encountered. If this issue persists, please contact customer support.
解决方法:此错误通常表示 BigQuery 中出现临时中断或问题。请等待大约 2 个小时,等到问题解决。如果问题仍然存在,您可以请求支持
错误:Quota Exceeded.

解决方法:转移作业受 BigQuery 加载作业配额的约束。如需增加配额,请与 Google Cloud 销售代表联系。如需了解详情,请参阅配额和限制

如果要加载 Cloud Billing 导出到 BigQuery 的数据,您可能会遇到 Quota Exceeded 错误。Cloud Billing 导出表和由 BigQuery Data Transfer Service 服务创建的目标 BigQuery 表均已分区。在设置此类 BigQuery Data Transfer Service 作业时选择覆盖选项会导致配额错误,具体取决于导出的数据量。如需了解如何排查配额问题,请参阅排查配额和限制错误

如果错误是用于 Cloud Billing 导出的 BigQuery Data Transfer Service 作业引起的,请注意,由于各个 Cloud Billing 导出表已分区,因此 BigQuery Data Transfer 创建的目标表也已分区,因而在设置此类数据传输作业时选择覆盖选项会导致 (DML) 配额错误,具体取决于结算账号的存在时间。如需了解如何排查配额问题,请参阅排查配额和限制错误

错误:The caller does not have permission.

解决方法:确认 Google Cloud 控制台中的已登录账号与您在创建转移作业时为 BigQuery Data Transfer Service 选择的账号相同。

  • Google Cloud 控制台中的已登录账号:

    问题排查权限

  • 请选择一个账号以继续使用 BigQuery Data Transfer Service:

    问题排查权限

错误:Access Denied: ... Permission bigquery.tables.get denied on table ...

解决方案:确认 BigQuery Data Transfer Service 服务代理拥有目标数据集上的 bigquery.dataEditor 角色。在创建和更新转移作业时,系统会自动应用此授权,但之后访问权限政策可能会被手动修改。如需重新授予此权限,请参阅授予对数据集的访问权限

错误:region violates constraint constraints/gcp.resourceLocations on the resource projects/project_id

解决方法:当用户尝试在位置限制组织政策中指定的受限位置创建转移配置时,会发生此错误。如需解决此问题,您可以更改组织政策以允许该区域,或者将转移配置更改为位于组织政策不限制的区域中的目标数据集。

错误:Please look into the errors[] collection for more details.

解决方法:当数据传输失败时,可能会发生此错误。如需详细了解数据传输失败的原因,您可以使用 Cloud Logging 查看日志。您可以使用传输 run_id 进行搜索,查找特定运行作业的日志

授权和权限问题

以下是从不同数据源转移数据时可能会遇到的一些常见权限错误:

错误:BigQuery Data Transfer Service is not enabled for <project_id>
错误:BigQuery Data Transfer Service has not been used in project <project_id> before or it is disabled ...

解决方法:请按照以下步骤验证是否已授予服务代理角色:

  1. 在 Google Cloud 控制台中,转到 IAM 和管理页面。

    转到“IAM 和管理”

  2. 选中包括 Google 提供的角色授权复选框。

  3. 验证系统是否显示了名称为 service-<project_number>@gcp-sa-bigquerydatatransfer.iam.gserviceaccount.com 的服务账号,或者该服务账号是否已被授予 BigQuery Data Transfer Service 的 BigQuery Data Transfer Service Agent 角色

    验证服务账号是否具有服务代理角色。

如果系统未显示该服务账号,或者该服务账号未被授予 BigQuery Data Transfer Service 服务代理角色,请在 Google Cloud 控制台中或通过运行以下 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 替换为与此服务账号关联的项目编号。

错误:There was an error loading this table. Check that the table exists and that you have the correct permissions.

解决方法

  1. 在 Google Cloud 控制台中,转到 BigQuery 页面。

    转到 BigQuery

  2. 点击转移中使用的目标数据集。

  3. 点击共享菜单,然后点击权限

  4. 展开 BigQuery Data Editor 角色。

  5. 验证是否已将 BigQuery Data Transfer Service 服务代理添加到此角色。如果没有,请向 BigQuery Data Transfer Service 服务代理授予 BigQuery Data Editor (roles/bigquery.dataEditor) 角色。

验证是否已添加 BigQuery Data Editor 角色。

错误:A permission denied error was encountered: PERMISSION_DENIED. Please ensure that the user account setting up the transfer config has the necessary permissions, and that the configuration settings are correct

解决方法

  1. 在 Google Cloud 控制台中,转到数据转移页面。

    转到“数据转移”

  2. 点击失败的转移作业,然后选择配置标签页。

  3. 验证用户字段中列出的转移所有者是否具有数据源需要的所有权限。

如果转移所有者没有需要的所有权限,请通过更新其凭据来授予所需权限。您还可以将转移作业所有者更改为其他具备所需权限的用户。

错误:Authentication failure: User Id not found. Error code: INVALID_USERID

解决方法:转移作业所有者的用户 ID 无效。通过更新其凭据将转移所有者更改为其他用户。 如果您使用的是服务账号,您还应验证运行数据转移作业的账号是否拥有使用服务账号所需的所有权限

错误:The user does not have permission

解决方法:验证转移所有者是否为服务账号,以及该服务是否设置了所有需要的权限。另一种可能是,在其下创建所用服务账号的项目与用于创建此转移作业的项目不同。如需解决跨项目权限问题,请参阅以下资源:

错误:HttpError 403 when requesting returned "The caller does not have permission"

googleapiclient.errors.HttpError: <HttpError 403 when requesting returned "The caller does not have permission". Details: "The caller does not have permission">

当您尝试使用服务账号设置预定查询时,可能会出现此错误。

解决方法:确保服务账号具有计划或修改计划查询所需的所有权限,并确保设置计划查询的用户具有访问服务账号的权限

如果已分配正确的权限,但您仍然遇到错误,请检查系统是否默认对项目强制执行了停用跨项目服务账号使用情况政策。您可以在 Google Cloud 控制台中检查该政策,方法是导航到 IAM 和管理 > 组织政策,然后搜索政策。

检查服务账号是否强制执行跨项目服务账号使用情况政策。

如果强制执行停用跨项目服务账号使用情况政策,则可以通过执行以下操作来停用该政策:

  1. 使用 Google Cloud 控制台确定与项目关联的服务账号,方法是导航到 IAM 和管理 > 服务账号。此视图会显示当前项目的所有服务账号。
  2. 使用以下命令在服务账号所在的项目中停用该政策。如需停用此政策,用户必须是 Organization Policy Administrator。只有 Organization Administrator 可以向用户授予此角色。
gcloud resource-manager org-policies disable-enforce iam.disableCrossProjectServiceAccountUsage --project=[PROJECT-ID]

Amazon S3 转移问题

下面是创建 Amazon S3 转移作业时遇到的常见错误。

Amazon S3 PERMISSION_DENIED 错误

错误:The AWS Access Key Id you provided does not exist in our records.
解决方法:验证访问密钥是否存在以及 ID 是否正确。
错误:The request signature we calculated does not match the signature you provided. Check your key and signing method.
解决方法:验证转移配置是否具有正确的对应私有访问密钥
错误:Failed to obtain the location of the source S3 bucket. Additional details: Access Denied
错误:Failed to obtain the location of the source S3 bucket. Additional details: HTTP/1.1 403 Forbidden
错误:Access Denied(S3 错误消息)
解决方法:确保 AWS IAM 用户有权限执行以下操作:
  • 列出 Amazon S3 存储桶。
  • 获取存储桶的位置。
  • 读取存储桶中的对象。
错误:Server unable to initialize object upload.; InvalidObjectState: The operation is not valid for the object's storage class
错误:Failed to obtain the location of the source S3 bucket. Additional details: All access to this object has been disabled
解决方法:恢复归档到 Amazon Glacier 的任意对象。在恢复归档到 Amazon Glacier 的 Amazon S3 对象之前,您无法访问这些对象。
错误:All access to this object has been disabled
解决方法:确认转移配置中的 Amazon S3 URI 正确无误

Amazon S3 转移作业限制错误

错误:Number of files in transfer exceeds limit of 10,000.
解决方法:考虑是否可以将 Amazon S3 URI 中的通配符数量减少到一个。如果可以,请使用新的转移配置重试,因为每次转移运行的最大文件数量将增加。您也可以考虑是否可以将转移配置拆分为多个转移配置,每个转移配置转移一部分源数据。
错误:Size of files in transfer exceeds limit of 16492674416640 bytes.
解决方法:考虑是否可以将转移配置拆分为多个转移配置,每个转移配置转移一部分源数据。

常规 Amazon S3 问题

问题:系统从 Amazon S3 转移了文件,但未将其加载到 BigQuery 中。

转移日志可能类似如下:Moving data from Amazon S3 to Google Cloud complete: Moved N object(s). No new files found matching Amazon_S3_URI.

解决方法:确认转移配置中的 Amazon S3 URI 正确无误。如果转移配置旨在加载具有某个公共前缀的所有文件,请确保 Amazon S3 URI 以通配符结尾。例如,如需加载 s3://my-bucket/my-folder/ 中的所有文件,转移配置中的 Amazon S3 URI 必须为 s3://my-bucket/my-folder/*,而不只是 s3://my-bucket/my-folder/

Azure Blob Storage 转移问题

下面是创建 Blob 存储转移作业时遇到的常见错误。

错误:Number of files in transfer exceeds the limit of 10,000.
解决方法:将 Blob Storage 数据路径中的通配符数量减少至 0 或 1,以便文件限制增加到 1,000 万个。您还可以拆分为多个转移配置,每个转移配置转移一部分源。
错误:Size of files in transfer exceeds the limit of 15 TB.
解决方法:拆分为多个转移配置,每个转移配置转移一部分源数据。
错误:Provided Azure SAS Token does not have required permissions.
解决方法:验证转移配置中的 Azure SAS 令牌是否正确。如需了解详情,请参阅共享访问签名 (SAS)
错误:Transfer encountered error, status:PERMISSION_DENIED, details:[This request is not authorized to perform this operation.]
解决方法:验证是否已将 BigQuery Data Transfer Service 工作器使用的 IP 范围添加到允许的 IP 列表中。如需了解详情,请参阅 IP 限制
问题:系统会从 Blob Storage 转移文件,但不会将其加载到 BigQuery 中。

转移日志可能类似如下:Moving data to Google Cloud complete: Moved <var>N</var> object(s). No new files found matching Blob Storage data path.

解决方法:验证转移配置中的 Blob Storage 数据路径是否正确。

Campaign Manager 转移问题

下面是创建 Campaign Manager 转移作业时遇到的常见错误。

错误:Import failed - no data was available for import. Please verify that data existence was expected.
错误:No data available for the requested date. Please try an earlier run date or verify that data existence was expected.

解决方法:确认您是否对转移作业使用了正确的 ID。如果所用 ID 正确,请验证 Campaign Manager Cloud Storage 存储桶是否包含指定日期范围的 Data Transfer 2.0 版文件。如果找到了这些文件,请为受影响的日期范围安排回填。如需详细了解如何创建 Campaign Manager 回填请求,请参阅手动触发转移或回填

通过检查 Cloud Storage 存储桶中文件的创建时间,您可以验证系统在安排转移作业运行时是否存在相关文件。在某些情况下,一天中的第一次转移作业运行可能会安排在生成第一批 Campaign Manager 数据传输文件之前进行。后续日期将在同一天运行,次日将加载 Campaign Manager 生成的所有文件。

错误:A permission denied error was encountered: PERMISSION_DENIED. Please ensure that the user account setting up the transfer config has the necessary permissions, and that the configuration settings are correct.

解决方法:创建 Campaign Manager 转移作业的用户必须对 Data Transfer V2.0 文件所在的 Cloud Storage 存储桶具有读取权限。您可以获取 Cloud Storage 存储桶的相关信息并向您的 Campaign Manager 管理员申请访问权限。

Google Ads 转移问题

下面是创建 Google Ads 转移作业时遇到的常见错误。

错误:Import failed - no data was available for import. Please verify that data existence was expected.
错误:No data available for the requested date. Please try an earlier run date or verify that data existence was expected.
解决方法:如果在创建 Google Ads 转移作业时收到此错误,您可以请求支持并提供包含错误消息的屏幕截图。
错误:AuthenticationError.NOT_ADS_USER.
解决方法:设置 Google Ads 转移作业的用户必须拥有 Google Ads 账号/登录信息。
错误:ERROR_GETTING_RESPONSE_FROM_BACKEND.
解决方法:如果 Google Ads 转移作业运行失败并返回 ERROR_GETTING_RESPONSE_FROM_BACKEND,请在转移作业配置中选中排除已移除/已停用的项 (Exclude Removed/Disabled Items) 选项设置回填,以尝试检索受转移作业运行失败影响的日期的数据。
警告:Data for the report ClickStats was not available for the specified date.
错误:INVALID_DATE_RANGE_FOR_REPORT.
解决方法:在回填 90 天前的点击效果报告数据时,这属于正常现象。在这种情况下,您会看到上述警告/错误,并且 ClickStats 表不会在指定日期更新。
错误:Error while processing report for table table_name for account id account_id. Http(400) Bad Request;
错误:AuthorizationError.TWO_STEP_VERIFICATION_NOT_ENROLLED
解决方法:如果与此转移作业关联的用户账号未启用两步验证(或多重身份验证),请为此账号启用两步验证,然后重新运行失败的转移作业。服务账号不受两步验证要求的约束。
错误:Quota exceeded: Your project exceeded quota for imports per project
解决方法:转移作业受 BigQuery 加载作业配额的约束。如果达到加载作业的配额限制,请尝试使用 table_filter、删除未使用的转移配置或缩短刷新时段,以减少不必要的加载。如需增加配额,请与 Google Cloud 销售代表联系。如需了解详情,请参阅配额和限制

以下是创建 Google Ad Manager 转移作业时遇到的常见错误。

错误:No data available for the requested date. Please try an earlier run date or verify that data existence was expected.
错误:Import failed - no data was available for import. Please verify that data existence was expected.

解决方法:确认 Google Ad Manager Cloud Storage 存储桶是否包含指定日期范围内的数据转移文件。您的 Google Ad Manager 管理员管理您的数据转移文件所在的 Cloud Storage 存储桶。创建 Google Ad Manager 转移作业的用户必须是拥有该存储桶读取权限的 Google 群组的成员。

您可以尝试读取 Google Ad Manager 数据转移存储桶中的文件来验证 Cloud Storage 权限。如需详细了解 Google Ad Manager Cloud Storage 存储桶,请参阅访问 Google Ad Manager 存储桶

通过检查 Cloud Storage 存储桶中文件的创建时间,您可以验证系统在安排转移作业运行时是否存在相关文件。在某些情况下,一天中的第一次转移作业运行可能会安排在生成第一批 Google Ad Manager 数据转移文件之前进行。后续转移作业将在同一天运行,次日将加载 Google Ad Manager 生成的所有文件。

如果数据转移存储桶中存在文件且您具有读取权限,则请为受影响的日期范围安排回填。如需详细了解如何创建 Google Ad Manager 回填请求,请参阅设置回填

错误:AuthenticationError: NO_NETWORKS_TO_ACCESS.

解决方法:确保您拥有 Google Ad Manager 网络的读取权限。如果您需要帮助来确定网络访问权限,请与 Google Ad Manager 支持团队联系。

错误:Error code 9 : Field field_name?field_name?field_name?RefererURL is unknown.; Table: table_name

解决方法:确保您没有使用刺形符 (þ) 分隔符。目前不支持刺形符分隔符。如果使用了刺形符,则该符号在错误消息中会以“?”表示。

错误:Incompatible table partitioning specification. Destination table exists with partitioning specification interval(type:Day,field:) clustering

解决方法:Google Ad Manager 连接器不支持将数据转移到包含聚簇的数据集。请改用不包含聚簇的数据集。

Google Merchant Center 转移问题

以下是创建 Google Merchant Center 转移作业时遇到的常见错误。

错误:No data to transfer found for the Merchant account. If you have just created this transfer - you may need to wait for up to 90 minutes before the data of your Merchant account are prepared and available for the transfer.
解决方法:如果使用“时间表”部分中的默认开始日期和时间设置了转移作业,则会收到此错误。如果您使用日程值,那么在创建转移之后,系统会立即开始运行第一次转移,但由于您的商家账号数据必须先做好准备之后才能转移,因此这次转移将会失败。请等待 90 分钟,然后为今天设置回填,也可以等到明天进行安排的下一次运行。
错误:No data to transfer found for Merchant account. This can be because your account currently doesn't have any products.
解决方法:此错误表示您的商家账号没有商品。将商品添加到商家账号后,转移作业即可正常运行。
错误:Transfer user doesn't have access to the Merchant account. Please verify access in the Users section of the Google Merchant Center.
解决方法:此错误表示设置转移作业的用户无权访问转移作业所使用的商家账号。要解决此问题,请在 Google Merchant Center 中执行验证并授予缺失的账号访问权限
错误:Transfer user doesn't have user roles that allows access to the product data of the Merchant account. Please verify access and roles in the Users section of the Google Merchant Center.
解决方法:此错误表示设置转移作业的用户无权访问转移作业所使用的商家账号的商品数据。要解决此问题,请在 Google Merchant Center 中执行验证并授予缺失的用户角色
错误:Historical backfills are currently not supported.
解决方法:如果您为前几天设置了回填,则会收到此错误。这是意料之中的错误。目前不支持历史回填。您只能为今天设置回填,以便在计划的每日运行完成后刷新今天的数据。

Google Play 转移问题

下面是创建 Google Play 转移作业时遇到的常见错误。

错误:No jobs to start for run
解决方法:验证用户是否拥有足够的权限来启动 Google Play 转移作业,然后验证用户在设置转移作业时是否指定了正确的 Cloud Storage 存储桶。如果用户仍然遇到该错误,您可以请求支持
问题:收入和财务报告未加载到 BigQuery 中
解决方法:如需访问 Google Play 财务报告,用户必须拥有 View financial data 权限。如需管理开发者账号权限,请参阅添加开发者账号用户和管理权限

Oracle 转移问题

下面是创建 Oracle 转移作业时可能会遇到的常见问题。

错误:PERMISSION_DENIED. ORA-01017: invalid username/password; logon denied
解决方法:检查提供的 Oracle 凭据是否有效。
错误:PERMISSION_DENIED. ORA-01045: user lacks CREATE SESSION privilege; logon denied
解决方法:向 Oracle 用户授予 CREATE SESSION 系统权限。如需详细了解如何授予 Oracle 权限,请参阅 GRANT
错误:SERVICE_UNAVAILABLE. ORA-12541: Cannot connect. No listener at host HOSTNAME port PORTSERVICE_UNAVAILABLE. Connection failed: IO Error. The Network Adapter could not establish the connection
解决方法:检查提供的主机名和端口详细信息是否正确,以及网络连接是否设置正确。
错误:NOT_FOUND. ORA-00942: table or view does not exist

解决方法:检查以下各项:

  • 表或视图名称的拼写正确。
  • 被引用的表或视图名称已存在。
  • 同义词指向现有表或视图。如果表或视图存在,请确保向需要访问表的数据库用户授予正确的访问权限。否则,请创建表。
  • 如果要尝试访问其他架构中的表或视图,请确保引用了正确的架构,并授予对象访问权限。
错误:NOT_FOUND. Schema schema does not exist.
解决方法:指定的架构不存在。
错误:DEADLINE_EXCEEDED
解决方法:转移作业运行未在六小时的最长时长截止时间内完成。可以通过将大型转移作业拆分为多个较小的转移作业来缩短转移作业运行时间。
错误:INTERNAL
解决方法:其他问题导致转移失败。 联系 Cloud Customer Care,以获得有关解决此问题的帮助。
错误:SQL Error [1950] [42000]: ORA-01950: no privileges on tablespace 'TablespaceName'
解决方法:为用户分配默认表空间。如需了解详情,请参阅分配默认表空间
错误:403 PERMISSION_DENIED. Required 'compute.subnetworks.use' permission for project

解决方法:如果网络连接与转移配置位于不同的项目中,则可能会发生此错误。要解决此问题,您必须向服务账号(例如 service-customer_project_number@gcp-sa-bigquerydatatransfer.iam.gserviceaccount.com)授予网络附件所在项目中的以下权限:

  • compute.networkAttachments.get
  • compute.networkAttachments.update
  • compute.subnetworks.use
  • compute.regionOperations.get

如果网络连接尝试连接到位于其他项目(例如共享 VPC)中的 Virtual Private Cloud (VPC),也可能会发生此错误。在这种情况下,您必须向服务账号(例如 service-customer_project_number@gcp-sa-bigquerydatatransfer.iam.gserviceaccount.com)授予共享 VPC 的托管项目的 compute.subnetworks.use 权限。

Salesforce 转移问题

下面是创建 Salesforce 转移作业时遇到的常见错误。

错误:Permission Denied: invalid_client. invalid client credentials
解决方法:验证提供的客户端密钥是否有效。
错误:Permission Denied: invalid_client. client identifier invalid
解决方法:验证提供的客户端 ID 是否有效。
错误:Permission Denied: Error encountered while establishing connection
解决方法:检查提供的 Salesforce MyDomain 名称是否正确。
错误:NOT_FOUND. asset type asset_name is not supported. If you are attempting to use a custom object, be sure to append the "__c" after the entity name. Please reference your WSDL or use the describe call for the appropriate names.
解决方法:按照错误代码中的指导操作,并验证提供的资产名称是否正确。
错误:SERVICE_UNAVAILABLE
解决方法:服务暂时无法处理请求。请等待几分钟,然后再次尝试操作。
错误:DEADLINE_EXCEEDED
解决方法:转移作业运行未在六小时的最长时长截止时间内完成。将大型转移作业拆分成多个较小的转移作业,以最大限度地缩短转移作业运行时间。
错误:Failed to create recordReader to read partition : Batch failed. BatchId='batch_id', Reason='FeatureNotEnabled : Binary field not supported'
解决方法:该连接器不支持包含二进制字段的 sObject 数据结构。从转移作业中移除包含二进制字段的 sObject 数据结构。如需了解详情,请参阅 Salesforce 文档中的导出关联对象时出现“批处理失败:FeatureNotEnabled:不支持二进制字段”错误
错误:RESOURCE_EXHAUSTED: PrepareQuery failed : ExceededQuota : ApiBatchItems Limit exceeded
解决方法:如果您超出了作业运行的每日 ApiBatchItems API 限制,就会出现此错误。Salesforce 设有每日 API 上限,每 24 小时重置一次。为解决此错误,我们建议您拆分并安排转移运行时间,以免超出每日批量 API 限制。您还可以与 Salesforce 支持团队联系,提高每日上限。

Teradata 转移问题

下面是创建 Teradata 转移作业时可能会遇到的常见问题。

错误:Skipping extraction since table does not have change tracking column.

解决方法:当您尝试使用现有的按需转移作业配置对已迁移的表执行 Teradata 转移时,可能会出现上述消息。如果您要对已迁移的表启动新的转移作业,请创建新的转移作业配置并应用按需设置。

当您使用按需转移作业配置重复转移作业时,BigQuery Data Transfer Service 会尝试以增量转移的形式运行该转移作业,但会跳过该表,因为转移作业配置未应用正确的增量设置。如需详细了解不同类型的转移,请参阅按需转移或增量转移

问题:转移 CHAR(N) 数据类型使较短的字符串最多包含 N 个字符的空格。

解决方法:将 CHAR 数据转换为 VARCHAR 并移除来源的多余空格。出现此问题的原因在于,CHAR 是固定长度字符串,而 VARCHAR 应该用于可变长度字符串。您还可以在迁移后使用 RTRIM 函数移除 BigQuery 中的空格。使用 RTRIM 函数的查询类似于以下示例:

UPDATE migrated_table
SET migrated_char_column = RTRIM(migrated_char_column)
WHERE true;

YouTube 转移问题

下面是创建 YouTube 转移作业时遇到的常见错误。

错误:Import failed - no data was available for import. Please verify that data existence was expected.
错误:No data available for requested date. Please try an earlier run date or verify that data existence was expected.

解决方法:如果您先前未创建 YouTube 报告作业,请至少给 YouTube 留两天时间,让 BigQuery Data Transfer Service 代您生成报告。您无需执行任何额外操作。 前 2 天转移会失败,第 3 天应该会成功。如果您之前已创建 YouTube 报告作业,请确认创建转移的用户具有报告的读取权限。

此外,请验证是否为正确的账号设置了转移。在 OAuth 对话框中,必须选择您想要加载数据的频道。

错误:No reports for reporting job with name name.

解决方法:这不是错误。这是一个警告,表示未找到指定报告的数据。您可以忽略此警告。后续转移作业将继续运行。

问题:转移作业创建的结果表不完整,或结果不符合预期。
解决方法:如果您有多个账号,则在看到 YouTube 权限对话框时,必须选择正确的账号。
问题:YouTube 数据分析与 BigQuery YouTube 转移作业之间的数据不匹配。

背景:BigQuery YouTube 转移作业使用 YouTube Reporting API 将数据直接注入到 BigQuery 数据集中。另一方面,YouTube 数据分析信息中心使用 YouTube Analytics API 拉取数据。YouTube 通过其生成的 Reporting API 获得的数字应被视为最终数字,而 YouTube 数据分析信息中心/YouTube Analytics API 中显示的数字应被视为估算数字。这两个 API 之间存在一定的差异。

解决方法:如果报告的数值确实不正确,则 YouTube 的系统和 BigQuery Data Transfer Service YouTube 转移作业都会设置为回填缺失的数值,并可用于新生成的回填天数报告。由于 BigQuery Data Transfer Service YouTube 配置仅加载 YouTube Reporting API 创建的所有可用报告,因此当 BigQuery 转移作业自动导入未来生成的 YouTube 报告时,它也会考虑新生成的数据和更新的数据,并将其注入到正确的日期分区表中。

YouTube 权限问题

对于 YouTube 内容管理员报告,设置转移作业的用户必须具有 CMS user 权限(最低要求)。必须对要为其创建转移作业的每个内容管理员授予 CMS user 权限。

配额问题

错误:Quota exceeded: Your project exceeded quota for imports per project.
解决方法:确认您未在项目中安排过多的转移作业。如需了解如何计算转移作业启动的加载作业数量,请参阅配额和限制