BigQuery - вставить строку размером более 1 МБ - PullRequest
1 голос
/ 09 марта 2020

My python приложение хранит данные результатов в BigQuery. В коде я создаю JSON, который отражает целевую структуру таблицы BQ, а затем вставляет ее.
Как правило, он работает нормально, но не может сохранить строки, размер которых превышает 1 МБ. Это ограничение использования потоковых вставок.
Я проверил документацию Google API: https://googleapis.dev/python/bigquery/latest/index.html
Кажется, что Client методы, такие как insert_rows или insert_rows_json, используют insertAll метод внизу - который использует механизм потоковой передачи.
Есть ли способ вызвать "стандартную" вставку BigQuery из python кода для вставки строки размером более 1 МБ? Это было бы довольно редким явлением, поэтому меня не беспокоят квоты на ежедневный лимит количества вставок в таблицу.

1 Ответ

2 голосов
/ 09 марта 2020

Клиентская библиотека не может go выйти за пределы API. См. текущие квоты , строка на момент написания этой статьи не может быть больше 1 МБ.

Обходное решение, которое мы использовали, - это сохранять записи в N JSON в GCS в пакетах по 100 МБ - мы используем библиотеку gcsfs - и затем выполнять задание bq.load().

У меня фактически есть просто зарегистрировал запрос функции здесь , чтобы увеличить ограничение, так как это очень ограничивает. Если вы заинтересованы, убедитесь, что «звезда» его набирает обороты.

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