Phoenix is an open source SQL skin for HBase. You use the standard JDBC APIs instead of the regular HBase client APIs to create tables, insert data, and query your HBase data.(Phoenix是构建在HBase上的一个SQL层,能让我们用标准的JDBC APIs而不是HBase客户端APIs来创建表,插入数据和对HBase数据进行查询。Phoenix完全使用Java编写,作为HBase内嵌的JDBC驱动。Phoenix查询引擎会将SQL查询转换为一个或多个HBase扫描,并编排执行以生成标准的JDBC结果集。)

Phoenix作为应用层和HBASE之间的中间件,以下特性使它在大数据量的简单查询场景有着独有的优势。

  • 二级索引支持(global index + local index)

  • 编译SQL成为原生HBASE的可并行执行的scan

  • 在数据层完成计算,server端的coprocessor执行聚合

  • 下推where过滤条件到server端的scan filter上

  • 利用统计信息优化、选择查询计划(5.x版本将支持CBO)

  • skip scan功能提高扫描速度

一般可以使用以下三种方式访问Phoenix

  1. JDBC API

  2. 使用Python编写的命令行工具(sqlline, sqlline-thin和psql等)

  3. SQuirrel

  • First, let’s create a us_population.sql file, containing a table definition:
  • CREATE TABLE IF NOT EXISTS us_population (state CHAR(2) NOT NULL,city VARCHAR NOT NULL,population BIGINTCONSTRAINT my_pk PRIMARY KEY (state, city));

    Now let’s create a us_population.csv file containing some data to put in that table:

  • And finally, let’s create a us_population_queries.sql file containing a query we’d like to run on that data.
  • NY,New York,8143197
    CA,Los Angeles,3844829
    IL,Chicago,2842518
    TX,Houston,2016582
    PA,Philadelphia,1463281
    AZ,Phoenix,1461575
    TX,San Antonio,1256509
    CA,San Diego,1255540
    TX,Dallas,1213825
    CA,San Jose,912332

    SELECT state as "State",count(city) as "City Count",sum(population) as "Population Sum" FROM us_population GROUP BY state ORDER BY sum(population) DESC;

  • Execute the following command from a command terminal
./psql.py <your_zookeeper_quorum> us_population.sql us_population.csv us_population_queries.sql

Congratulations! You’ve just created your first Phoenix table, inserted data into it, and executed an aggregate query with just a few lines of code in 15 minutes or less!

Big deal - 10 rows! What else you got?
Ok, ok - tough crowd. Check out our bin/performance.py script to create as many rows as you want, for any schema you come up with, and run timed queries against it.

Why is it called Phoenix anyway? Did some other project crash and burn and this is the next generation?
I’m sorry, but we’re out of time and space, so we’ll have to answer that next time!

参考:http://phoenix.apache.org/Phoenix-in-15-minutes-or-less.html

注意:

1.phoenix适合修改数据
2.phoenix适合过滤、查询、join操作
3.phoenix不适合聚合操作
4.合理地设置rowkey 提升性能
5.自动按照rowkey的升序进行存储

