Hive Over HBase的介绍

2014.06.12 | Comments

Hive Over HBase是基于Hive的HQL查询引擎支持对hbase表提供及时查询的功能,它并不是将hql语句翻译成mapreduce来运行,其响应时间在秒级别。

特性

支持的字段类型:

boolean, tinyint, smallint, int, bigint, float, double, string, struct (当hbase中的rowkey字段为struct类型,请将子字段定义为string类型,同时指定表的collection items terminated分隔字符以及各字段的长度参数:hbase.rowkey.column.length)

支持的sql语法:

  • where子句
  • group by,having子句
  • 聚合函数: count, max, min, sum, avg
  • order by with limit(top N)
  • limit 子句
  • explain

支持的运算

  • 关系操作:>, >=, <=, <, =
  • 算术操作:+, - , * , / , %
  • 逻辑操作:and, or, not
  • 字符串操作函数: substring, concat
  • Distinct : 支持select distinct <col-list> from <tab> where <expr>, select aggr-fun(distinct <col_list>) from <tab> where <expr>
  • Like: 通配符’_’, ’%’
  • Case when子句

不支持:

  • Sub-query
  • Join
  • Union

原理

扩展HBase客户端代码,实现简单聚合计算,基于协作器实现分组计算的功能,并且修改hive的查询引擎,将HQL语句转换成HBase的Task,然后调用HBase中的api实现对HQL语句的解析。

源码

暂时不公开。


原创文章,转载请注明: 转载自JavaChen Blog,作者:JavaChen
本文链接地址:http://blog.javachen.com/2014/06/12/intro-of-hive-over-hbase.html
本文基于署名2.5中国大陆许可协议发布,欢迎转载、演绎或用于商业目的,但是必须保留本文署名和文章链接。 如您有任何疑问或者授权方面的协商,请邮件联系我。