表统计信息

Presto 支持基于统计信息的查询优化。为了使查询能够利用这些优化,Presto 必须拥有该查询中表的统计信息。

表统计信息由连接器提供给查询规划器。目前,唯一支持统计信息的连接器是 Hive 连接器.

表布局

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

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

  • 非分区表只有一个表布局,表示表中的所有数据

  • 分区表有一组表布局。要扫描的每个分区集都表示一个表布局。Presto 将尝试选择一个包含最少分区数量的表布局,这些分区基于查询中的过滤谓词。

可用统计信息

Presto 中提供了以下统计信息

  • 对于表

    • 行数:表布局中的总行数

  • 对于表中的每个列

    • 数据大小:需要读取的数据大小

    • 空值比例:空值的比例

    • 不同值计数:不同值的个数

    • 低值:列中的最小值

    • 高值:列中的最大值

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

可以通过 Presto SQL 接口使用 SHOW STATS 命令显示表统计信息。对于 Hive 连接器,请参阅 Hive 连接器 文档,了解如何更新表统计信息。