-->

Hive介绍

2019-11-15 19:20发布

1.Hadoop开发存在的问题

只能用java语言开发,如果是c语言或其他语言的程序员用Hadoop,存在语言门槛。
需要对Hadoop底层原理,api比较了解才能做开发。

2.Hive概述

Hive是基于Hadoop的一个数据仓库工具。可以将结构化的数据文件映射为一张’数据库表’,并提供完整的sql查询功能,可以将sql语句转换为MapReduce任务进行运行。其优点是学习成本低,可以通过类SQL语句快速实现简单的MapReduce统计,不必开发专门的MapReduce应用,十分适合数据仓库的统计分析。

Hive是建立在 Hadoop 上的数据仓库基础构架。它提供了一系列的工具,可以用来进行数据提取、转化、加载(ETL Extract-Transform-Load ),这是一种可以存储、查询和分析存储在 Hadoop 中的大规模数据的机制。Hive 定义了简单的类 SQL 查询语言,称为 HiveQL,它允许熟悉 SQL 的用户查询数据。

3.Hive的Hql

HQL - Hive通过类SQL的语法,来进行分布式的计算。HQL用起来和SQL非常的类似,Hive在执行的过程中会将HQL转换为MapReduce去执行,所以Hive其实是基于Hadoop的一种分布式计算框架,底层仍然是MapReduce,所以它本质上还是一种离线大数据分析工具。

4.数据库和数据仓库的对比

1.数据库面向事务处理,数据仓库是面向主题设计的。
数据仓库里存储的数据都是对决策或数据分析(挖掘)有用的数据。客户数据、利润数据等
2.数据库存储的日常操作数据或者实时的在线数据,数据仓库存储的一般是历史数据。
3.数据仓库的数据一般都隐式或显式的包含时间维度。
4.数据仓库是弱事务的(或根本就没有事务),大多数业务都是读,分析等业务。
5.数据仓库里的数据一般是来自于多个异构数据源,比如有数据库的数据,文件数据,网络数据,空间数据,媒体数据等,然后通过一定的技术进行ETL。
6.数据库存储数据量较小,数据仓库较大
7.数据库存储格式化数据,数据仓库存各种格式

5.适用场景

Hive 构建在基于静态批处理的Hadoop 之上,Hadoop 通常都有较高的延迟并且在作业提交和调度的时候需要大量的开销。因此,Hive 并不能够在大规模数据集上实现低延迟快速的查询,例如,Hive 在几百MB 的数据集上执行查询一般有分钟级的时间延迟。因此,Hive 并不适合那些需要低延迟的应用,Hive 并不提供实时的查询和基于行级的数据更新操作。Hive 的最佳使用场合是大数据集的批处理作业,例如,网络日志分析。

标签: