【问题标题】:Which levels does a Parquet file store min/max/distinct (etc.) statistics on?Parquet 文件在哪些级别存储最小/最大/不同(等)统计信息?
【发布时间】:2019-12-26 19:23:43
【问题描述】:

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

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

【问题讨论】:

    标签: apache-spark parquet


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 2021-06-19
      • 2017-06-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-03-14
      • 2011-05-10
      • 1970-01-01
      相关资源
      最近更新 更多