Потоковая вставка BigQuery Все, похоже, теряет данные - почему?

Я пытаюсь использовать потоковый метод insert_all для вставки данных в таблицу, используя гем google-api-client в ruby.

Итак, я начинаю с создания новой таблицы в Bigquery (права чтения и записи правильны) со следующим содержимым:

+-----+-----------+-------------+
| Row | person_id | person_name |
+-----+-----------+-------------+
|   1 |         1 | ABCD        |   
|   2 |         2 | EFGH        |   
|   3 |         3 | IJKL        |   
+-----+-----------+-------------+

Это мой код в ruby: (сегодня я обнаружил, что tabledata.insert_all - это ruby ​​для tabledata.insertAll - необходимо обновить документацию / пример Google)

def streaming_insert_data_in_table(table, dataset=DATASET)
    body = {"rows"=>[ 
      {"json"=> {"person_id"=>10,"person_name"=>"george"}},
      {"json"=> {"person_id"=>11,"person_name"=>"washington"}}
    ]}

    result = @client.execute(
      :api_method=> @bigquery.tabledata.insert_all,
      :parameters=> {
          :projectId=> @project_id.to_s,
          :datasetId=> dataset,
          :tableId=>table},
      :body_object=>body,
    )
    puts result.body
end

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

 +-----+-----------+-------------+
 | Row | person_id | person_name |
 +-----+-----------+-------------+
 |   1 |         1 | ABCD        |
 |   2 |         2 | EFGH        |
 |   3 |         3 | IJKL        |
 |   4 |        10 | george      |
 |   5 |        11 | washington  |
 +-----+-----------+-------------+

Затем я изменяю данные в методе на:

body = {"rows"=>[ 
      {"json"=> {"person_id"=>5,"person_name"=>"john"}},
      {"json"=> {"person_id"=>6,"person_name"=>"kennedy"}}
    ]}

Запустите метод и получите это в Bigquery:

 +-----+-----------+-------------+
 | Row | person_id | person_name |
 +-----+-----------+-------------+
 |   1 |         1 | ABCD        |
 |   2 |         2 | EFGH        |
 |   3 |         3 | IJKL        |
 |   4 |        10 | george      |
 |   5 |         6 | kennedy     |
 +-----+-----------+-------------+

Итак, что дает? Я потерял данные.... (идентификаторы 11 и 5 исчезли) Ответы на запрос также не содержат ошибок.

Может кто-нибудь сказать мне, если я делаю что-то неправильно или почему это происходит, пожалуйста?

Буду признателен за любую оказанную помощь.

Спасибо и хорошего дня.

1 ответ

Решение

Обнаружено, что это как-то связано с пользовательским интерфейсом (счетчик строк не заполняется некоторое время, а попытка извлечь данные из таблицы приводит к ошибке "Неожиданно. Пожалуйста, попробуйте еще раз"). Однако данные на самом деле хранятся и могут быть запрошены. Спасибо за помощь Джордан

Другие вопросы по тегам