这是我用来向bigquery发送1行数据的代码。
假设如下:
它始终返回没有错误的响应并跟随输出: {" kind":" bigquery#tableDataInsertAllResponse"} //已确认状态:200
我的行的结构可能不正确,但我花了很多时间将它分开。据我了解
List(TableDataInsertAllRequest.Rows对象)
TableDataInsertAllRequest.Rows对象包含一个键" json"其值为 - >
地图(包含所需的JSON值)
List<TableDataInsertAllRequest.Rows> rowsList = new ArrayList<>();
TableDataInsertAllRequest.Rows oneRow = new TableDataInsertAllRequest.Rows();
try {
Map<String, Object> objectMap = new TreeMap<>();
oneRow.setJson(objectMap);
} catch (Exception e){
e.printStackTrace();
}
rowsList.add(oneRow);
TableDataInsertAllRequest content = new TableDataInsertAllRequest();
content.setKind("bigquery#tableDataInsertAllRequest");
content.setRows(rowsList);
Bigquery.Tabledata.InsertAll request =
bigqueryService.tabledata().insertAll(projectId, datasetId, tableId, content);
TableDataInsertAllResponse response = request.execute();
有什么想法吗?
答案 0 :(得分:0)
找到解决方案,显然我在文档中错过了它。
https://cloud.google.com/bigquery/streaming-data-into-bigquery
“数据最多可能需要90分钟才能用于复制和导出操作......”
P.S。对于遇到这个问题的任何人,看看数据是否实际上传查询表,在流式传输后几乎应该立即有数据。
**请务必了解流限制,否则您将收到随机400错误。不得不为每个请求分块我的数据。