关于Phoenix映射Hbase数据字段类型Demo
一. 原理
注意:1.在hbase中必须将value值进行Bytes.toBytes(),才能在phoenix中映射出你所需要的字段值
2.在Phoenix映射表的时候必须使用unsigned_*类型
二. 使用Hbase Shell
2.1 Hbase中操作
2.1.1 创建表
create 'jinshan' ,'info','info1'
2.1.2 插入数据
put 'jinshan','1001','info:createtime',Bytes.toBytes(1602237645881)
put 'jinshan','1001','info1:age',Bytes.toBytes(16)
2.2 Phoenix操作
2.2.1 使用视图的方式映射Hbase中表
create view "jinshan" (id varchar primary key,"info"."createtime" UNSIGNED_DATE,"info1"."age" UNSIGNED_LONG)column_encoded_bytes=0;
2.2.2 查询
select * from "jinshan";
三. 使用API
3.1 java中连接hbase api添加数据代码片段:
public static void insertData(String tableName) {
TableName tablename = TableName.valueOf(tableName);
// rowKey
Put put=new Put(Bytes.toBytes("user-111"));
//参数:1.列族名 2.列名 3.值
put.addColumn(Bytes.toBytes("mycg"),Bytes.toBytes("name"),Bytes.toBytes("lisa")) ;
put.addColumn(Bytes.toBytes("mycg"),Bytes.toBytes("age"),Bytes.toBytes(10)) ; put.addColumn(Bytes.toBytes("mycg"),Bytes.toBytes("datestr"),Bytes.toBytes(1602237645881L)) ;
Table table = null;
try {
table = connection.getTable(tablename);
table.put(put);
} catch (IOException e) {
e.printStackTrace();
}
}
3.2 Hbase中操作
3.2.1 在hbase中查询:
scan 't2_hbase'
3.3 Phoenix操作
3.3.1 使用表方式映射hbase中已存在的表
create table "t2_hbase" (id varchar primary key,"mycg"."age" UNSIGNED_INT,"mycg"."datestr" UNSIGNED_DATE,"mycg"."name" varchar)column_encoded_bytes=0;
3.3.2 查询
select * from "t2_hbase";