【大数据入门核心技术-HBase】(十)Hbase结合Phoenix的使用
admin
2024-03-29 02:56:51

什么是Phoenix?
 phoenix,中文译为“凤凰”,很美的名字。Phoenix是由saleforce.com开源的一个项目,后又捐给了Apache基金会。它相当于一个Java中间件,提供jdbc连接,操作hbase数据表。Phoenix是一个HBase的开源SQL引擎。你可以使用标准的JDBC API代替HBase客户端API来创建表,插入数据,查询你的HBase数据。Phoenix的团队用了一句话概括Phoenix:"We put the SQL back in NoSQL" 意思是:我们把SQL又放回NoSQL去了!这边说的NoSQL专指HBase,意思是可以用SQL语句来查询Hbase,你可能会说:“Hive和Impala也可以啊!”。但是Hive和Impala还可以查询文本文件,Phoenix的特点就是,它只能查Hbase,别的类型都不支持!但是也因为这种专一的态度,让Phoenix在Hbase上查询的性能超过了Hive和Impala!
2. Phoenix性能
 Phoenix是构建在HBase之上的SQL引擎。你也许会存在“Phoenix是否会降低HBase的效率?”或者“Phoenix效率是否很低?”这样的疑虑,事实上并不会,Phoenix通过以下方式实现了比你自己手写的方式相同或者可能是更好的性能(更不用说可以少写了很多代码):
编译你的SQL查询为原生HBase的scan语句。
检测scan语句最佳的开始和结束的key。
精心编排你的scan语句让他们并行执行。
推送你的WHERE子句的谓词到服务端过滤器处理。
执行聚合查询通过服务端钩子(称为协同处理器)。

除此之外,Phoenix还做了一些有趣的增强功能来更多地优化性能:
实现了二级索引来提升非主键字段查询的性能。
统计相关数据来提高并行化水平,并帮助选择最佳优化方案。
跳过扫描过滤器来优化IN,LIKE,OR查询。
优化主键的来均匀分布写压力。

相关内容

热门资讯

古村里的春天 古村里的春天 春...   近日,安徽省黄山市黟县碧阳镇春色宜人,古村落里金灿灿的油菜花海与粉墙黛瓦的徽派建筑相映成趣,远山...
山楂丹参陈皮泡水的3大核心作用... 最近后台好多人问:跟风喝了大半个月山楂丹参陈皮水,为啥没感觉?还有人说喝了反酸、心慌,这到底咋回事?...
原创 3... 前两天回了一趟老家,刚进村口,就看见几个婶子提着篮子蹲在路边的山坡上,不知道在忙活什么。我凑过去一看...
原创 如... 钩尖内敛藏芒刺,饵团绵密裹钩深。轻坠缓沉鱼易吞,提竿稍顿刺唇沉。莫使饵硬触即吐,休教钩露碰而惊。一入...
十几块就能吃饱!紫燕百味鸡在上... 冷菜+热菜,紫燕百味鸡也盯上打工人的一日三餐? 近日,紫燕百味鸡位于上海总部的创新餐厅正式投入运营...