【问题标题】:Error loading JSON data into big query: flat value specified for record field将 JSON 数据加载到大查询中时出错:为记录字段指定了平面值
【发布时间】:2025-12-10 19:10:01
【问题描述】:

通过 load 命令将 JSON 记录加载到 Big Query 时,我们看到以下错误:

加载操作中的 BigQuery 错误:处理作业“job_d727bf8944884b20b709ded2887b7a13”时出错:为记录字段指定了平面值 失败详情:

  • 出乎意料。请重试。
  • 行大于最大允许大小

有问题的记录似乎远低于 JSON 允许的最大大小,并且格式正确。表的架构使用了嵌套记录,但是日志的格式和架构最近都没有改变,所以不清楚为什么会突然出现这个错误。

更新

我们通常使用 --max_bad_records 参数运行加载操作,以便跳过可能存在的少数格式错误的记录。我尝试重新加载您指定的文件是单独失败的根源,这次似乎成功了,没有错误,无论是否定义了 max_bad_records。

bq load --max_bad_records 20 --source_format NEWLINE_DELIMITED_JSON telemetry_data_2013_06_20 "gs:/.../2013-06-12-01/ip-10-144-3-198.log"

这里是工作 ID:

job_5822a36c5c364117a6651f3e8b81b49f
job_ed4080f9f60c485bb265c09367902f00

为什么这个文件这次成功了?

【问题讨论】:

    标签: json google-bigquery


    【解决方案1】:

    根据我们可以访问的日志,您的加载作业中似乎有一个重复的条目,只是简单的“:”,没有任何其他数据。

    BigQuery 中可能存在问题,在某些情况下,将单个记录大小限制设置为 2 MB,而不是宣传的 16 MB。您能否确认引发“Row 大于最大允许大小”响应的行小于 2Mb?

    【讨论】:

    • 仅供参考,我们也为此提供支持票,以防您想协调。 Google 企业支持案例 #03215215
    • 我无法在相关文件中找到您在上面声明的数据错误。你能确认文件名和字节偏移量正确吗?