我正在使用insertAll()
插入数据,但DataInsertAllRespone.InsertErrors
会返回我插入的每一行的相同错误。
错误只给我字段
**Data.ErrorProto.Reason** which contains: **"stopped"**
。
这是调用insertAll()的方法:
public bool InsertAll(BigqueryService s, String datasetId, String tableId, List<TableDataInsertAllRequest.RowsData> data)
{
TabledataResource t = s.Tabledata;
TableDataInsertAllRequest req = new TableDataInsertAllRequest()
{
Kind = "bigquery#tableDataInsertAllRequest",
Rows = data /*Posar aquí les files per pujar al BigQuery*/
};
TableDataInsertAllResponse response = t.InsertAll(req, projectId, datasetId, tableId).Execute();
if (response.InsertErrors != null) return true;
return false;
}
会发生什么?为什么无法上传数据?
* 编辑:* 我意识到,如果我上传少于6行正常工作,但行大小约为1.6 Kb,最大行大小为20Kb。
谢谢, 罗杰
答案 0 :(得分:9)
好吧,几天前我找到了解决方案。使用insertAll()方法将数据流式传输到BigQuery时,可以一次流式传输多行。如果其中一行错误 Data.ErrorProto.Reason 包含此错误的消息,例如“无法将值转换为字符串”。其他行在 Data.ErrorProto.Reason 中包含“已停止”。
如果您看到此错误,可能是行格式不一致
谢谢和问候, 罗杰