读课文大约需要三分钟。
正如大家所知,数据库在平时的Web开发中被广泛使用。 但是什么是数据仓库呢? 他们俩有什么区别? 在开始之前,我要分享一个小故事:
1.
很久以前,世界上住着很多种族。 有人类,有矮人,有精灵。 ……他们有着不同的信仰、不同的文化,彼此平安无事。 但是,它有粗壮的羽毛,想要统治世界。
怎么统治这么多不同文化信仰的种族呢? tldgb想到了馒头的点子,制作了几枚具有魔力的戒指,免费送给不同种族的领导人,让他们更好地统治各自的民族。
当不同种族的领袖漂亮地戴上戒指,站在人生巅峰的时候,tldgb又创造了一枚独一无二的至尊戒指。 他利用戒指的力量统治着所有的戒指,统治着所有种族的领导人,统治着世界。
这个故事告诉我们数据库和数据仓库的关系。
如果那个世界上所有的生命体都是一个数据记录,那么普通戒指的地位就像数据库,戒指的地位就像数据仓库。
2.
什么是数据仓库?
给出定义吗?
简称为数据仓库、英文名称Data Warehouse、DW。 顾名思义,数据仓库是一个大型数据存储集合,其目的是为企业提供分析性报告和决策支持,从而过滤和整合各种各样的业务数据。 为企业提供一定的商业智能(BI )能力,以指导业务流程的改进、监控时间、成本、质量和控制。
看到这里你可能还不太清楚他在做什么,但必须明确一个方向。 那个是面向决策的。
数据仓库的输入目的地有多个数据源,最终的输出用于企业的数据分析、数据挖掘、数据报告等方向。
那么,数据仓库有什么特点呢?
1 .主题性
与传统数据库支持背后的长颈鹿一个或多个项目不同,数据仓库基于用户的实际需求,将不同数据源的数据在较高的抽象级别上整合,所有数据都围绕某个主题进行组织。
你怎么理解这个主题? 例如,城市的主题是“天气湿度分析”,淘宝的主题是“用户点击行为分析”。
2 .整合性
存储在数据仓库中的数据是来自多个数据源的集成,而原始数据来自不同的数据源,存储方式各不相同。 要整合到最终的数据集合中,需要从数据源中经过一系列提取、清洗和转换的过程。 如上图所示,数据来源于Mysql、MongoDB和其他第三方数据源。
3 .稳定性
存储在数据仓库中的数据是一系列历史快照,不允许修改。 用户只能使用分析工具进行查询和分析。 这里有一点要说明,数据仓库基本上不允许用户进行修改、删除操作。 大部分场景用于查询分析数据。
4 .时变性
数据仓库定期接收新的统一数据,以适应最新的数据变化。 这和特征不矛盾。 请注意这里和实时性不同。
3.
主要开源数据仓库: Hive
在大数据APP中,经常使用Hive。 为什么? 免费啊。 性能也还可以。 关于其他业务数据仓库,性能比Hive有很大提高,但中小企业不需要花太多成本使用业务数据仓库。
这个Hive作为数据仓库,具体做了什么?
一句话,Hive的主要作用是提供一个HQL查询语句,可以将结构化数据映射到Hive数据库表,并将HQL语句转换为MapReduce任务并执行。
特别是,Hive是一个基于Hadoop的数据仓库工具,可以查询和分析存储在HDFS中的文件数据集。 Hive向外部提供了查询语言HiveQL,如SQL语言,在查询时将HQL语句转换为MapReduce任务,然后在Hadoop层执行。
换个角度看,即使是不知道编程语言的DBA,也可以使用Hive写HQL语句统计数据。 给数据分析带来很大的便宜。
上面提到的名词说明:
1.HDFS
充当数据仓库存储层的Hadoop分布式文件系统。 的Data Node是HDFS的许多工作节点。
2.MapReduce
针对大量数据的离线分布式并行计算模型。 可以简单地理解为多个数据片的数据转换和集成。
3.h基本型
h baseHadoop数据库是一个可靠、高性能、面向列、可扩展的分布式存储系统,是开源数据库。 利用HBase技术,可以在廉价的PC服务器上构建大规模的结构化存储集群。
4.
以上从原理的观点出发,打开了数据仓库或数据仓库
源工具 Hive 。实际中,我们的目的做数据处理。要知道数据处理大致可以分成两大类:联机事务处理OLTP(on-line transaction processing)、联机分析处理OLAP(On-Line Analytical Processing)。OLTP是传统的关系型数据库的主要应用,主要是基本的、日常的事务处理,例如银行交易。OLAP是数据仓库系统的主要应用,支持复杂的分析操作,侧重决策支持,并且提供直观易懂的查询结果。
下图是两种数据处理方式的对比,这里你可以具体到数据库和数据仓库的对比。
通过两种对比,可以看出传统数据库和数据仓库分别使用的场景。
要求实时性(秒级以及更快的场景)业务需求,使用的数据库(OLTP)模型。
整合历史数据以及大量数据源数据的场景,且不要求响应时间的,使用数据仓库(OLAP)。
5.
在实际的使用中,Hive 也要结合关系型数据库进行使用。Hive 运行时,元数据信息是保存在关系中数据库中,一般使用 Mysql 数据库存储。