Перезаписать таблицу в BigQuery с Java - PullRequest
0 голосов
/ 17 мая 2018

Мне нужно периодически стирать все данные из таблицы и начинать с нуля. Из того, что я прочитал здесь, лучший способ сделать это - удалить, а затем создать таблицу. Я попытался это сделать, и в полученной таблице нет данных, которые я добавляю сразу после создания.

В основном я делаю (в 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 только для этого.

Есть идеи, что мне нужно делать по-другому?

1 Ответ

0 голосов
/ 24 мая 2018

Несмотря на то, что это ожидаемое поведение, может быть, что-то еще можно сделать:

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;
            }

        } 

И затем, чтобы убедиться, что проверены, были ли добавлены строки, а затем, если нет, повторите попытку с экспоненциальным откатом (например,).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...