Ошибка Snowflake «Превышен максимальный размер LOB (16777216)» при загрузке данных из Parquet - PullRequest
0 голосов
/ 29 мая 2020

Я хочу загрузить данные из S3 в Snowflake. Мои файлы имеют формат Parquet и были созданы искровым заданием. В моей папке в S3 находится 199 паркетных файлов, в каждом около 5500 записей. Каждый паркетный файл быстро сжимается и имеет размер около 485 КБ.

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

Max LOB size (16777216) exceeded, actual size of parsed column is 19970365

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

Вот основы моего SQL запроса:

CREATE OR REPLACE TEMPORARY STAGE my_test_stage
            FILE_FORMAT = (TYPE = PARQUET)
            STORAGE_INTEGRATION = MY_STORAGE_INTEGRATION
            URL = 's3://my-bucket/my-folder';

SELECT $1 FROM @my_test_stage(PATTERN => '.*\\.parquet')

Кажется, я могу прочитать каждый файл паркета индивидуально, изменив параметр URL в запросе CREATE STAGE на полный путь к паркетному файлу. Я действительно не хочу перебирать каждый файл для их загрузки.

Ответы [ 2 ]

1 голос
/ 30 мая 2020

Может быть проблема с одной или несколькими записями из вашего файла, попробуйте запустить команду копирования с опцией «ON_ERROR», чтобы отладить, все ли записи имеют аналогичную проблему или только несколько.

1 голос
/ 29 мая 2020

Тип данных VARIANT налагает ограничение на размер 16 МБ (сжатый) для отдельных строк.

Набор результатов фактически является отображением в виде виртуального столбца, поэтому ограничение в 16 МБ также применяется

Документы Ссылка: https://docs.snowflake.com/en/user-guide/data-load-considerations-prepare.html#semi -ограничения-размера-структурированных данных

...