hbase phoenix sql入门

hbase phoenix sql入门

ID:5265940

大小:383.57 KB

页数:8页

时间:2017-12-07

hbase phoenix sql入门_第1页
hbase phoenix sql入门_第2页
hbase phoenix sql入门_第3页
hbase phoenix sql入门_第4页
hbase phoenix sql入门_第5页
资源描述:

《hbase phoenix sql入门》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、Phoenixsql入门整理:风轻扬qq:412664502一.Phoenix介绍近日,Salesforce.com开源了Phoenix,这是一个Java中间层,可以让开发者在ApacheHBase上执行SQL查询。InfoQ有幸采访到了Salesforce.com的主开发者JamesTaylor以了解关于Phoenix的更多信息。除了无数的SQL、NoSQL与NewSQL数据库,Salesforce.com又宣布了Phoenix项目,这是构建在ApacheHBase(列式大数据存储)之上的一个SQL中间层。Phoenix完全使用Java编写,代码位于GitHu

2、b上,并且提供了一个客户端可嵌入的JDBC驱动。根据项目所述,Phoenix被Salesforce.com内部使用,对于简单的低延迟查询,其量级为毫秒;对于百万级别的行数来说,其量级为秒。Phoenix并不是像HBase那样用于map-reducejob的,而是通过标准化的语言来访问HBase数据的。根据项目创建者所述,对于10M到100M的行的简单查询来说,Phoenix要胜过Hive。对于使用了HBaseAPI、协同处理器及自定义过滤器的Impala与OpenTSDB来说,进行相似的查询Phoenix的速度也会更快一些。Phoenix查询引擎会将SQL查询转

3、换为一个或多个HBasescan,并编排执行以生成标准的JDBC结果集。直接使用HBaseAPI、协同处理器与自定义过滤器,对于简单查询来说,其性能量级是毫秒,对于百万级别的行数来说,其性能量级是秒。Phoenix最值得关注的一些特性有:嵌入式的JDBC驱动,实现了大部分的java.sql接口,包括元数据API可以通过多部行键或是键/值单元对列进行建模完善的查询支持,可以使用多个谓词以及优化的扫描键DDL支持:通过CREATETABLE、DROPTABLE及ALTERTABLE来添加/删除列版本化的模式仓库:当写入数据时,快照查询会使用恰当的模式DML支持:用于

4、逐行插入的UPSERTVALUES、用于相同或不同表之间大量数据传输的UPSERTSELECT、用于删除行的DELETE通过客户端的批处理实现的有限的事务支持单表——还没有连接,同时二级索引也在开发当中紧跟ANSISQL标准Phoenix代码基于BSD许可开源。下面是InfoQ采访Phoenix主开发者JamesTaylor的访谈内容。InfoQ:为何要为Non-SQL数据存储提供SQL接口?现在已经有很多其他的SQL解决方案了。JT:现有的SQL解决方案通常都不是水平可伸缩的,因此当数据量变大时会遇到阻碍。至于我们为何在NoSQL数据存储HBase上提供SQL

5、接口,有如下几个原因:使用诸如SQL这样易于理解的语言可以使人们能够更加轻松地使用HBase。相对于学习另一套私有API,人们可以使用熟悉的语言来读写数据。使用诸如SQL这样更高层次的语言来编写减少了你所需编写的代码量。比如说,使用Phoenix,你可以编写下面这样的查询来获取Web的统计数据(我不想说使用原生的HBaseAPI会有多少行代码,但肯定少不了):SELECTTRUNC(DATE,'DAY')DAY,SUM(CORE)TOTAL_CPU_Usage,MIN(CORE)MIN_CPU_Usage,MAX(CORE)MAX_CPU_UsageFROMWE

6、B_STATWHEREDOMAINLIKE'Salesforce%'GROUPBYTRUNC(DATE,'DAY');执行查询时,在数据访问与运行时执行之间加上SQL这样一层抽象可以进行大量优化。比如说,对于GROUPBY查询来说,我们可以利用HBase中协同处理器这样的特性。借助于该特性,我们可以在HBase服务器上执行Phoenix代码。因此,聚合可以在服务端执行,而不必在客户端,这么做会极大减少客户端与服务端之间传输的数据量。此外,Phoenix还会在客户端并行执行GROUPBY,这是根据行键的范围来截断扫描而实现的。通过并行执行,结果会更快地返回。所有这

7、些优化都无需用户参与,用户只需发出查询即可。通过使用业界标准的API(如JDBC),我们可以利用现有的工具来使用这些API。比如说,你可以使用现成的SQL客户端(如SQuirrel,http://squirrel-sql.sourceforge.net/)连接HBase服务器并执行SQL。感兴趣的读者可以参见入门指南以了解更多信息:https://github.com/forcedotcom/phoenix/blob/master/README.md。二.官方地址https://github.com/forcedotcom/phoenixhttps://gith

8、ub.com/force

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。