Смещающий индекс в parquet 1.11.0

#parquet

#паркет

Вопрос:

Начиная с parquet 1.10.0, parquet вводит две новые структуры индексов, то есть ColumnIndex и OffsetIndex. Документ находится здесь https://github.com/apache/parquet-format/blob/master/PageIndex.md

Из документа я могу четко понять идею ColumnIndex, которая указывает на страницы внутри каждого фрагмента столбца. Но я не совсем понимаю идею, лежащую в основе OffsetIndex.

Как говорится в документе, OffsetIndex используется для перехода к строкам, идентифицируемым с помощью ColumnIndex. Но ColumnIndex указывает только на страницы, которые сжимаются целиком. Тогда как можно использовать OffsetIndex для перехода, например, к одной строке внутри группы строк?

Ответ №1:

После прочтения документа здесь:https://docs.google.com/document/d/1sBACp8Lbutuj1Zxdowvsrlm8ku4BFxf8U_Do5K2wSO4/edit

В одном предложении в одном ColumnIndex хранится статистика всех страниц, принадлежащих одному столбцу, в то время как точное смещение каждой страницы в пределах ColumnChunk хранится в OffsetIndex.