背景
我正在尝试使用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':发生内部错误,无法完成请求。
任何想法,为什么发生内部错误以及如何解决它?
答案 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