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(自定义函数)来供我们重复使用。
必须有方法名叫evaluate,它不要求参数和返回值,更不需要对MapReduce有了解
本站文章为和通数据库网友分享或者投稿,欢迎任何形式的转载,但请务必注明出处.
同时文章内容如有侵犯了您的权益,请联系QQ:970679559,我们会在尽快处理。