Обработка плохих записей в автоматическом режиме Snowpipe

#snowflake-cloud-data-platform

#snowflake-cloud-data-platform

Вопрос:

Я использую Snowpipe Snowflake для автоматического приема нескольких файлов, каждый из которых содержит 1000 записей json. Я наблюдаю, что если в каком-либо файле есть плохая запись, скажем, размер записи> 16 МБ, который не может содержать столбец variant, канал загружает частичные данные из файла до записи с плохой записью и игнорирует остальные записи в файле. Например, если у меня плохая запись в позиции 150, то загружается только 149 записей, а остальные записи из 850 записей пропущены. Чего я хочу, так это просто проигнорировать плохую запись и загрузить все остальные 999 записей. Есть ли в канале конфигурация или что-то еще, что я могу использовать? Я использую on_error = ‘continue’, который в данный момент находится в канале. Любая помощь будет очень признательна. Спасибо!

Комментарии:

1. Привет — вы используете STRIP_OUTER_ARRAY = TRUE ?

2. Интересно: какой тип данных вы принимаете, что для этого требуется более 16 МБ сжатых данных на запись?

3. @FelipeHoffa OP сказал, что это JSON.

4. Я считаю, что проблема здесь в том, что on_error='continue' , возможно, неправильно обрабатывается проблема переполнения поля. Поскольку он не может загрузить всю запись целиком, чтобы определить, где заканчивается запись, он просто полностью выдает ошибку из файла. Возможно, стоит обратиться в службу поддержки Snowflake, чтобы определить, есть ли ошибка, которую необходимо устранить.

5. @FelipeHoffa Обычные записи составляют всего несколько КБ, но время от времени возникают выбросы, из-за которых некоторые увеличенные данные поиска приводят к росту записей за пределы 16 МБ, которые я хочу обработать, игнорируя и продолжая загружать остальные записи