表统计
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连接器文档了解如何更新表的统计信息。