Hive与HBase映射表 实现大数据的增量操作

先说下使用场景 :
HIve有Orc表 可以增删改 但是每一个事务执行的速度很慢 不适合于高并发的场景。
我之前mysql同步hadoop 创建了hive事务表 但是效果很差 这里另辟蹊径,将数据存入hbase 很快 建立映射 这样解决了效率问题。

概念 详解:
HIve有 内部表 和外部表 针对于HBase来说

外部表 –》HBase已经存在这张表 hive只建立映射 在hive中删除这张表 HBase不收任何影响 在Hive中创建HBase映射的外部表 前提条件 HBase存在这张表

内部表–》HBase不存在这张表 在HIve中建立HBase映射的内部表 首先HBase不能存在这张表 建立好Hive表会自动在HBase中创建同样结构的表 在Hive中删掉这张表 HBase也会自动删除

不论内部 外部 disable 表 hive查询会报错

/*##这是创建hive表的基本格式## */
/*这里是外部表     内部表格式不变 去掉external就行*/
create external table student
(id int,
name string,
age int,
sex string,
address string,
math int)

/* #设置hive的存储格式 是hbase##*/

 stored by 'org.apache.hadoop.hive.hbase.HBaseStorageHandler'

 /*这里按照上面hive顺序 与HBase一一对应 :key表示rowKey  info:age代表列族:列*/
 with serdeproperties ("hbase.columns.mapping"="  
 :key,
 info:name,
 info:age,
 info:sex,
 info:address,
 score:math,
 score:english")

/*这里是表的对应关系  对应我  命名空间:表名    当然你可以用默认的命名空间*/
TBLPROPERTIES ("hbase.table.name" = "school:student");

你可能感兴趣的:(大数据-Hive)