「从零单排HBase 12」HBase二级索引Phoenix使用与最佳实践
Phoenix是构建在HBase上的一个SQL层,能让我们用标准的JDBC APIs对HBase数据进行增删改查,构建二级索引。当然,开源产品嘛,自然需要注意“避坑”啦,阿丸会把使用方式和最佳实践都告诉你。 1.什么是Phoenix Phoenix完全使用Java编写,将SQL查询转换为一个或多个HBase扫描,并编排执行以生成标准的JDBC结果集。Phoenix主要能做以下这些事情: 将SQL查询编译为HBase扫描scan 确定scan的开始和停止位置 将scan并行执行 将where子句中的谓词推送到服务器端进行过滤 通过服务器端挂钩(称为协处理器co-processors)执行聚合查询 除了这些之外,phoenix还进行了一些有趣的增强,以进一步优化性能: 二级索引,以提高非行键查询的性能(这也是我们引入phoenix的主要原因) 跳过扫描过滤器来优化IN,LIKE和OR查询 可选的对行键进行加盐以实现负载均衡,避免热点 2.Phoniex架构 Phoenix结构上划分为客户端和服务端两部分: 客户端包括应用程序开发,将SQL进行解析优化生成QueryPlan,进而转化为HB...