数据仓库概述

《数据仓库》系列博文,是笔者在学习数据仓库与商业智能时的读书笔记,现分享在这里,希望读者批评指正。

在正式进入到数据仓库的知识之前,先说明一下数据库中的两种数据处理模式:操作型数据处理和分析型数据处理,又分别称为联机事务处理(OLTP)和联机分析处理(OLAP)。

  (1)联机事务处理(OLTP)
      是指对数据库联机的日常操作,主要完成数据的收集、整理、存储以及增删查改等操作,主要由一般工作人员和基层管理人员完成。主要应用于企业的日常事务处理工作,数据库中存放的是细节的数据,也是当前的数据,反映的是最近一次修改后的结果。对数据的操作主要是数据的增删查改。数据库中的数据是可以修改的。数据的组织以方便事务处理、提高事务处理性能为目标。

  (2)联机分析处理 (OLAP)
      是指对数据的再加工,通常是对海量的历史数据查询和分析,从中获取信息,主要由分析人员和中高级管理人员完成。主要应用于企业的管理工作,数据库中主要存放的是历史数据和综合数据。对数据的操作主要集中在查询和统计分析,需要涉及大量数据,数据的组织方式以方面查询分析为主要目标,为了提高查询效率允许存在某种程度上的数据冗余。

1.数据仓库的定义

  数据仓库,英文名称为Data Warehouse,可简写为DW或DWH。数据仓库,是为企业所有级别的决策制定过程,提供所有类型数据支持的战略集合,是在企业管理和决策中面向主题的、集成的、与时间相关的、不可修改的数据集合。
  数据仓库全面接收源系统数据,ETL进程对数据进行规范化、验证、清洗,并最终装载进入数据集市,通过数据集市支持系统进行数据查询、分析,整个数据仓库包含四大层次。

2.数据仓库的特点

 (1)面向主题:操作型数据库的数据组织面向事务处理任务,而数据仓库中的数据是按照一定的主题域进行组织。主题是指用户使用数据仓库进行决策时所关心的重点方面,一个主题通常与多个操作型信息系统相关。
 (2)集成性:数据仓库是集成的,数据仓库的数据有来自于分散的操作型数据,将所需数据从原来的数据中抽取出来,进行加工与集成,统一与综合之后才能进入数据仓库。
 (3)数据仓库是不可更新的,数据仓库主要是为决策分析提供数据,所涉及的操作主要是数据的查询。
 (4)数据仓库是随时间而变化的,传统的关系数据库系统比较适合处理格式化的数据,能够较好的满足商业商务处理的需求。稳定的数据以只读格式保存,且不随时间改变。
 (5)汇总的。操作性数据映射成决策可用的格式。
 (6)大容量。时间序列数据集合通常都非常大。
 (7)非规范化的。Dw数据可以是而且经常是冗余的。
 (8)元数据。将描述数据的数据保存起来。
 (9)数据源。数据来自内部的和外部的非集成操作系统。

3.数据仓库的用途

 (1)整合公司所有业务数据,建立统一的数据中心;
 (2)产生业务报表,用于作出决策;
 (3)为网站运营提供运营上的数据支持;
 (4)可以作为各个业务的数据源,形成业务数据互相反馈的良性循环;
 (5)分析用户行为数据,通过数据挖掘来降低投入成本,提高投入效果;
 (6)开发数据产品,直接或间接地为公司盈利。

