关于phoenix的名称,直译为凤凰,在中国有凤凰涅盘之说,咋一听似乎该项目之前挂过很多次,现在翻身了,
实际上其官网戏谑的说有此一问的,可以回家睡大觉了,没时间回答你。
phoenix是构建的Hbase之上的,使用标准的SQL操作Hbase,可以做联机事务处理,拥有低延迟的特性。
Apache Hadoop的用于OLTP和运营分析
phoenix会把SQL编译成一系列的Hbase的scan操作,然后把scan结果生成标准的JDBC结果集,
其底层由于使用了Hbase的API,协处理器,过滤器,处理千万级行的数据也只用毫秒或秒级就搞定。
支持有:SELECT, FROM, WHERE, GROUP BY, HAVING, ORDER BY等操作。
但phoenix目前不支持Intersect, Minus操作,Oracle是支持此操作的。
可以通过类似Mysql方式连接phoenix:
Connection conn = DriverManager.getConnection("jdbc:phoenix:server1,server2:3333",props);
Phoenix支持通过DDL命令进行表格创建和版本化增量更改,相应元数据存储在Hbase表中。
元数据用于描述phoenix表与hbase之间的关系,映射。
phoenix表可能通过两种方式创建
从头开始,这种方式Hbase的表与列族都会自动创建。
映射到一个存在的Hbase表。
Phoenix版"Hello World"例子:
create table test (mykey integer not null primary key, mycolumn varchar);
upsert into test values (1,'Hello');
upsert into test values (2,'World!');
select * from test;
//注意,phoenix没有insert,其insert与update合起来叫做:upsert
打印结果如下:
+-------+------------+
| MYKEY | MYCOLUMN |
+-------+------------+
| 1 | Hello |
| 2 | World! |
+-------+------------+
Apache Phoenix通过结合两者的优点,在Hadoop中为低延迟应用程序启用OLTP和运营分析:
- 具有完整ACID事务功能的标准SQL和JDBC API的强大功能
- 通过利用HBase作为其后备存储,来自NoSQL世界的后期绑定模式读取功能的灵活性
Apache Phoenix与其他Hadoop产品完全集成,如Spark,Hive,Pig,Flume和Map Reduce。
谁在使用Apache Phoenix?在这里阅读更多......
任务
通过定义明确的行业标准API,成为Hadoop的OLTP和运营分析的可信数据平台。
快速开始
厌倦了阅读已经只是想开始?看看我们的