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创建的关联表,如果对表进行了修改,源数据也会改变,同时如果关联表被删除,源表也会被删除。但是视图就不会,如果删除视图,源数据不会发生改变。