Данные BigQuery не вставляются - PullRequest
0 голосов
/ 27 мая 2019

Я использую клиентскую библиотеку Python для вставки данных в большую таблицу запросов.Код выглядит следующим образом.

client = bigquery.Client(project_id)
errors = client.insert_rows_json(table=tablename,json_rows=data_to_insert)
assert errors == []

Нет ошибок, но данные также не вставляются.

Примеры строк JSON:

[{'a':'b','c':'d'},{'a':'f','q':'r'},.....}]

В чем проблема?Не исключение также

Ответы [ 3 ]

0 голосов
/ 27 мая 2019

client.insert_rows_json метод с использованием StreamingInsert. Вставка данных в BigQuery с использованием StreamingInsert приведет к задержке при предварительном просмотре таблицы на консоли BigQuery.
Данные не появились сразу. Так, Вам необходимо запросить их, чтобы подтвердить вставленные данные.

0 голосов
/ 07 июня 2019

получил ответ на мой вопрос. Проблема заключалась в том, что я вставлял еще один столбец данных, для которых данных там не было. Я нашел хак, чтобы узнать, не вставляются ли данные в таблицу больших запросов.

  1. Измените данные на json с разделителями новой строки, используя ключи в качестве имен столбцов и значения в качестве значений, которые вы хотите для этого конкретного столбца.
  2. bq --location=US load --source_format=NEWLINE_DELIMITED_JSON dataset.tablename newline_delimited_json_file.json. Запустите эту команду в своем терминале и посмотрите, не выдаст ли ошибки. Если он выдаст ошибку, вероятно, что-то не так с вашей схемой данных / таблицы.
  3. Измените схему данных / таблицы в соответствии с ошибкой и повторите попытку, вставив ее через python.

Было бы лучше, если бы Python API генерировал ошибку / исключение, как в терминале, это было бы полезно.

0 голосов
/ 27 мая 2019

Возможны 2 ситуации:

  1. ваши данные не соответствуют схеме
  2. ваша таблица только что создана, а обновление просто еще не доступно

Ссылки:

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