Hive简介
现如今,数据可能是当下最赚钱的资源了。面对如此多的数据,Hadoop提供了完美的解决方案,使用分布式文件系统HDFS存储数据,使用MapReduce计算模型来处理数据。不过,仍然存在着一系列的挑战,例如:(1)用户如何从一个现有的数据基础结构转移到Hadoop上,而这个结构是基于传统的关系数据库和结构化查询语句(SQL)的。(2)MapReduce计算框架实在是太麻烦,比如用MapReduce来join两个文件需要好多的代码量(前面博客写过)。可不可以在文件上直接使用类似于SQL的语句来进行操作数据,不写Mapper和Reducer函数。这样的话,对大多数的工程师来说,是真的再好不过了,能够直接使用类似于SQL语句的方式来处理数据,真是太舒服了。基于这一系列问题,建立在Hadoop上的数据仓库Hive营运而生。
Hive提供了一种类SQL的查询语言,叫做HvieQL,一种声明式的语言,用户会提交声明式的查询,而Hive会将其转换为MapReduce job.大多数情况下,用户不需要了解Hive内部是如何工作的,这样可以专注于手头上的事情。
Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供简单的sql查询功能,可以将sql语句转换为MapReduce任务进行运行。 其优点是学习成本低,可以通过类SQL语句快速实现简单的MapReduce统计,不必开发专门的MapReduce应用,十分适合数据仓库的统计分析。
Hive 构建在基于静态批处理的Hadoop 之上,Hadoop 通常都有较高的延迟并且在作业提交和调度的时候需要大量的开销。因此,Hive 并不能够在大规模数据集上实现低延迟快速的查询,例如,Hive 在几百MB 的数据集上执行查询一般有分钟级的时间延迟。因此,
Hive 并不适合那些需要低延迟的应用,例如,联机事务处理(OLT