HBase集成Phoenix,构建Phoenix view和table的区别

Posted HBase技术社区

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了HBase集成Phoenix,构建Phoenix view和table的区别相关的知识,希望对你有一定的参考价值。

Apache Phoenix 官方站点:

https://phoenix.apache.org/

Phoenix支持的sql语句: 

https://phoenix.apache.org/language/index.html

Phoenix 支持的DataTypes:

https://phoenix.apache.org/language/datatypes.html

Phoenix 支持的函数:

https://phoenix.apache.org/language/functions.html


0. 软件版本下载

http://mirror.bit.edu.cn/apache/phoenix/


1. 集群环境

Master 192.168.40.130

Slave1 192.168.40.131

Slave2 192.168.40.132


2. 下载软件包

#Master

wget http://mirror.bit.edu.cn/apache/phoenix/apache-phoenix-4.14.0-HBase-1.3/bin/apache-phoenix-4.14.0-HBase-1.3-bin.tar.gz

tar zxvf apache-phoenix-4.14.0-HBase-1.3-bin.tar.gz


3. 配置环境变量

#vim /etc/profile

#set phoenix environment

export PHOENIX_HOME=/usr/local/src/apache-phoenix-4.14.0-HBase-1.3-bin

PATH=${PHOENIX_HOME}/bin:$PATH

#安装 python-argparse 解析模块

yum install python-argparse


4. 分发phoenix的驱动

参考:https://phoenix.apache.org/Phoenix-in-15-minutes-or-less.html


#master

#phoenix-4.14.0-HBase-1.3-server.jar

cd /usr/local/src/apache-phoenix-4.14.0-HBase-1.3-bin

cp phoenix-4.14.0-HBase-1.3-server.jar  /usr/local/src/hbase-1.3.1/lib/

scp phoenix-4.14.0-HBase-1.3-server.jar root@slave1:/usr/local/src/hbase-1.3.1/lib/

scp phoenix-4.14.0-HBase-1.3-server.jar root@slave2:/usr/local/src/hbase-1.3.1/lib/


5.重启Hbase

cd /usr/local/src/hbase-1.3.1/bin

./stop-hbase.sh

./start-hbase.sh


6.验证

6.1 hbase建表

cd usr/local/src/hbase-1.3.1/bin

hbase shell

create  'person','basicinfo'

put 'person','1', 'basicinfo:name', 'uwoer'

put 'person','1', 'basicinfo:age', '24'

scan 'person'

HBase集成Phoenix,构建Phoenix view和table的区别


6.2 phoenix登录

cd /usr/local/src/apache-phoenix-4.14.0-HBase-1.3-bin/bin

sqlline.py localhost 或 sqlline.py master,slave1,slave2:2181


6.3 创建 view 

create view "person" ("ROW" varchar primary key,"basicinfo"."name" varchar,"basicinfo"."age" varchar);

select * from "person";

HBase集成Phoenix,构建Phoenix view和table的区别

#创建完视图后再次查看hbase中表的信息

HBase集成Phoenix,构建Phoenix view和table的区别

#view只读验证

UPSERT INTO "person"  VALUES('1','uwo','30');

HBase集成Phoenix,构建Phoenix view和table的区别


#phoenix 中删除视图

drop view "person";

#再次查看hbase中表的信息 person 依然存在

HBase集成Phoenix,构建Phoenix view和table的区别


7.创建table

phoenix 中创建映射表

create table "person" ("ROW" varchar primary key,"basicinfo"."name" varchar,"basicinfo"."age" varchar);

select * from "person";

HBase集成Phoenix,构建Phoenix view和table的区别

#创建完表后再次查看hbase中表的信息

HBase集成Phoenix,构建Phoenix view和table的区别

多了一个映射信息:column=basicinfo:_0


#phoenix 中写验证

UPSERT INTO "person"  VALUES('1','uwo','30');

select * from "person";

HBase集成Phoenix,构建Phoenix view和table的区别

这个时候如果在phoenix  删除表会同时删除hbase中的表


总结: view无法upsert ,table可以upsert


phoenix和hbase中非字符串类型的字段映射会有些问题,在通过api写数据的时候需要经过特殊处具体情况参考

HBase和Phoenix的类型转换 :https://blog.csdn.net/rewerma/article/details/80254876



中国HBase技术社区第二届MeetUp

在7月21号,北京线下召开,

线下和直播报名,详情查看以下





长按下面的二维码加入HBase技术社区微信群




以上是关于HBase集成Phoenix,构建Phoenix view和table的区别的主要内容,如果未能解决你的问题,请参考以下文章

CDH6.3.2 启用Kerberos 集成使用phoenix

CDH6.3.2 启用Kerberos 集成使用phoenix

hbase--集成Phoenix实现类SQL操作hbase

HBase集成Phoenix创建二级索引

HBase JDBC驱动Phoenix与SpringJDBCTemplate的集成

Phoenix 实践——Phoenix 表的视图构建(表映射)总结小记