写在前面
刚接触大数据的新手小白可能会对数据仓库这个词比较陌生,本文将介绍数据仓库的主要特征及OLTP&OLAP的区别,帮助读者更好理解数据仓库。
一、什么是数据仓库
数据仓库,简称数仓,是一个对数据进行加工,集成,计算,并最终用于存储、分析、报告的数据系统。
数据仓库接收来自各个外部系统的数据,加工处理后,提供给各个外部应用使用。从数据流向上看,数据在业务系统产生,流转到数据仓库,进行处理后,流向各个数据使用方。
二、数据仓库的主要特征
数据仓库是面向主题的、集成的、稳定的,反映历史变化的数据集合,用以支持管理决策。
2.1 面向主题的
业务系统更加关注面向业务过程的事务处理(OLTP),并且不同业务系统之间可能是相互隔离的,与业务系统不同的是,数据仓库关注面向主题的数据分析,在数仓中,数据是按照不同的主题区分的。主题是一个相对抽象的概念,是在一个较高的层面对企业级数据综合,归类并加以分析的抽象体,它对应的是企业中某一具体分析领域中所涉及的分析对象。
2.2 集成的
各个业务系统之间可能是相互隔离的,数据彼此分散,独立,异构,当需要分析一个主题的数据而该主题数据又分散在不同的业务系统中时,对数据进行集成就很有必要了,集成是将各个业务系统的数据进行抽取、清洗、转换和汇总,这是数据仓库建设中最关键,最重要,最复杂的一个环节
2.3 稳定的
数据一旦进入数据仓库,它便稳定且不会改变,每次相同条件的查询结果都是一致的。在数据仓库中,对数据进行的操作主要是查询,目的是对数据进行分析,发现数据中的规律,像修改和删除这种操作是很少的,并且进入到数据仓库的数据一般会保留比较长的时间。
2.4 反映历史变化的
数据仓库包含各种粒度的历史数据,这些数据可能与日期、月份、季度或者年份等时间属性。
与业务系统只关系数据当前状态不同,数据仓库侧重点是分析,因此,它在关注数据当前状态的同时也会关注数据的历史状态。
数据仓库的数据随时间而变化主要体现在以下几个方面:
(1)数据仓库的数据时限一般要远远长于操作型数据的数据时限。
(2)操作型系统存储的是当前数据,而数据仓库中的数据是历史数据。
(3)数据仓库中的数据是按照时间顺序追加的,它们都带有时间属性。
三、OLTP与OLAP
OLTP
联机事务处理(On-Line Transaction Processing)
重点在事务处理,针对业务系统中的具体业务在数据库中的日常操作,一般是对少数记录进行查询,修改,更新。用户更关心的是操作的响应时间、数据安全、完整和支持并发等生产安全相关的问题。RDBMS是OLTP系统的典型应用,即是我们俗称的数据库,当然这里强调的是关系型数据库如MySQL。
OLAP
联机分析处理(On-Line Analytical Processing)
重点在于分析,这类主要是对数据进行集成,汇总,并通过复杂多维度的处理分析,以达到支持管理决策的目的。
现代OLAP系统一般以数据仓库作为基础,即从数据仓库中抽取详细数据的一个子集并经过必要的聚集存储到OLAP存储器中供前端分析工具读取,在多维度的分析中,发现数据中的规律。
总结
实际上OLTP和OLAP是两种处理数据的方式,他们各有优劣,各有侧重点。而OLAP作为数据仓库的主要应用,在企业管理决策中发挥着越来越重要的作用。