Google BigQuery завершается с ошибкой «Ресурсы превышены во время выполнения запроса: UDF не хватает памяти» при загрузке файла Parquet - PullRequest
0 голосов
/ 27 февраля 2020

Мы используем API BigQuery Java для загрузки данных из локального источника данных, как описано здесь . При загрузке файла Parquet с 18 столбцами (16 строк, 1 float64, 1 отметка времени) и 13 строками Mio (например, 17 ГБ данных) загрузка завершается неудачно со следующим исключением:

Ресурсы превышены во время выполнения запроса UDF не хватает памяти .; Не удалось прочитать файл Parquet. Это может произойти, если файл содержит слишком большую строку или общий размер страниц, загруженных для запрашиваемых столбцов, слишком велик.

Однако при загрузке тех же данных с использованием CSV (17.5 ГБ данных) загрузка успешно завершена. Мои вопросы:

  • Какая разница при загрузке Parquet или CSV?
  • Какой запрос выполняется во время загрузки?
  • Можно ли увеличить память для этот запрос?

Спасибо Тобиас

1 Ответ

0 голосов
/ 28 февраля 2020

Parquet - это столбчатый формат данных, что означает, что загрузка данных требует чтения всех столбцов. В паркет столбцы делятся на страницы. BigQuery сохраняет целые несжатые страницы для каждого столбца в памяти при чтении данных с них. Если входной файл содержит слишком много столбцов, работники BigQuery могут получить ошибки Out of Memory.

Даже если точное ограничение не применяется, как это происходит с другими форматами, рекомендуется, чтобы записи находились в диапазоне 50 Мб, загрузка больших записей может привести к resourcesExceeded ошибкам .

Принимая во внимание вышеизложенные соображения, было бы замечательно уточнить следующие моменты:

  1. Каков максимальный размер строк в файле Parquet?
  2. Каков максимальный размер страницы в столбце?

Эту информацию можно получить из общедоступного инструмента .

Если вы думаете об увеличении выделенной памяти для запросов, вам нужно прочитать о слотах Bigquery .

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