简单来说,Phoenix 是一个可以让我们通过SQL的方式操作HBase数据库的框架。
HBase是一个NoSQL数据库,shell客户端只支持一些简单的操作,而且看起来容易晕。
例如下面这个图,返回的是一张表的所有数据:
是不是很难看,而且如果对HBase进行复杂查询的话,只能通过HBase的原生API编写查询程序,这样就比较麻烦。
使用Phoenix的话,就可以使用SQL来查询,便捷高效,同时还可以为HBase添加二级索引,提升查询性能,还有其他一些方便的特性。
Phoenix 支持通过编写JDBC代码来操作HBase,比原生API更方便。
CREATE TABLE IF NOT EXISTS us_population (
state CHAR(2) NOT NULL,
city VARCHAR NOT NULL,
population BIGINT
CONSTRAINT my_pk PRIMARY KEY (state, city));
0: jdbc:phoenix:localhost> !tables
到 HBase 中查看:
hbase(main):041:0> list
结果信息:
TABLE
SYSTEM.CATALOG
SYSTEM.FUNCTION
SYSTEM.SEQUENCE
SYSTEM.STATS
US_POPULATION
...
成功生成了 US_POPULATION 表。
先新建一个测试数据文件 us_population.csv,内容如下:
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
执行命令,把文件中的数据导入到数据库:
./psql.py localhost us_population.csv
查询表数据:
0: jdbc:phoenix:localhost> select * from US_POPULATION;
Phoenix自带了一个web统计的小示例,先执行命令把他导入进来:
bin/psql.py localhost examples/WEB_STAT.sql examples/WEB_STAT.csv
先执行了建表sql,然后导入数据文件csv。
查询表数据:
0: jdbc:phoenix:localhost> select * from WEB_STAT;
CORE、DB字段是CPU和数据库使用量。
根据DOMAIN分组,查看每组平均CUP、数据库使用情况:
SELECT DOMAIN, AVG(CORE) Average_CPU_Usage, AVG(DB) Average_DB_Usage
FROM WEB_STAT
GROUP BY DOMAIN
ORDER BY DOMAIN DESC;
查看各个domain的访问数,从高到低排序:
select domain,count(1) num
from web_stat
group by domain
order by num desc;
Phoenix 的基础功能就是在 HBase 之上添加了 SQL 层,可以让我们更方便的使用 HBase。
Phoenix 有很多优秀特性,例如:二级索引、命名空间映射、视图、多租户、动态列、事务 ……
而且现在已经发展的非常完善,可以集成 Spark、Hive、Pig、MapReduce,还有 Flume 插件。
原文来自:性能与架构
声明:所有来源为“聚合数据”的内容信息,未经本网许可,不得转载!如对内容有异议或投诉,请与我们联系。邮箱:marketing@think-land.com
支持识别各类商场、超市及药店的购物小票,包括店名、单号、总金额、消费时间、明细商品名称、单价、数量、金额等信息,可用于商品售卖信息统计、购物中心用户积分兑换及企业内部报销等场景
涉农贷款地址识别,支持对私和对公两种方式。输入地址的行政区划越完整,识别准确度越高。
根据给定的手机号、姓名、身份证、人像图片核验是否一致
通过企业关键词查询企业涉讼详情,如裁判文书、开庭公告、执行公告、失信公告、案件流程等等。
IP反查域名是通过IP查询相关联的域名信息的功能,它提供IP地址历史上绑定过的域名信息。