Phoenix的视图主要目的: 对HBase的表进行映射
主要是用户在HBase上构建的表, 但是在Phoenix中无法查看的, 那么也就无法通过Phoenix来操作, 此时可以通过Phoenix的视图来进行映射, 从而能够让Phoenix去操作不是基于Phoenix创建的表
适用于场景: 表在HBase中已经提前构建好了, 但是需要通过Phoenix来进行操作, 此时可以基于Phoenix视图来处理
如何创建视图呢?
格式:
create view 视图名称(
rowkey 类型 primary key,
列族.列名1 类型,
列族.列名2 类型,
....
)
注意事项:
1- 视图的名称必须是与要映射的HBase的表名称保持一致, 如果有名称空间 写法: 名称空间.表名
2- rowkey的字段名称可以自定义,但是必须添加primary key
3- 列名必须与HBase中表列名保存一致(区分大小写)
删除视图
drop view 视图名称;
案例需求: 能够在Phoenix中 操作 WATER_BILL这张HBase的表
1- 创建视图
create view "WATER_BILL" (
id varchar primary key,
C1.ADDRESS varchar,
C1.LATEST_DATE varchar,
C1.NAME varchar,
C1.NUM_CURRENT unsigned_double,
C1.NUM_PREVIOUS unsigned_double,
C1.NUM_USAGE unsigned_double,
C1.PAY_DATE varchar,
C1.RECORD_DATE varchar,
C1.SEX varchar,
C1.TOTAL_MONEY unsigned_double
);
![](https://img-blog.csdnimg.cn/img_convert/867f5d78f0fec4252a39e2f8e1a0fa78.png)
需求: 查询 2020年 6月份的所有用户的总条数 : 日期: RECORD_DATE 用水量: NUM_USAGE
select count(1) from water_bill where RECORD_DATE between '2020-06-01' and '2020-06-30';
# 博学谷IT 技术支持