4.数据仓库的分层及意义

 (1)数据分层的意义,为什么要数据分层?
  清晰数据结构:每一个数据分层都有它的作用域和职责,在使用表的时候能更方便地定位和理解;
  减少重复开发:规范数据分层,开发一些通用的中间层数据,能够减少极大的重复计算;
  统一数据口径:通过数据分层,提供统一的数据出口,统一对外输出的数据口径;
  复杂问题简单化:将一个复杂的任务分解成多个步骤来完成,每一层解决特定的问题。

 (2)数据分层
  通常数据分层总共可以分为四层,不同的公司根据自己公司业务的实际情况分层会有不同。
  ① ODS(Operational Data Store):操作数据存储层,往往是业务数据库表格的一对一映射,将业务数据库中的表格在 ODS重新建立,数据完全一致。
  ② DWD(Data Warehouse Detail):数据明细层,在 DWD 进行数据的清洗、脱敏、统一化等操作,DWD 层的数据是干净并且具有良好一致性的数据。
  ③ DWS(Data Warehouse Service):服务数据层(公共汇总层),在 DWS 层进行轻度汇总,为 DM 层中的不同主题提供公用的汇总数据。
  ④ DM(Data Market):数据集市层,DM 层针对不同的主题进行统计报表的生成。

 (3)层次功能详解
  ① ODS:ODS 层中的数据全部来自于业务数据库,ODS 层的表格与业务数据库中的表格一一对应,就是将业务数据库中的表格在数据仓库的底层重新建立一次,数据与结构完全一致。
  由于业务数据库(OLTP)基本按照 ER 实体模型建模,因此 ODS 层中的建模方式也是 ER 实体模型。
  ② DWD:DWD 层要做的就是将数据清理、整合、规范化,脏数据、垃圾数据、规范不一致的、状态定义不一致的、命名不规范的数据加以处理。DWD 层应该是覆盖所有系统的、完整的、干净的、具有一致性的数据层。
  在 DWD 可能会用到 ER 或者维度模型。在 DWD 层会抽取出公共维度,例如区域等。也就是说 DWD 层是一个非常规范的,高质量的,可信的数据明细层。
  ③ DWS:DWS 层为公共汇总层,会进行轻度汇总,粒度比明细数据稍粗,会针对度量值进行汇总,目的是避免重复计算。往往在 DWS 层建立宽表,例如订单总金额,可能在原始数据中没有这个数据,进入 DWS 层后可以统计出订单总金额,避免重复地拿订单明细数据去计算。
  ④ DM:DM 层为数据集市层,面向特定主题,例如订单主题、物流主题等。在 DM 完成报表或者指标的统计,DM 层已经不包含明细数据,是粗粒度的汇总数据,因此 DM 层会被当成 BI (商业智能)或者 OLAP 的底层模型。

  在大数据数据仓库领域内,数据仓库是包括集市的,而且物理上是统一、非隔离的,集市的概念相较与传统数据仓库比较弱化,由于有底层明细数据、通用汇总数据的存在,数据集市一般位于上层。
  应用层面存在相应分析主题的概念,甚至很大程度上存在集市交叉的现象,所以如果是在大数据领域构建企业整体数据仓库,并且数据集市也一块规划,建议集市弱化,把它当作是梳理上层数据域的工具。

5.数据集市

  数据集市可以理解为是一种"小型数据仓库",它只包含单个主题,且关注范围也非全局。
  数据集市可以分为两种,一种是独立数据集市(independent data mart),这类数据集市有自己的源数据库和ETL架构;另一种是非独立数据集市(dependent data mart),这种数据集市没有自己的源系统,它的数据来自数据仓库。当用户或者应用程序不需要/不必要/不允许用到整个数据仓库的数据时,非独立数据集市就可以简单为用户提供一个数据仓库的"子集"。

6.元数据

  元数据(Metadata)是关于数据的数据。
  在数据仓库系统中,元数据可以帮助数据仓库管理员和数据仓库的开发人员非常方便地找到他们所关心的数据;元数据是描述数据仓库内数据的结构和建立方法的数据,可将其按用途的不同分为两类:技术元数据(Technical Metadata)和业务元数据(Business Metadata)。

  (1)技术元数据(Technical Metadata)
      技术元数据是存储关于数据仓库系统技术细节的数据,是用于开发和管理数据仓库使用的数据,它主要包括以下信息:数据仓库结构的描述,包括仓库模式、视图、维、层次结构和导出数据的定义,以及数据集市的位置和内容;业务系统、数据仓库和数据集市的体系结构和模式;汇总用的算法,包括度量和维定义算法,数据粒度、主题领域、聚集、汇总、预定义的查询与报告;;由操作环境到数据仓库环境的映射,包括源数据和它们的内容、数据分割、数据提取、清理、转换规则和数据刷新规则、安全(用户授权和存取控制)。
  (2)业务元数据(Business Metadata)
      业务元数据从业务角度描述了数据仓库中的数据,它提供了介于使用者和实际系统之间的语义层,使得不懂计算机技术的业务人员也能够"读懂"数据仓库中的数据。业务元数据主要包括以下信息:使用者的业务术语所表达的数据模型、对象名和属性名;访问数据的原则和数据的来源;系统所提供的分析方法以及公式和报表的信息。
posted @ 2020-11-10 15:26  Shmily_blog  阅读(267)  评论(0编辑  收藏  举报