大数据数据仓库技术Hive
基本概念
诞生背景
在已经存在分布式计算引擎MapReduce的情况下,为什么会诞生Hive这样的产品?其实主要还是因为易用性问题。虽然MapReduce提供了分布式开发的能力,但它毕竟是一个通用计算引擎,在特定且相对成熟的垂直场景中,易用性就比较差了。
而在传统数据分析中,最常见的还是结构化数据,这个场景有它成熟的分析工具——SQL。数据量达到某个量级之后,单机或MPP数据库无法承受其负载,势必要转向大数据平台;但数据迁移完成后,因为大数据有自己的计算引擎(如Mapreduce),所以之前所有使用SQL编写的分析任务,都需要重构为MapReduce任务,这个工作量极大,迁移成本极高。而且迁移之后,对结构化数据的分析,也不能再使用SQL这种方便的工具来进行了,需要学习MapReduce语法,学习成本也很大。
那可不可以将特定领域,已经成熟的语法和使用习惯,如结构化数据分析的SQL,也迁移到大数据平台上来?当然可以,而且在大数据产品中,都是致力于此,用于提升大数据在不同场景的易用性。在结构化数据分析,即数据仓库场景中,可以将SQL自动转化为MapReduce任务的,在Hadoop家族中,最常用的便是Hive了。
什么是Hive?
Hive早期由Facebook开发,后来由Apache软件基金会开发,并成为其顶级项目。它是基于Hadoop的一个数据仓库工具。