从0开始学大数据-数据仓库理论篇
什么是数据仓库
数据仓库(DW)是一个 面向主题的、集成的、稳定的、随时间变化的数据的集合,以用于支持管理决策过程。
image建立数据仓库的目的是为企业高层系统地组织、理解和使用数据以便进行战略决策。
数据仓库的特征
数据仓库有以下几大特征:
(1)面向主题
主题是指用户使用数据仓库进行决策时所关心的重点领域。数据仓库通过一个个主题将多个业务系统的数据加载到一起,为了各个主题(如:用户、订单、商品等)进行分析而建,操作型数据库是为了支撑各种业务而建立。
(2)集成性
数据仓库会将不同源数据库中的数据汇总到一起,但是并不是简单的复制,而是经过了抽取、筛选、清理、转换、综合等工作。
(3)稳定性即非易失的
数据仓库的数据是为了企业数据分析而建立,所以数据被加载后一般会保存较长时间。数据仓库中的数据大多表示过去某一时刻的数据,主要用于查询、分析,不会经常进行修改、添加等操作。
(4)随时间而变化即时变的
数据仓库存储的是历史数据,它会定期从操作型应用系统中接收新的数据。所以数据仓库中的数据一般都有个时间维度。数据仓库实际是记录了系统的各个瞬时,并通过瞬态连接起来形成动画(即数据仓库的快照集合),从而在数据分析时再现系统运动的全过程。
为什么使用数据仓库
通常数据仓库的数据是来自各个业务应用系统,然后业务系统中的数据形式是多种多样的,可能是Oracle、MySQL、SQL Server 等关系数据库里的结构化数据,也有可能是文本、CSV 等平面文件或Word、Excel 文档中的非结构化数据,还有可能是 HTML、XML 等自描述的半结构化数据。这些数据经过一系列的 数据抽取、转换、清洗,最终以一种统一的格式装载进数据仓库。数据仓库里的数据作为分析用的数据源,提供给后面的 即系查询、分析系统、数据集市、报表系统、数据挖掘系统等。
使用数据仓库有以下好处:
- 将多个数据源集成到单一数据存储,因此可以使用单一数据查询引擎展示数据。
- 缓解在事务处理数据库上因执行大查询而产生的资源竞争问题。
- 维护历史数据。
- 通过对多个源系统的数据整合,使得在整个企业的角度存在同一的中心视图。
- 通过提供一致的编码和描述,减少或修正坏数据问题,提高数据质量
- 一致性地表示组织信息。
- 提供所有数据的单一通用数据模型,而不用关心数据源。
- 重构数据,使数据对业务更有意义。
- 向复杂分析查询交付优秀的查询性能,同时不影响操作型系统。
- 开发决策性查询更简单。
数据仓库与传统数据库的区别
数据仓库虽然是从传统数据库系统发展而来,但是两者还是存在着诸多差异。
image数据仓库系统组成
数据仓库系统以数据仓库为核心,将各种应用系统集成在一起,为统一的历史数据分析提供坚实的平台,通过数据分析与报表模块的查询和分析工具 OLAP (联机分析处理)、决策分析、数据挖掘完成对信息的提取,以满足决策的需要。
整个数据仓库系统分为:源数据层、数据存储和管理层、OLAP 服务器层、前端分析工具层。
数据仓库系统体系结构数据仓库系统各组成部分:
- 数据仓库:数据仓库是整个数据仓库环境的核心,是数据存放的地方,提供了对数据检索的支持。支持海量数据的存储和快速检索。
- 抽取工具:抽取工具将数据从各种数据源中提取出来,进行清洗转化,再存放到数据仓库中。
- 元数据:元数据是描述数据仓库内数据的结构、位置和建立方法的数据。通过元数据进行数据仓库的管理和通过元数据来使用数据仓库。
- 数据集市:数据集市是完整的数据仓库的一个子集,为了特定的应用目的或应用范围,而从数据仓库中独立出来的一部分数据,也可以称为部门数据或主题数据。其目的是减少数据处理量,使信息的利用更加快捷和灵活。
- OLAP 服务:提供对存储在数据仓库中数据分析能力,能够快速进行复杂数据查询和聚集,并帮助用户分析多维数据中的各维情况。
- 前端工具:主要包括各种报表工具、查询工具、数据分析工具、数据挖掘工具以及各种基于数据仓库或数据集市的应用开发工具。
ETL
ETL 用来描述 数据抽取、清洗转换 和 加载 的过程。ETL按照统一的规则集成并提高数据的质量,是将数据从数据源向目标数据仓库(DW)转化的过程。ETL 是商务智能/数据仓库的核心和灵魂。
1. 数据抽取
数据抽取是从各个不同的数据源抽取数据并存储到操作数据存储(Operational Data Store,ODS)中的过程。
2. 数据清洗转换
数据清洗转是指按照预先设计好的规则将抽取的数据进行转换,使本来异构的数据格式能统一起来。
数据清洗转换包括 数据清洗 和 数据转换 两个过程。
-
数据清洗 是指对空数据、缺失数据进行补缺操作,对非法数据进行替换,保证数据的正确性。
-
数据转换 是指对数据进行整合、拆分和变换。
- 数据整合是指通过多表关联,将不同类型数据之间可能存在潜在关联关系的多条数据进行合并,通过数据的整合,丰富数据维度,有利于发现更多有价值的信息。
- 数据拆分是指按一定规则对数据进行拆分,将一条数据拆分为多条。
- 数据变换是指对数据进行行列转换、排序、修改序号、去除重复记录变换操作。
3. 数据装载
数据装载是指将清洗转换完的数据加载到数据仓库中。数据加载的方式主要有:
-
增量加载
- 时间戳方式
- 日志表方式
- 全表对比方式
-
全量加载
- 全表删除再插入方式
数据集市
数据集市(Data Mart)是完整的数据仓库的一个子集,为了特定的应用目的或应用范围,而从数据仓库中独立出来的一部分数据,也可以成为部门数据或主题数据。而数据仓库正式由其所有的数据集市有机组合而成的的。且各数据集市间应协调一致,满足整个企业分析决策的需要。
建立数据集市与数据仓库,一般是采用 "自顶向下" 和 “自下而上” 相结合的设计思想。
数据仓库和数据集市的区别
- 数据仓库向各个数据集市提供数据。前者是企业级的,规模较大,后者是部门级的,相对规模较小。
- 若干个部门的数据集市组成一个数据仓库。数据集市开发周期短、速度快,数据仓库开发的周期长。速度慢。
- 从其数据特征进行分析,数据仓库中的数据结构采用规范化模式,数据集市中的数据采用星型模式。通常数据仓库中的数据粒度比数据集市的粒度要细。
OLTP vs OLAP
OLTP
OLTP(联机事务处理) 是传统关系型数据库的重要应用之一,主要是基本的、日常的事务处理,对响应要求比较高,强条的是密集数据的更新处理的性能和系统的可靠性及效率。
OLTP 是事件驱动、面向应用的。
OLTP主要特点:
-
对响应时间要求非常高;
-
用户数量非常庞大,主要是操作人员;
-
数据库的各种操作基于索引进行;
-
对数据库的事务均已实现定义,查询简单,一般不涉及多表连接操作。
OLAP
OLAP(联机分析处理) 是一种多维分析技术,用来满足决策用户在大量的业务数据中,从多角度探索业务活动的规律性、市场的运作趋势的分析需求,并辅助他们进行战略发展决策的制定。
OLAP 系统按照数据存储方式可以分为:
- ROLAP:将分析要用的多维数据存储在关系数据库中,并根据应用的需求有选择的定义一批视图,视图也是存储在关系数据库中。
- MOLAP:将 OLAP 分析要用的多维数据物理上存储为多维数组的形式,形成“立方体”的结构。
- HOLAP:把 MOLAP 和 ROLAP 两种结构的有点有机的结合起来,能满足用户各种复杂的分析需求。
OLAP 工具是针对特定问题的联机数据访问与分析,它通过多维的方式对数据进行分析、查询和报表。
多维分析是指对以多维形式组织起来的数据采取切片、切换、钻取、旋转等各种分析动作,以求剖析数据,使用户能从多个角度、多个侧面地观察数据库中的数据,从而深入理解包含在数据中的信息。
-
钻取:改变维的层次,变换分析的粒度。包括:
- 向上钻取:在某一维上将低层次的细节数据概括到高层次的汇总数据,或者减少维数。
- 向下钻取:从汇总数据深入到细节数据进行观察或增加新维度。
- 切片和切换:在一部分维上选定值后,关心度量数据在剩余维上的分布。如果剩余的维只有两个,则是切片;如果有三个,则是切换。
- 旋转:变换维的方向,即在表格中重新安排维的放置(如:行列互换)。
OLTP 和 OLAP 对比
image image image推荐阅读: