Phoenix概述

Phoenix概述

1、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子句的谓词到服务端过滤器处理。
    执行聚合查询通过服务端钩子(称为协同处理器)。

  • 实现了二级索引来提升非主键字段查询的性能。
    统计相关数据来提高并行化水平,并帮助选择最佳优化方案。
    跳过扫描过滤器来优化IN,LIKE,OR查询。
    优化主键的来均匀分布写压力。

喜欢就点赞评论+关注吧

Phoenix概述_第1张图片

感谢阅读,希望能帮助到大家,谢谢大家的支持!

你可能感兴趣的:(大数据开发)