Ошибка BigQuery для большого файла

Я пытаюсь загрузить json-файл в GoogleBigquery, используя скрипт на https://github.com/GoogleCloudPlatform/python-docs-samples/blob/master/bigquery/api/load_data_by_post.py с очень небольшим изменением. я добавил

,chunksize=10*1024*1024, resumable=True)) 

к MediaFileUpload .

Скрипт отлично работает для образца файла с несколькими миллионами записей. Фактический файл составляет около 140 ГБ с примерно 200 000 000 записей. insert_request.execute () всегда терпит неудачу с

 socket.error: `[Errno 32] Broken pipe` 

через полчаса или около того. Как это можно зафиксировать? Каждая строка меньше 1 КБ, поэтому она не должна быть проблемой квоты.

One Solution collect form web for “Ошибка BigQuery для большого файла”

При обработке больших файлов не используются потоковые передачи, а пакетная загрузка: потоковая передача будет легко обрабатывать до 100 000 строк в секунду. Это очень хорошо для потоковой передачи, но не для загрузки больших файлов.

Образец кода, связанный с этим, делает правильную вещь (пакет вместо потоковой передачи), поэтому мы видим другую проблему: этот примерный код пытается загрузить все эти данные прямо в BigQuery, но загрузка через POST-часть не удалась.

Решение. Вместо того, чтобы загружать большие куски данных через POST, сначала выполните их в Google Cloud Storage, а затем скажите BigQuery прочитать файлы из GCS.

Обновление : беседуя с командой инженеров, POST должен работать, если вы попробуете меньший chunksize .

  • Получить данные JSON in Flask
  • Функции вызова Python Flask с помощью кнопок
  • Как преобразовать объект Python datetime с помощью JSON.loads?
  • TypeError: не может использовать шаблон строки для объекта с байтом
  • Сериализация JSON моделей Google App Engine
  • Почему я получаю UnicodeDecodeError в кодировке JSON Python?
  • json.decoder.JSONDecodeError: Ожидающее значение: строка 1 столбец 1 (char 0)
  • Скрипт CSV для JSON
  • Python - лучший язык программирования в мире.