Можно ли десериализовать файлы ORC по частям?

#amazon-s3 #orc

Вопрос:

У меня есть огромный объект ORC ( > 50 ГБ) в S3. Я хотел бы десериализовать его по частям (потоковым способом). Это позволяет мне повторить попытку с последнего смещения в случае сбоя загрузки файла S3.

Я понимаю, что ORC хранит метаданные в нижнем колонтитуле. Итак, я ищу какое-то решение, которое сначала прочитает нижний колонтитул, а затем фрагментирует десериализацию.

Ответ №1:

s3 поддерживает запросы для определенных диапазонов файлов через их http api. Предполагая, что вы заранее знаете размер своей полосы, вы можете использовать api для получения размера файла. Вы можете рассчитать смещение postscript и загрузить его только в виде фрагмента. С помощью этих метаданных вы можете затем начать извлекать оставшуюся часть файла. Вероятно, было бы лучше выполнить несколько запросов, по одному для каждой полосы, и декодировать их одновременно.