我需要定期擦除表中的所有数据并从头开始。从我在这里读到的,最好的方法是删除然后创建表。我试过了,结果表中没有我在创建后立即添加的任何数据。
基本上我(在java中):
TableId myTable = TableId.of("MyDataset", "MyTable");
Table table = bigQuery.getTable(myTable);
table.delete();
TableInfo tableInfo = TableInfo.newBuilder(myTable, definition).build();
table = bigQuery.create(tableInfo);
List<RowToInsert> initialRows = new ArrayList<RowToInsert>();
... add about 5 rows to initialRows
table.insert(initialRows);
如果我不删除而不创建新表,我没有问题。此外,我仅限于使用java。
我需要采取哪些不同的想法?
答案 0 :(得分:0)
虽然这是预期的行为,但也许仍有事情可以做:
bool check;
while(check ){
Thread.sleep(1000);
try {
table1 = bigquery.getTable(myTable);
out1.println( "*** deleting table: "+table2.getTableId().toString()+ " ***" );
} catch (Exception e) {
check = false;
out1.println("*** table DELETED *** ");
//break;
}
}
然后确保检查行是否已添加,然后再次尝试使用指数退避(例如)。