[Phoenix] 五、二级索引】的更多相关文章

一.Hbase集成Phoneix 1.下载 在官网http://www.apache.org/dyn/closer.lua/phoenix/中选择提供的镜像站点中下载与安装的HBase版本对应的版本.本地使用的1.2.5,故下载的apache-phoenix-4.13.1-HBase-1.2-bin.tar.gz包. 2.上传并解压 tar -zxvf apache-phoenix-4.13.1-HBase-1.2-bin.tar.gzmv apache-phoenix-4.13.1-HBase…
create table user (id varchar primary key, firstname varchar, lastname varchar); create index user_idx on user (firstname); hbase-site.xml中配置 <property> <name>hbase.regionserver.wal.codec</name> <value>org.apache.hadoop.hbase.regio…
摘要: 目前HBASE只有基于字典序的主键索引,对于非主键过滤条件的查询都会变成扫全表操作,为了解决这个问题Phoenix引入了二级索引功能.然而此二级索引又有别于传统关系型数据库的二级索引,本文将详细描述Phoenix中二级索引功能.用法和原理,希望能够对大家在业务技术选型时起到一些帮助作用. 一.概要 目前HBASE只有基于字典序的主键索引,对于非主键过滤条件的查询都会变成扫全表操作,为了解决这个问题Phoenix引入了二级索引功能.然而此二级索引又有别于传统关系型数据库的二级索引,本文将详…
Phoenix创建Hbase二级索引 官方文档 1. 配置Hbase支持Phoenix创建二级索引   1.  添加如下配置到Hbase的Hregionserver节点的hbase-site.xml  <!-- phoenix regionserver 配置参数 --> <property> <name>hbase.regionserver.wal.codec</name> <value>org.apache.hadoop.hbase.regio…
Phoenix是构建在HBase上的一个SQL层,能让我们用标准的JDBC APIs对HBase数据进行增删改查,构建二级索引.当然,开源产品嘛,自然需要注意“避坑”啦,阿丸会把使用方式和最佳实践都告诉你. 1.什么是Phoenix Phoenix完全使用Java编写,将SQL查询转换为一个或多个HBase扫描,并编排执行以生成标准的JDBC结果集.Phoenix主要能做以下这些事情: 将SQL查询编译为HBase扫描scan 确定scan的开始和停止位置 将scan并行执行 将where子句中…
一:HBase的二级索引 1.讲解 uid+ts 11111_20161126111111:查询某一uid的某一个时间段内的数据 查询某一时间段内所有用户的数据:按照时间 索引表 rowkey:ts+uid 20161126111111-111111 info:uid uid+ts 检索流程: 从索引表中根据时间段来查询源表rowkey 根据rowkey来查询源表 二:phoenix的安装 1.上传源文件包 2.解压到modules文件夹下 tar -zxvf phoenix-4.2.2-src…
摘要 HBase只提供了一个基于字典排序的主键索引,在查询中你只能通过行键查询或扫描全表来获取数据,使用Phoenix提供的二级索引,可以避免在查询数据时全表扫描,提高查过性能,提升查询效率   测试环境: 数据约370万 数据格式:(数据来自搜狗实验室) 三节点集群(一主两从,hadoop和HBase属同一集群)   目录 Covered Indexes(覆盖索引) Functional indexes(函数索引) Global indexes(全局索引) Local indexes(本地索引…
一:问题由来 1.举例 有A列与B列,分别是年龄与姓名. 如果想通过年龄查询姓名. 正常的检索是通过rowkey进行检索. 根据年龄查询rowkey,然后根据rowkey进行查找姓名. 这样的效率不高,因为要两次scan. 2.建议有一张索引表. 二:HBase的二级索引 1.讲解 rowkey是uid+ts 11111_20161126111111: 这个rowkey方便查询某一uid的某一个时间段内的数据 问题: 查询某一时间段内所有用户的数据:按照时间 索引表 rowkey:ts+uid…
上一篇介绍了Phoenix基于HBase的二级索引的基本知识,这一篇介绍一下和索引相关的一致性和优化相关内容. 一致性的保证 Phoenix客户端在成功提交一个操作并且得到成功响应后,就代表你所做的操作已经成功应用到原表和相关的索引表中.换句话说,索引表的维护和处理原表数据是同步的,并且各自是强一致性保证的.但是因为索引表和原表是在不同的表中,根据表的属性和索引的类型,当服务端崩溃导致一次提交失败时,原表和索引表中的数据就会有一些变化.所以在使用二级索引的时候,就要根据需求个用例充分考虑. 下面…
Phoenix使用HBase作为后端存储,对于HBase来说,我们通常使用字典序的RowKey来快速访问数据,除此之外,也可以使用自定义的Filter来搜索数据,但是它是基于全表扫描的.而Phoenix提供的二级索引是可以避开全表扫描,是在HBase中快速查找或批量检索数据的另一个选择.下面的例子使用如下表进行测试: ) ), age INTEGER, createtime DATE) 本文的SQL Client是SQuirrel 3.7.1. 覆盖索引 Covered Indexes Phoe…