15分钟搞定OLAP查询引擎Phoenix相关推荐

  1. 15分钟搞定Linux三剑客 grep sed awk

    剑客grep 来者何人 grep是linux上的字符串搜索匹配命令.这个名字来自于linux编辑器vim的一个命令g/re/p,表示全局匹配某个正则表达式并打印出来,这也体现了grep自身的功能. 基 ...

  2. AI模型落地难?试试这个15分钟搞定的开源工具

    自古兵家作战就讲究一个「度」. 公元 200年,官渡之战后.死敌袁绍的残兵败卒远逃塞北,劳师远征还是穷寇莫追,曹操陷入纠结.鬼才谋士郭嘉建言道:"用兵贵在神速!远征千里之外,辎重多.行军慢, ...

  3. 验证码 html 自动验证码,15分钟搞定自动识别网站验证码

    概述 很多开发者都讨厌网站的验证码,特别是写网络爬虫的程序员,而网站之所以设置验证码,是为了防止机器人访问网站,造成不必要的损失.现在好了,随着机器学习技术的发展,机器识别验证码的问题比较好解决了. ...

  4. 《看聊天记录都学不会C语言?太菜了吧》(15)你学了一节课的函数我5分钟搞定了,还很熟

    好消息2020年4月13日晚7.30我在CSDN开播,等你来聊天 预约连接:https://live.csdn.net/room/A757291228/MJWK0Gem 本系列文章将会以通俗易懂的对话 ...

  5. 启程 - 《每日五分钟搞定大数据》

    <每日五分钟搞定大数据>原创系列,每周不定期更新.欢迎关注公众号:大叔据   想了很久,准备开始写一系列的文章,记录这些年来的所得所想,感觉内容比较多不知从哪里开始,画了个思维导图确定了大 ...

  6. 子查询引用外表_轻松搞定慢查询?这一文就够了(内附大量实例助你看懂Explain)...

    原文:https://mp.weixin.qq.com/s/p5UKuh1yY3P4zrOzVBmY1w (复制链接至浏览器,即可查看) 大量实例助你看懂Explain的输出内容,轻松搞定慢查询 EX ...

  7. python使用教程pandas-十分钟搞定pandas(入门教程)

    本文是对pandas官方网站上<10Minutes to pandas>的一个简单的翻译,原文在这里.这篇文章是对pandas的一个简单的介绍,详细的介绍请参考:Cookbook .习惯上 ...

  8. EasyExcel 三分钟搞定导入导出

    前言:本文章教你从零开始,三分钟搞定excel单sheet导出.导入.多sheet导出.导入.excel模板导入单个sheet.多个sheet,废话不多说,直接上代码 1.引入依赖 <!--ex ...

  9. java粒子特效_程序员20分钟搞定粒子效果, 仅仅200行代码

    原标题:程序员20分钟搞定粒子效果, 仅仅200行代码 这粒子的打造,确实没有布局代码,稍后大家在源码上可以看到,css代码都只有几行,绝大部分代码都是java代码,而且是原生java书写的,现在很多 ...

  10. 转载-30分钟搞定后台登录界面(103个后台PSD源文件、素材网站)

    原文:30分钟搞定后台登录界面(103个后台PSD源文件.素材网站) 目录 一.界面预览 二.PSD源文件预览 三.工具分享 四.资源说明 五.素材下载网站 六.下载 去年八月时要做一个OA系统为了后 ...

最新文章

  1. 报名 | 二值化网络 基于素描图的图像检索论坛
  2. 关于机器学习和AI的区别最经典的解释
  3. java chinapay_通过PHP/Java Bridge来实现ecshop的chinapay支付接口
  4. PyTorch 1.0 文档翻译活动期待大家的参与 | ApacheCN
  5. Python-Flask实现基金自选网站
  6. 东北大学c语言编程尸体,东北大学c语言编程试题及其答案
  7. aic值检验 p值_23. 假设检验的时候为什么常写p lt; 0.05,而不写具体的p值?
  8. window.open的小问题
  9. Harris 角点检测子
  10. 修改oracle数据库用户名和密码
  11. unity后期处理插件post process超级后期滤镜
  12. 用puttygen工具把私钥id_rsa转换成公钥id_rsa.ppk
  13. udhcpc6的default.script
  14. CSS设置背景颜色透明
  15. 入门C语言编程植树问题,亏损率的公式—(-圆位置排序c程序-数学-封巧及同学
  16. c语言程序设计教程2014版,C语言程序设计案例教程(第3版)
  17. 枚举类中获取枚举值的几种方法
  18. homebrew是个啥
  19. 工具分享 | linemap-快速绘制山峦地图的R可视化包介绍
  20. 多重系统的引导文件详解

热门文章

  1. 块级元素行内元素内联元素
  2. C# 新特性 操作符单?与??和 ?. 的使用
  3. 要用“+智能”强身健体,“心脏”做好准备了吗
  4. 算法编程-不定时更新
  5. java Servlet文件拷贝的模板代码
  6. CSS之固定定位,绝对定位+负边距,双飞翼布局,属性选择器,伪类选择器补,状态伪类选择器,相邻全部兄弟选择器,取非选择器,em与rem,变形效果...
  7. 百度地图集成Plist文件需要增加的字段
  8. 转载:迟到一年的面经,给准备做程序员的童鞋们
  9. 给DateField和DateChooser进行汉化
  10. JSP中的坑(二):使用include包含jsp文件时contentType中charset的值区分大小写