Phoenix】【大数据基础】Phoenix是什么

2020-10-30 15:55发布

7条回答
天天
2楼 · 2020-10-30 16:13

phoenix是构建的Hbase之上的,使用标准的SQL操作Hbase,可以做联机事务处理,拥有低延迟的特性。

phoenix会把SQL编译成一系列的Hbase的scan操作,然后把scan结果生成标准的JDBC结果集,其底层由于使用了Hbase的API,协处理器,过滤器,处理千万级行的数据也只用毫秒或秒级就搞定。


我的网名不再改
3楼 · 2020-11-01 17:45

关于phoenix的名称,直译为凤凰,在中国有凤凰涅盘之说,咋一听似乎该项目之前挂过很多次,现在翻身了,

实际上其官网戏谑的说有此一问的,可以回家睡大觉了,没时间回答你。

phoenix是构建的Hbase之上的,使用标准的SQL操作Hbase,可以做联机事务处理,拥有低延迟的特性。

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表可能通过两种方式创建


  1. 从头开始,这种方式Hbase的表与列族都会自动创建。

  2. 映射到一个存在的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!     |
+-------+------------+





回答: 2021-11-10 13:40

关于phoenix的名称,直译为凤凰,在中国有凤凰涅盘之说,咋一听似乎该项目之前挂过很多次,现在翻身了,


实际上其官网戏谑的说有此一问的,可以回家睡大觉了,没时间回答你。


phoenix是构建的Hbase之上的,使用标准的SQL操作Hbase,可以做联机事务处理,拥有低延迟的特性。


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!     |

+-------+------------+


Sophia
4楼 · 2020-11-02 15:20

Phoenix是一个HBase的开源SQL引擎。你可以使用标准的JDBC API代替HBase客户端API来创建表,插入数据,查询你的HBase数据。
Phoenix是构建在HBase之上的SQL引擎。你也许会存在“Phoenix是否会降低HBase的效率?”或者“Phoenix效率是否很低?”这样的疑虑,事实上并不会,Phoenix通过以下方式实现了比你自己手写的方式相同或者可能是更好的性能(更不用说可以少写了很多代码)

善良的琼琼姐
5楼 · 2020-11-04 16:14

hoenix是构建的Hbase之上的,使用标准的SQL操作Hbase,可以做联机事务处理,拥有低延迟的特性。

phoenix会把SQL编译成一系列的Hbase的scan操作,然后把scan结果生成标准的JDBC结果集,其底层由于使用了Hbase的API,协处理器,过滤器,处理千万级行的数据也只用毫秒或秒级就搞定。


py大白
6楼 · 2021-11-09 14:10

phoenix是构建的Hbase之上的,使用标准的SQL操作Hbase,可以做联机事务处理,拥有低延迟的特性。

phoenix会把SQL编译成一系列的Hbase的scan操作,然后把scan结果生成标准的JDBC结果集,

其底层由于使用了Hbase的API,协处理器,过滤器,处理千万级行的数据也只用毫秒或秒级就搞定。

支持有:SELECT, FROM, WHERE, GROUP BY, HAVING, ORDER BY等操作。

但phoenix目前不支持Intersect, Minus操作,Oracle是支持此操作的。


希希
7楼 · 2021-11-16 10:15

phoenix会把SQL编译成一系列的Hbase的scan操作,然后把scan结果生成标准的JDBC结果集,其底层由于使用了Hbase的API,协处理器,过滤器,处理千万级行的数据也只用毫秒或秒级就搞定。

20200921文 - 做更棒的自己!
8楼 · 2021-11-19 12:25

phenix 是phoenix美式拼写,比如美国有地名用这个。但事实上除了一些专有名词用phenix这个拼写,指凤凰的时候,大家基本都用phoenix。

我晕,是我没说明白还是您没看懂?我的意思是像Phenix City之类有限的几个专有名词用phenix,除此之外做凤凰讲一般用phoenix。

相关问题推荐

没有解决我的问题,去提问