BigQuery外部表坏行异常咨询:未触发预期校验错误
BigQuery外部表字段不符行为解析
你遇到的情况属于预期行为,针对两种不同的字段问题,BigQuery的处理逻辑如下:
1. 包含多余字段的文件(test_file_2_2_2_2_2_2.json)
ignoreUnknownValues参数默认值为False,但它的作用并非遇到多余字段就标记为坏行。实际逻辑是:当读取JSON数据时,若遇到Schema中未定义的字段,BigQuery会直接忽略这些多余字段,正常读取Schema中已定义的字段内容,不会将该行判定为坏行。因此添加该文件后不会触发错误,完全符合预期。
2. 缺失字段的文件(test_file_3_3_3_3_3_3.json)
你的Schema中两个字段均为NULLABLE模式,当JSON行缺失对应字段时,BigQuery会自动将该字段的值设为NULL,而非标记为坏行。如果你的“结果异常”是指查询结果中出现了NULL值,这属于正常行为;但如果是触发了查询错误,那大概率是文件存在其他问题(比如JSON语法错误、字段值与Schema类型不匹配等),而非单纯的字段缺失。
额外说明:触发坏行错误的场景(maxBadRecords=0时)
只有出现以下情况,才会触发坏行错误:
- JSON格式存在语法错误(如括号未闭合、逗号使用错误等)
- 字段值与Schema定义的类型不匹配(例如将字符串存入INTEGER类型字段)
- Schema中标记为
REQUIRED的字段缺失 - 数组或嵌套结构不符合Schema定义
内容的提问来源于stack exchange,提问作者Jeffrey Van Laethem
相关产品推荐
相关产品推荐

