镶木地板 1.11.0 中的 OffsetIndex

OffsetIndex in parquet 1.11.0

从parquet 1.10.0开始,parquet引入了两个新的索引结构,即ColumnIndex和OffsetIndex。文件在这里 https://github.com/apache/parquet-format/blob/master/PageIndex.md

从文档中,我可以清楚地理解ColumnIndex的思想,它指向每个列块内的页面。但是我不太明白 OffsetIndex 背后的想法。

如文档所述,OffsetIndex 用于导航到由 ColumnIndex 标识的行。但是 ColumnIndex 仅指向被整体压缩的页面。那么,如何使用 OffsetIndex 导航到行组中的单个行?

阅读此处的文档后:https://docs.google.com/document/d/1sBACp8Lbutuj1Zxdowvsrlm8ku4BFxf8U_Do5K2wSO4/edit

一句话,一个ColumnIndex存储属于一个列的所有页面的统计信息,而ColumnChunk中每个页面的确切偏移量存储在OffsetIndex中。