我正在尝试使用google dataflow写入BigQuery。但是数据已损坏,因为我试图在BigQuery中的表的列中写入的数据与该列的数据类型不匹配。因此,作业日志显示如下所示的错误:
BigQuery职位" dataflow_job_6154554826811450962-B"在项目中 "分析回购-dev的"完成错误:errorResult:JSON 表遇到太多错误,放弃了。行:1951年;错误:1。, 错误:JSON表遇到太多错误,放弃了。行:1951年; 错误:1。,错误:从位置开始的行中的JSON解析错误 32470424514在档案: GS://abhishek_bucket/staging_bucket/6154554826811451567/dax-tmp-2016-08-21_08_10_40-11073983896195810394-S122-1-e7a57fb7a3ac697f/-shard-00000-of-00001-try-2ac1f1192effdfbb-endshard.json。 无法解析' 20-259228628。 '作为时间戳。所需格式为 YYYY-MM-DD HH:MM [:SS [.SSSSSS]]字段:Ts;价值:20-259228628。
问题是这些是"错误"而不是"例外"。因此,当Dataflow获得这些错误时,整个数据流作业就会停止。所以我需要一种机制来捕捉"他们。如果这些消息是"例外",我会单独处理它们并且作业不会完全失败。
当我尝试将不良数据写入Google Dataflow中的BigQUery时,有没有办法获得引发的实际异常?
答案 0 :(得分:2)
这是一个带有流式BigQueryIO接收器的known issue;遗憾的是,除了在BigQueryIO.Write之前在您自己的DoFn中进行验证之外,还没有一个好的解决方法。这样做将允许您删除,修复或输出任何无效的记录到另一个接收器。