【问题标题】:BigQuery Scheduled Data Transfer throws "Incompatible table partitioning specification." Error - but error message is truncatedBigQuery 计划数据传输抛出“不兼容的表分区规范”。错误 - 但错误消息被截断
【发布时间】:2021-01-19 18:48:57
【问题描述】:

我正在使用新的 BQ 数据传输 UI,在安排数据传输时,传输失败。 运行历史记录中的错误消息并没有太大帮助,因为错误消息似乎被截断了。

Incompatible table partitioning specification. Expects partitioning specification interval(type:hour), but input partitioning specification is ; JobID: xxxxxxxxxxxx

请注意错误中显示...“但输入分区规范是...”的部分,分号前没有任何内容。似乎此错误已被截断。

关于运行的一些细节: 该运行每晚从位于 GCS 存储桶中的 CSV 文件导入数据。成功摄取后,该过程将删除该文件。 BQ中的目标表是使用默认分区伪列(_PARTITIONTIME)的分区表

到目前为止我做了什么:

  1. 重新运行计划的数据传输 - 失败并引发了同样的错误
  2. 删除 BQ 中的目标表并使用不同的分区规范(日、小时、月)重新创建它 - 然后重新运行计划传输 - 失败并引发相同的错误。
  3. 使用 BQ UI(创建表,附加特定表)手动导入数据(我从 GCS 下载文件并从我的机器本地上传) - 完美运行。
  4. 检查了这是否是 Stack Overflow 上的一个已知问题,只发现了这个问题(现已关闭)——关闭,但不完全是问题。 (BigQuery Data Transfer Service with BigQuery partitioned table)

我正在推迟做的事情,因为这需要更多的工作。

  1. 更改目标 BQ 表的架构以包含特定于分区的指定列
  2. 在 GCS 内部的原始文件中包含系统生成的时间戳,并确保进程将其识别为分区字段。

我做错了吗?或者这是一个已知问题?

【问题讨论】:

    标签: google-bigquery


    【解决方案1】:

    好的,我相信我已经解决了这个问题。如果目标表正在分区,您似乎需要在目标表中包含运行时参数。

    https://cloud.google.com/bigquery-transfer/docs/gcs-transfer-parameters

    这部分具体称为“运行时参数示例”:https://cloud.google.com/bigquery-transfer/docs/gcs-transfer-parameters#loading_a_snapshot_of_all_data_into_an_ingestion-time_partitioned_table

    他们还建议不能在这些参数中指定分钟。

    您需要将参数附加到目标表详细信息,如下所示:

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-07-27
      • 2020-05-16
      • 2016-07-21
      • 2016-04-22
      • 2020-04-30
      • 1970-01-01
      • 2016-07-10
      相关资源
      最近更新 更多