欢迎投稿

今日深度:

Hive,

Hive,


Hive概念-数据仓库的一种(不跟实时系统交互,只存历史数据,供决策分析使用)

Hive是建立在Hadoop之上的数据库仓库工具,使用类SQL方式进行操作,使我们能够使用更简洁的sql方式就能实现分布式的海量离线数据处理业务。

Hadoop在海量数据离线处理中遇到的问题

1开发调试MapReduce程序非常复杂,不适合要求快速得出结果的工作场景。
2Hadoop由Java开发,MR程序天生对Java支持最好,对其他语言使用者不太友好。
3开发一个优秀的MapReduce程序需要对Hadoop底层有一定的了解,需要记忆大量API。


还需要工具类,javaBean
Hive对MapReduce进行了封装 类SQL操作大数据

Hive它有一个能将类SQL语言能翻译成MapReduce程序的引擎。
类SQL能翻译成MapReduce程序,并将它放在MapReduce里执行操作HDFS中的数据。

数据仓库

数据仓库是一种面向主题的,稳定的,反映历史数据的数据存储系统,为管理者提供数据分析的支持。

数据仓库是设计理念:用空间换时间

面向主题:不同的维度就是不同的主题

稳定的:一次存储,多次读取
反映历史数据:不能处理实时数据

关系型数据库和数据仓库的区别:

数据库 数据仓库
面向事务 面向主题
实时数据 历史数据
避免冗余 有意冗余
捕获数据 分析数据

ETL将不常用的数据提取出来进行转化,统一地放在数据仓库里。存与业务交互无关但有用的数据。



ETL在转化前对需求。存的时候进行分类存储。但是因为数据有重复,比较浪费空间。但空间是廉价的,时间是宝贵的。

优点:
1避免了MR繁琐的开发调试过程,Hive自动将我们输入的HQL编译为MR运行
2HQL这种类SQL语言对于任何开发语言的程序员来说都比较友好。
3我们不需要对Hadoop底层有太多的理解,也不用记忆大量的API就能实现分布式数据的处理
4Hive也提供了自定义函数的方式来补充自身函数库可能存在的不足。即编写JAVA代码来实现复杂的逻辑并封装为UDF(自定义函数)来供我们重复使用。

百度词条有误。hive提供的是UDF,根MapRedeuce没有关系
必须有方法名叫evaluate,它不要求参数和返回值,更不需要对MapReduce有了解

www.htsjk.Com true http://www.htsjk.com/hive/28012.html NewsArticle Hive, Hive概念-数据仓库的一种(不跟实时系统交互,只存历史数据,供决策分析使用) Hive是建立在Hadoop之上的数据库仓库工具,使用类SQL方式进行操作,使我们能够使用更简洁的sql方式...
相关文章
    暂无相关文章
评论暂时关闭