首页 > 解决方案 > 使用部分主键来改进 KUDU 中的搜索

问题描述

我有一个由三列(id_grandparent、id_parent、id_row)组成的主键,它位于 KUD​​U 中。

当通过 id_grandparent 查找时,我希望我的查找速度很快(类似于 hbase)。我正在使用 Impala 和 Spark 进行查找,假设它们都对相等性进行谓词下推。

我有一些问题无法通过阅读文档 100% 确定

SELECT * FROM my_table where id_grandparent = 55

即使我没有提供整个主键,这个查询是否能够使用索引顺序?(又名返回超快)。我假设是的,因为我猜主键是按第一列排序的,它是某种前缀扫描

SELECT * FROM my_table where id_parent = 55

此查询是否能够使用任何类型的优化?或者任何非第一列(如果未提供第一列)将强制对所有平板电脑进行全面扫描。

我在这里读过这个:https ://kudu.apache.org/2018/09/26/index-skip-scan-optimization-in-kudu.html但我不确定它是否已经发布

预先感谢!

标签: apache-kudu

解决方案


根据这张 JIRA 票,它仍在等待中。

根据此文档(在此答案时最新)

对多级分区表的扫描可以独立地利用任何级别上的分区修剪。

然而,考虑到这篇博文是几个月前写的,我怀疑是否已经实现了索引跳过扫描。

更新根据 dev@kudu.apache.org 的回复

不幸的是,原作者的实习于去年夏天结束,没有人花时间完成工作。它肯定会加快某些类型的查询。有人担心,在当前状态下,它可能会导致某些查询的性能回归。它可能会受益于对用于决定何时启用跳过扫描优化的启发式方法的改进。


推荐阅读