Я использую клиентскую библиотеку 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'},.....}]
В чем проблема? Не исключение также
В этом проблема также упоминается, что только что созданная таблица не будет обновляться немедленно.
Кроме того, я не совсем уверен, завершен ли ваш код, вы видели пример это? Если в вашем коде есть что-то еще, обновите свой вопрос. Схема таблицы также будет полезна, как упоминает knh190.
Возможны 2 ситуации:
Использованная литература:
client.insert_rows_json
метод с использованием StreamingInsert
.
Вставка данных в BigQuery с помощью StreamingInsert
вызовет задержку при предварительном просмотре таблицы в консоли BigQuery.
Данные появились не сразу. Так,
Вам необходимо запросить их, чтобы подтвердить вставленные данные.
получил ответ на свой вопрос. Проблема заключалась в том, что я вставлял данные еще одного столбца, для которых данных не было. Я нашел хак, чтобы узнать, не вставляются ли данные в таблицу bigquery.
bq --location=US load --source_format=NEWLINE_DELIMITED_JSON dataset.tablename newline_delimited_json_file.json
. Запустите эту команду в своем терминале и посмотрите, выдает ли какие-либо ошибки. Если он выдает ошибку, вероятно, что-то не так с вашей схемой данных/таблицы.Лучше, если API python выдает ошибку/исключение, как на терминале, это было бы полезно.
Хорошо, что ты смог это понять. Основываясь на вашем последнем комментарии, я бы порекомендовал вам открыть запрос функции в библиотеке python, чтобы ее команда разработчиков могла знать о предлагаемом вами улучшении. Вы можете использовать этот связь для проблем с библиотеками Python GCP на Github.
В документе говорится: «Данные строки должны быть вставлены. Ключи должны соответствовать полям схемы таблицы, а значения должны быть представлениями, совместимыми с JSON». Это соответствует? Схему покажите пожалуйста?