5.HBase与Hive进行表关联
create external table ods_personas.ods_hbase_train( id string, userid string, eventid string, invited string, times string, interested string, not_interested string ) stored by 'org.apache.hadoop.hive.hbase.HBaseStorageHandler' with serdeproperties("hbase.columns.mapping" = ":key,base:user_id,base:event_id,base:invited,base:timestamp,base:interested,base:not_interested") tblproperties("hbase.table.name" = "exp:hbase_train")
如果HBase已经有表,可以通过关联映射到Hive上,此时在hive上只能建外部表来关联,即可映射相应HBase表中数据;
如果HBase和Hive中都没有表的存在,在Hive建表,HBase中也会对应生成表,此时如果在Hive端用load方法导入数据,HBase端无数据,因为load读的是txt文件,而HBase需要Hfile格式;所以使用insert方式插入,而且此时数据真正存储在HBase中。
生产环境中常用HBase来存储大量数据,且通过HBase的rowkey机制进行去重,然后再用Hive来映射,并在Hive端做数据分析和清理。