利用Phoenix映射Hbase表来进行操作

一、Hbase无表数据

这种情况需要由Phoenix来建映射表

建表语句示例

CREATE TABLE IF NOT EXISTS us_population (
      state CHAR(2) NOT NULL,
      city VARCHAR NOT NULL,
      population BIGINT
      CONSTRAINT my_pk PRIMARY KEY (state, city));

此处用的联合主键,当然也支持单个主键

注意:在Phoenix中创建的映射表删除时也会将Hbase中的表删除

 

在建表时,小写的表名或列名,都会自动在sqlline.py中转为大写!这样在查询时,只能使用大写进行查询!

如果必须使用小写,需要在表名等字段上添加双引号,建议不要使用小写的表名或字段!

 

二、Hbase有表数据

2.1只需要查找,不需要对数据进行操作

这时需要建立视图,因为视图删除时不会影响到原数据

建映射视图和映射表需要遵循以下几点:

  1. Phoneix的表名必须和 hbase的 库名.表名一致
  2. Phoneix的表的主键的列名一般对应rowkey列,名称可以随意,但是类型得匹配!
  3. Phoneix的表的普通的列名,必须和hbase的列族.列名一致!
  4. 表映射的结尾,必须添加column_encoded_bytes=0,不然无法从hbase中查询到数据的!

示例:

Habse表如下

利用Phoenix映射Hbase表来进行操作

 

 

 建表语句

create view if not exists "stu"(
   "id" varchar primary key,
   "info1"."name" varchar ,
   "info1"."age" varchar
   )column_encoded_bytes=0;

2.2需要对数据进行操作

此时就只能用映射表来操作

create table if not exists "stu"(
   "id" varchar primary key,
   "info1"."name" varchar ,
   "info1"."age" varchar
   )column_encoded_bytes=0;

 遗留问题:映射带命名空间的表

https://blog.csdn.net/xdsxhdyy/article/details/96461576

上一篇:浅谈WAF绕过技巧


下一篇:JS属性描述符