Phoenix的使用

2020-08-05 10:03:57 浏览数 (1)

phoenix可以处理实时数据

(1)启动数据库的连接

bin/sqlline.py数据库安装服务器ip或主机名:zookeeper的服务端口号

!table查看所有的表使用

!quit退出

(2)创建表

代码语言:javascript复制
create table hbase_test
(
s1 varchar not null primary key,
s2 varchar,
s3 varchar,
s4 varchar

在phoenix数据库层中所有的命令最好大写,最终会把所有的字符转化为大写字符,创建数据表的名称,列族可以使用引号括住,保证其不被强制转化为大写。

(3)更新表和插入数据

代码语言:javascript复制
upsert into hbase_testvalues('1','testname','testname1','testname2');
upsert into hbase_test values('2','tom','jack','harry');

插入多条数据需要执行多条upsert语句,没办法将所有的数据都写到一个“values”后面。

(4)删除

代码语言:javascript复制
delete from hbase_test where s1='1'; (删除是按rowkey)

(5)查询

代码语言:javascript复制
select  * from hbase_test where s1='1';

(6)批量导入数据bulkload

默认情况下,直接在hbase中创建的表,通过phoenix是查看不到的

如果需要在phoenix中操作直接在hbase中创建的表,则需要在phoenix中进行表的映射。映射方式有两种:视图映射和表映射。

表映射的话,在phoenix中的表与hbase中的表会被同时删除与修改,视图映射中的表删除,hbase中的表不会被删除。

(7)创建与删除视图

代码语言:javascript复制
create view"test"(empid varcharprimarykey,"name"."firstname"varchar,"name"."lastname"varchar,"company"."name"    varchar,"company"."address"varchar);
drop view "test";

表映射

使用ApachePhoenix创建对HBase的表映射,有两种方法:

1)

当HBase中已经存在表时,可以以类似创建视图的方式创建关联表,只需要将createview改为createtable即可。

2)当HBase中不存在表时,可以直接使用createtable指令创建需要的表,并且在创建指令中可以根据需要对HBase表结构进行显示的说明。

1种情况下,如在之前的基础上已经存在了test表,则表映射的语句如下:

代码语言:javascript复制
create table "test"(empid varcharprimarykey,"name"."firstname"varchar,"name"."lastname"varchar,"company"."name"varchar,"company"."address"varchar);

种情况下,直接使用与第1)种情况一样的createtable语句进行创建即可,这样系统将会自动在Phoenix和HBase中创建person_infomation的表,并会根据指令内的参数对表结构进行初始化。

使用createtable创建的关联表,如果对表进行了修改,源数据也会改变,同时如果关联表被删除,源表也会被删除。但是视图就不会,如果删除视图,源数据不会发生改变。

0 人点赞