大数据开发培训技术phoenix表映射

发布时间:2021年12月07日作者:atguigu浏览次数:584

1 Phoenix和Hbase表的关系

默认情况下,直接在hbase中创建的表,通过phoenix是查看不到的。如图1和图2,US_POPULATION是在phoenix中直接创建的,而kylin相关表是在hbase中直接创建的,在phoenix中是查看不到kylin等表的。

图1 phoenix命令行中查看所有表:

大数据开发培训

图2 hbase命令行中查看所有表:

大数据开发培训

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

2 Hbase命令行中创建表test

Hbase 中test的表结构如下,两个列簇name、company.

Rowkey

name

company

empid

firstname

lastname

name

address

         

启动Hbase shell

[atguigu@hadoop101 ~]$ /opt/module/hbase-1.3.1/bin/hbase shell

创建Hbase表test

hbase(main):001:0> create ‘test’,’name’,’company’

创建表,如下图:

大数据开发培训

3 视图映射

Phoenix创建的视图是只读的,所以只能用来做查询,无法通过视图对源数据进行修改等操作。

在phoenix中创建视图test表

0: jdbc:phoenix:hadoop101,hadoop102,hadoop103> create view “test”(empid varchar primary key,”name”.”firstname” varchar,”name”.”lastname” varchar,”company”.”name” varchar,”company”.”address” varchar);

删除视图

0: jdbc:phoenix:hadoop101,hadoop102,hadoop103> drop view “test”;

4表映射

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

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

0: jdbc:phoenix:hadoop101,hadoop102,hadoop103> create table “test”(empid varchar primary key,”name”.”firstname” varchar,”name”.”lastname” varchar,”company”.”name” varchar,”company”.”address” varchar);

2) 当HBase中不存在表时,可以直接使用create table指令创建需要的表,系统将会自动在Phoenix和HBase中创建person_infomation的表,并会根据指令内的参数对表结构进行初始化。

0: jdbc:phoenix:hadoop101,hadoop102,hadoop103> create table “test”(empid varchar primary key,”name”.”firstname” varchar,”name”.”lastname” varchar,”company”.”name” varchar,”company”.”address” varchar);

5使用spark对phoenix的读写

在Phoenix中查看数据

大数据开发培训

select * from STOCK_SYMBOL

如下显示:

大数据开发培训

在Hbase中查看数据

scan “STOCK_SYMBOL”

大数据开发培训

更多使用详情,请参考http://phoenix.apache.org/phoenix_spark.html

6视图映射和表映射的对比与总结:

相比于直接创建映射表,视图的查询效率会低,原因是:创建映射表的时候,Phoenix会在表中创建一些空的键值对,这些空键值对的存在可以用来提高查询效率。

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

想要了解跟多关于大数据培训课程内容欢迎关注尚硅谷大数据培训,尚硅谷除了这些技术文章外还有免费的高质量大数据培训课程视频供广大学员下载学习。


上一篇:
下一篇:
相关课程

java培训 大数据培训 前端培训

关于尚硅谷
教育理念
名师团队
学员心声
资源下载
视频下载
资料下载
工具下载
加入我们
招聘岗位
岗位介绍
招贤纳师
联系我们
全国统一咨询电话:010-56253825
地址:北京市昌平区宏福科技园2号楼3层(北京校区)

深圳市宝安区西部硅谷大厦B座C区一层(深圳校区)

上海市松江区谷阳北路166号大江商厦3层(上海校区)

武汉市东湖高新开发区东湖网谷(武汉校区)

西安市雁塔区和发智能大厦B座3层(西安校区)

成都市成华区北辰星拱青创园综合楼3层(成都校区)