加载 Bigquery 表时出现内部错误

Posted

技术标签:

【中文标题】加载 Bigquery 表时出现内部错误【英文标题】:Internal Error while loading Bigquery table 【发布时间】:2016-01-27 00:46:47 【问题描述】:

使用 bq load --source_format=NEWLINE_DELIMITED_JSON 加载具有 1000 万条记录的 1.3Gb json 文件时出现此类错误

如果我只将前 100 万条记录放入一个单独的文件中,它可以正常加载,但是当我尝试在整个文件上运行时,我会得到:

当前状态:待处理 在加载操作中等待 bqjob_r6ac3e4 BigQuery 错误:错误 处理作业 '我的项目产品:bqjob_r6ac3e4da72b48e4f_000001528037b394_1':太多 遇到的错误。限制为:0。失败详情: - 文件:0:发生内部错误,请求无法完成。

我已经能够加载其他大表,但是当我去加载这个时总是得到这个错误。除了将文件分成越来越小的部分以尝试找到有问题的行之外,还有其他方法可以解决此问题吗?

(类似于Internal error while loading to Bigquery table)

【问题讨论】:

你后来试过了吗?您是否尝试过在该位置使用一个小文件,可能由于某种原因无法访问该存储桶中的文件? 是的,是的。这似乎不是一个暂时的问题。即使是这样,如果有更多信息丰富的错误消息,或者我可以运行一些工具来验证我的输入文件,那就太好了。 【参考方案1】:

查看我们关于您的工作 bqjob_r6ac3e4da72b48e4f_000001528037b394_1 的日志,似乎我们无法读取第一个文件(可能还有其他文件,但它抱怨第一个文件)。

文件被压缩了吗?过去,当文件压缩不正确时,我们也看到过类似的错误。

当然也可能是其他问题。但我现在没有足够的信息。如果您可以与我们分享另一个失败的作业 ID,将会很有帮助。如果这些导入作业始终与文件 0 一起失败,我可以帮助您检查我们的后端。谢谢!

【讨论】:

非常感谢您的调查!我必须检查一下,但我敢打赌这是因为我使用的是 bgzip 而不是 gzip。【参考方案2】:

如果您在 BigQuery 的网页界面中进行作业,它应该会显示前五个错误。这些可能有用,也可能没用。

此外,您可以将允许的最大不良记录数设置为一个非常高的数字(10,000,000)。这样,违规行将被跳过,您可以尝试通过检查结果来识别它们。 (在 Java api 中,这是方法 JobConfigurationLoad.setMaxBadRecords(int),如果您使用命令行,则为选项 --max_bad_records=int)。

【讨论】:

谢谢!我会尝试增加最大坏记录。当我在 Web UI 中查看作业时,我现在看到的只是错误原因:无效。在故障排除错误中获取有关此错误的更多信息:无效。错误:发生内部错误,请求无法完成。遇到的错误太多。限制为:0。作业 ID:.... 开始时间:2016 年 1 月 26 日下午 6:45:51 结束时间:2016 年 1 月 26 日下午 6:46:22 目标表:...源 URI:已上传文件源格式:JSON(换行符分隔)架构: 不走运。使用 --max_bad_records 1000000 会导致相同的错误消息,没有任何进一步的细节。 所以现在它说“遇到太多错误。限制是 1000000”?尝试将其设置为大于文件中行数的数字(这就是我建议 10,000,000 的原因)。这样您就可以判断问题是否真的出在特定的行上。【参考方案3】:

根据链接: https://cloud.google.com/bigquery/docs/loading-data#limitations

目前,当您将数据加载到 BigQuery 时,gzip 是唯一的 支持 CSV 和 JSON 文件的文件压缩类型。

正如您提到的,您正在尝试加载 bzip(它不是受支持的格式),您可能会收到错误消息。尝试解压缩文件并加载它,这可能会有所帮助。

【讨论】:

以上是关于加载 Bigquery 表时出现内部错误的主要内容,如果未能解决你的问题,请参考以下文章

尝试从 Big Query 导出时出现内部错误

加载时间戳时出现 Bigquery 错误

从 Cloud Storage Json 加载数据时出现 BigQuery 错误

将 300 MB 文件加载到 BigQuery 时出现超时错误

在 cs50 ide 中使用烧瓶时出现内部服务器错误

从 BigQuery 中的 .avro 文件创建表时出现“resourcesExceeded”错误