GCP Bigquery 未在错误流中提供所有错误记录

GCP Bigquery not providing all bad records in the error stream

同时将数据批量加载到 BigQuery 并将最大坏记录数指定为 5000。BigQuery 错误流提供了 5 条错误记录。

当我将最大坏记录数更改为 100 并加载同一文件时。加载失败。

如果我的理解是正确的,这意味着错误记录比我之前得到的多(5 条记录),但 BigQuery 没有将其记录在错误流中。

谁能解释为什么会这样?

BigQuery 流错误:

BigQuery 的作业错误流仅提供它遇到的初始错误,不保证它将提供所有错误的详尽列表。

有关详细信息,请参阅 REST 参考文档。错误流存在于 JobStatus 子消息中: https://cloud.google.com/bigquery/docs/reference/rest/v2/Job#jobstatus

如果您想对输入文件进行更广泛的验证,我建议您进行某种预处理(可能是 dataflow/beam 中的某些内容),或者切换到更好的自描述格式,如 avro 或 parquet。由于不同读者和作者之间的许多特质和差异,CSV 是一种臭名昭著的格式。