Hive是基于Hadoop的数据仓库,而Hadoop为数据的存储和处理提供了很强的水平扩展和容错功能。Hive能够轻松地汇总数据,特定查询和分析大数据,提供了简单的查询语言HiveQL,该语言基于SQL,这使得熟悉SQL的用户可以执行特定查询,容易得汇总和分析数据。同时Hive QL允许map/reduce程序员能够插入定制的mapper和reducer去执行更加复杂的分析,HiveQL的内建功能可能并不支持这些复杂的分析。
Hadoop是一个批处理系统,运行在Hadoop上的作业常常有较高的延迟并且在作业的提交和调度时出现大量的开销。这些导致了Hive查询的延迟往往会很高(分钟),即使数据集非常小(几百兆),因为Hive是建立在Hadoop之上的。所以Hive是不够与Oracle之类的系统相比较的,在Oracle中数据分析是建立在非常小的数据上的,但是分析进行更多次数的迭代,迭代之间的响应时间不超过几分钟。Hive的目标是在小数据集上进行交互式数据浏览、查询或者测试查询时提供可以接受的(不是最佳的)延迟。Hive不适于在线交易处理,也不提供实时查询和行级更新,最好用于不可修改的大数据集上的批量作业,比如web日志。
按照粒度大小的次序,Hive中的数据被组织为:
- 数据库:分隔表等数据单元,防止命名