Parquet 文件存储哪些级别的最小/最大/不同(等)统计信息?

use*_*850 1 apache-spark parquet

我知道 Parquet 文件存储列统计信息column每个行组内的级别上存储列统计信息,以允许对数据进行更有效的查询。

它是否还存储该file级别的列统计信息(以避免不必要地读取整个文件)?栏目page级别怎么样?

Zol*_*tan 5

Parquet 确实存储行组的最小/最大统计信息,但这些统计信息并不存储在行组本身内,而是存储在文件页脚中。因此,如果没有任何行组匹配,则无需读取除页脚之外的文件的任何部分。为此,不需要为整个文件单独的最小/最大统计信息,行组级别的统计信息解决了这个问题,因为行组通常很大。

页面级最小/最大统计信息也存在,但称为列索引,并且仅在未发布的 1.11.0 候选版本中实现。它们比行组级别的最小/最大统计数据稍微复杂一些,因为行边界与页边界不对齐,这需要额外的数据结构来查找所有请求的列中的相应值。无论如何,此功能允许精确定位数据的页级位置,并从根本上提高高​​选择性查询的性能。