Bigquery bq加载内部错误

时间:2016-08-18 09:58:11

标签: json google-bigquery google-cloud-platform

背景

我正在尝试使用bq cli加载json文件x.json。

cat x.json

{"名称":" XYZ""移动":" XXX""位置":& #34; ABC"}

{"名称":" XYZ""移动":" XXX""年龄":& #34; 22"}

使用的命令

bq load --autodetect --source_format = NEWLINE_DELIMITED_JSON项目:test_datasets.cust x.json

'的 CUST '是一个空模式的表。

我正在使用' - autodetect ,以便BigQuery自动检测架构。

输出

上传完成。

等待bqjob_r475558282b85c552_000001569cf1efd8_1 ...(1s)当前状态:DONE
加载操作中的BigQuery错误:处理作业'项目时出错:bqjob_r475558282b85c552_000001569cf1efd8_1':发生内部错误,无法完成请求。

任何想法,为什么发生内部错误以及如何解决它?

2 个答案:

答案 0 :(得分:0)

我们看到了几个问题:

  • 请求随机输入类型'后端错误'
  • 请求随机失败,类型为'连接错误'
  • 请求随机失败,类型为'超时' (注意这里,因为只有一些行失败而不是整个有效载荷)
  • 其他一些错误消息是非描述性的,而且它们非常含糊,以至于它们无法帮助您,只需重试即可。
  • 我们每天都会看到数百起此类故障,因此它们几乎不变,与云健康状况无关。

对于所有这些,我们在付费Google Enterprise支持中打开了案例,但不幸的是他们没有解决它。接缝建议的选项是指数 - 退避并重试,甚至是支持告知这样做。此外,故障率符合我们在SLA中99.9%的正常运行时间,因此没有理由反对。

关于SLA需要注意的事项,它是一个非常严格定义的结构,细节是here。 99.9%的正常运行时间未直接转换为失败率。这意味着如果BQ在一个月内有30分钟的停机时间,然后在该时间段内进行10,000次插入但在该月的其他时间没有进行任何插入,则会导致数字被串联。这就是我们建议指数退避算法的原因。 SLA明确地基于正常运行时间而不是错误率,但从逻辑上讲,如果您在不同时间使用退避重试设置在整个月中进行流式插入,则两者之间会密切相关。从技术上讲,如果你已经设置了适当的重试机制,那么如果你在月内进行插入,你应该平均经历大约1/1000次失败的插入。

您可以查看有关项目运行状况的此图表: https://console.developers.google.com/project/YOUR-APP-ID/apiui/apiview/bigquery?tabId=usage&duration=P1D

答案 1 :(得分:0)

试试这个:

bq \
--project_id your_id_proyect \
--location=US \
load \
--autodetect \
--source_format=NEWLINE_DELIMITED_JSON \
'name_of_your_table' \
x.json