表统计

openLooKeng支持基于统计信息的查询优化。为了让查询利用这些优化,openLooKeng必须提供该查询中表的统计信息。

表统计信息由连接器提供给查询计划器。目前仅Hive连接器支持统计。

表格布局

  • 统计信息通过表布局向查询计划器呈现。一个表布局表示表数据的子集,并包含有关该数据的组织属性(例如排序顺序和分桶)的信息。

    可用于表的表布局的数量和表布局的详细信息是每个连接器特有的。以Hive连接器为例:

    • 非分区表只有一个表布局,表示表中的所有数据
    • 分区表拥有一系列表布局。每一组要扫描的分区代表一个表布局。openLooKeng将根据查询中的筛选谓词,尝试选择由最少数量的分区组成的表布局。

可用统计

openLooKeng提供以下统计数据:

  • 对于表:
    • row count:表示表布局的总行数。
  • 对于表格中的每一列:
    • data size:表示需要读取的数据大小
    • nulls fraction:表示空值的部分
    • distinct value count:表示独特值的个数。
    • low value:表示列中最小值。
    • high value:表示列中最大值

可用于特定查询的统计集取决于所使用的连接器,也因表甚至表布局而异。例如,Hive连接器目前不提供数据大小的统计信息。

可以通过openLooKeng SQL接口使用SHOW STATS命令查询表统计信息。Hive连接器,请参考Hive连接器文档了解如何更新表的统计信息。