0
我使用的Google BigQuery API進行插入數據至BigQuery
public void upload(Collection<Bucket> buckets){
log.finer("Uploading " + buckets.size() + " buckets to bigquery");
List<Rows> rows=new ArrayList<Rows>();
for ( Bucket bucket : buckets) {
TableRow row=new TableRow();
row.set("uploaded",System.currentTimeMillis()/1000f);
row.set("codepoint",bucket.getKey().getCodepoint());
row.set("namespace",bucket.getKey().getNamespace());
row.set("kind",bucket.getKey().getKind());
row.set("op",bucket.getKey().getOp());
row.set("query",bucket.getKey().getQuery());
row.set("time",bucket.getKey().getTime()/1000f);
row.set("reads",bucket.getReads());
row.set("writes",bucket.getWrites());
TableDataInsertAllRequest.Rows rowWrapper=new TableDataInsertAllRequest.Rows();
rowWrapper.setJson(row);
rows.add(rowWrapper);
}
TableDataInsertAllRequest request=new
TableDataInsertAllRequest().setRows(rows);
String tableId=tablePicker.pick();
try {
TableDataInsertAllResponse response=bigquery.tabledata().insertAll(insightDataset.projectId(),insightDataset.datasetId(),tableId,request).execute();
if (response.getInsertErrors() != null && !response.getInsertErrors().isEmpty()) {
throw new RuntimeException("There were errors! " + response.getInsertErrors());
}
}
catch ( IOException e) {
throw new RuntimeException(e);
}
}
我的問題
:
我用2服務器呼叫功能插入至BigQuery同時,同樣的帳戶bigquery。
例子:
服務器A:有500行
服務器B:有400行
這是正確的,如果插入到Google BigQuery中的900行
但是當我檢查在谷歌的BigQuery有1300行。
當我測試1臺服務器時,它插入正確(500行與服務器A和400行與服務器B)。
你能幫我解決這個問題嗎?
這是正確的。非常感謝! –
我使用GUIID作爲insertID,但它不重複。你知道爲什麼嗎? –