Phoenix的视图
说明: 发现在Phoenix的只有在Phoenix自定义的表以及Phoenix的系统表, 如果我们在hbase上自定义的表, 在Phoenix中无法找到的, 那么也就意味着无法通过Phoenix对hbase自建的表进行相关的操作
如何解决这种问题呢? 采用Phoenix提供的视图
视图主要的目的: 对hbase自建表进行映射关系匹配, 这个过程类似于 hive表和hdfs上数据进行映射
映射成功后, 我们就可以通过Phoenix对hbase中自建表进行相关的查询操作
- 如何构建视图呢?
格式:
create view 名称空间."hbase映射表名" (
key 类型 primary key,
列族1.列名1 类型,
列族1.列名2 类型,
列族2.列名1 类型,
....
)
注意事项:
1) 视图的名称必须与对应要映射hbase表名保持一致的
2) 视图的中主键的名称可以任意定义, 但是必须加上主键约束, 同时必须放置表的第一个
3) 视图中列族名称 以及对应的列名 必须和要映射的hbase表名中列族列名一致
- 如何删除视图呢
drop view 视图名称;
-
案例:
-
目前在hbase中有一张 WATER_BILL 表, 请在Phoenix中构建一个视图与之映射, 并完成以下的查询需求:
根据查表的日期, 查询6月份总计有多少条查表记录
-
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
);
2) 查询需求:
select count(1) from WATER_BILL where record_date >= '2020-06-01 00:00:00' and record_date< '2020-07-01 00:00:00';
Phoenix支持的相关的数据类型
Phoenix的二级索引
索引作用: 提升检索的效率
为什么说索引可以提升查询的效率呢?