优雅的将hbase的数据导入hive表
Posted 分歧者
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了优雅的将hbase的数据导入hive表相关的知识,希望对你有一定的参考价值。
优雅的将hbase的数据导入hive表
背景
Hive是一个构建在Hadoop基础设施之上的数据仓库。通过Hive可以使用HQL语言查询存放在HDFS上的数据。HQL是一种类SQL语言,这种语言最终被转化为Map/Reduce.
HBase是一种Key/Value系统,它运行在HDFS之上。和Hive不一样,Hbase的能够在它的数据库上实时运行,而不是运行MapReduce任务。
hive帮助熟悉SQL的人运行MapReduce任务。因为它是JDBC兼容的,同时,它也能够和现存的SQL工具整合在一起。HBase通过存储key/value来工作。它支持四种主要的操作:增加或者更新行,查看一个范围内的cell,获取指定的行,删除指定的行、列或者是列的版本。
由于hive目前不支持更新操作(非实时性)。所以在生产环境上不能直接将数据写入hive表,一般都是先将数据写到hbase上,而在大数据的计算及统计的时候,hive的读写速率大大优于hbase表,在处理大数据时(几TB的数据量),将会大大的提高挖掘的效率。
所以,比较常规的做法都是在生产环境下,将数据写入hbase表,再在数据挖掘的时候,将数据导入hive表,进行数据分析统计操作。
那怎么将数据从hbase表转入hive表里面呢,本文将介绍以下几种办法。
转换
将hbase的数据转换成hive,笔者知道的就有以下几种转换方式,下面一一道来。
创建hive外部关联表
在创建hive表的时候,指定与hbase某个表做为关联,如下所示的建表语句: