Part4---Phoenix映射Hbase的表

问题情况,在使用phoenix操作hbase的表的时候出现phoenix无法读取从hbase中创建的表:

​ 比如通过hbase shell 创建了表:StudentAndCourse

​ 通过Phoenix(也可以使用dbeaver连接phoenix)创建表:STUDENT

在habase shell中的表的包含STUDENT,也包含StudentAndCourse

hbase(main):004:0> list
TABLE
STUDENT
SYSTEM.CATALOG
SYSTEM.CHILD_LINK
SYSTEM.FUNCTION
SYSTEM.LOG
SYSTEM.MUTEX
SYSTEM.SEQUENCE
SYSTEM.STATS
SYSTEM.TASK
StudentAndCourse
10 row(s)
Took 0.0394 seconds
=> ["STUDENT", "SYSTEM.CATALOG", "SYSTEM.CHILD_LINK", "SYSTEM.FUNCTION", "SYSTEM.LOG", "SYSTEM.MUTEX", "SYSTEM.SEQUENCE", "SYSTEM.STATS", "SYSTEM.TASK", "StudentAndCourse"]

但是在phoenix中的表只有STUDENT

image-20220413172425884需要在phoenix中读取或操作到hbase shell创建的表,主要是创建视图和创建表的两种映射方式

&1.使用视图的方式:

01.在hbase shell上生成一个新的表名为Gadaite

​ // 其中F1,F2为列簇

hbase(main):021:0> create "Gadaite","F1","F2"
Created table Gadaite
Took 0.7966 seconds
=> Hbase::Table - Gadaite

02.使用hbase shell向Gadaite表写入数据

​ // 其中F11,F12,F21,F22 为对应的F1,F2列簇下的字段

hbase(main):026:0> put "Gadaite",'001', "F1:F11",'F1.F11'
Took 0.0257 seconds
hbase(main):027:0> put "Gadaite",'001', "F1:F12",'F1.F12'
Took 0.0061 seconds
hbase(main):028:0> put "Gadaite",'001', "F2:F21",'F2.F21'
Took 0.0053 seconds
hbase(main):029:0> put "Gadaite",'001', "F2:F22",'F2.F22'
Took 0.0047 seconds
hbase(main):030:0> put "Gadaite",'002', "F1:F11",'G1.G11'
Took 0.0047 seconds
hbase(main):031:0>
hbase(main):032:0* put "Gadaite",'002', "F1:F12",'G1.G12'
Took 0.0102 seconds
hbase(main):033:0> put "Gadaite",'002', "F2:F21",'G2.G21'
Took 0.0059 seconds
hbase(main):034:0> put "Gadaite",'002', "F2:F22",'G2.G22'
Took 0.0071 seconds

03.在hbase shell中查看该表

​ // ROW 为第一个维度:行键

​ // COLUMN为第二个维度:列簇

​ // CELL为第三个维度:列簇下的字段

​ // timestamp为第四个维度:时间戳

hbase(main):036:0> scan "Gadaite"
ROW                                        COLUMN+CELL
 001                                       column=F1:F11, timestamp=1649852184595, value=F1.F11
 001                                       column=F1:F12, timestamp=1649852206467, value=F1.F12
 001                                       column=F2:F21, timestamp=1649852266435, value=F2.F21
 001                                       column=F2:F22, timestamp=1649852282515, value=F2.F22
 002                                       column=F1:F11, timestamp=1649852372440, value=G1.G11
 002                                       column=F1:F12, timestamp=1649852392818, value=G1.G12
 002                                       column=F2:F21, timestamp=1649852437294, value=G2.G21
 002                                       column=F2:F22, timestamp=1649852447418, value=G2.G22
2 row(s)
Took 0.0131 seconds

04.在phoenix上创建视图,并查询,显然我们把列族以及字段展开了

image-20220413213914289

05.删除视图,phoenix视图会被删除,但是hbase不会

image-20220413214553334

hbase(main):037:0> list
TABLE
Gadaite
STUDENT
SYSTEM.CATALOG
SYSTEM.CHILD_LINK
SYSTEM.FUNCTION
SYSTEM.LOG
SYSTEM.MUTEX
SYSTEM.SEQUENCE
SYSTEM.STATS
SYSTEM.TASK
StudentAndCourse
11 row(s)
Took 0.1010 seconds
=> ["Gadaite", "STUDENT", "SYSTEM.CATALOG", "SYSTEM.CHILD_LINK", "SYSTEM.FUNCTION", "SYSTEM.LOG", "SYSTEM.MUTEX", "SYSTEM.SEQUENCE", "SYSTEM.STATS", "SYSTEM.TASK", "StudentAndCourse"]

&2.使用表的方式

01.将创建视图的view,换成table即可,同时加上如下内容,起到映射作用,但是会降低性能

column_encoded_bytes=0

​ 不加上的情况:(映射的表没有内容)

image-20220413215127627

​ 输出:

image-20220413220929003

​ 加上的情况:

image-20220413221009360

​ 输出:(创建表就有内容了)

image-20220413221019009

02.删除表之后查看hbase和phoenix中情况

​ 都已经删除了:

image-20220413220024248

hbase(main):001:0> list
TABLE
STUDENT
SYSTEM.CATALOG
SYSTEM.CHILD_LINK
SYSTEM.FUNCTION
SYSTEM.LOG
SYSTEM.MUTEX
SYSTEM.SEQUENCE
SYSTEM.STATS
SYSTEM.TASK
StudentAndCourse
10 row(s)
Took 0.3789 seconds
=> ["STUDENT", "SYSTEM.CATALOG", "SYSTEM.CHILD_LINK", "SYSTEM.FUNCTION", "SYSTEM.LOG", "SYSTEM.MUTEX", "SYSTEM.SEQUENCE", "SYSTEM.STATS", "SYSTEM.TASK", "StudentAndCourse"]
  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值