3、Phoenix二级索引
对于Hbase,如果想精确定位到某行记录,
唯一的办法就是通过rowkey查询。如果不通过rowkey查找数据,
就必须逐行比较每一行的值,对于较大的表,全表扫描的代价是不可接受的。
1、开启索引支持
# 关闭hbase集群
stop-hbase.sh
# 在hbase-site.xml中增加如下配置
phoneix 与 hbase 的都要去设置
<property>
<name>hbase.regionserver.wal.codec</name>
<value>org.apache.hadoop.hbase.regionserver.wal.IndexedWALEditCodec</value>
</property>
# 同步到所有节点
scp hbase-site.xml node1:`pwd`
scp hbase-site.xml node2:`pwd`
# 启动hbase
start-hbase.sh
2、创建索引
2.1、全局索引
全局索引适合读多写少的场景。如果使用全局索引,读数据基本不损耗性能,
所有的性能损耗都来源于写数据。数据表的添加、删除和修改都会更新相关的索引表
(数据删除了,索引表中的数据也会删除;数据增加了,索引表的数据也会增加)
注意: 对于全局索引在默认情况下,在查询语句中检索的列如果不在索引表中,
Phoenix不会使用索引表将,除非使用hint。
# 创建DIANXIN.sql
CREATE TABLE IF NOT