Outline

Chapter Overview
1 什么是数据仓库
2 多维度数据模型
3 数据仓库体系架构
4 数据仓库实施过程
5 从数据仓库到数据挖掘

Chapter 1. 什么是数据仓库

数据仓库(Data Warehouse)就是一个面向主题的、集成的、时变的、非易失性的海量数据集合,用于支持管理层的决策过程和企业的分析性报告。数据仓库可以对多样的业务数据进行筛选和整合。

1️⃣ 面向主题的

  • 围绕主要主题组织,如客户、产品、销售
  • 专注于为决策者建模和分析数据,而不是日常操作或事务处理
  • 排除在决策支持过程中无用的数据,围绕特定主题问题提供一个简单而简明的观点

可以说,DW是在决策层的工具,对细节问题并不care

2️⃣ 集成的

数据仓库可以通过多个不同源的数据构成,可以是关系型数据库、平面文件、在线交易记录等等。

在数据仓库中,应用了数据清洗和数据聚合技术,以确保不同数据源之间的命名约定、编码结构、属性度量等的一致性。

3️⃣ 时间变化的

数据仓库的时间范围比操作系统的时间范围要长得多,一般是从一个较长的时间序列提供信息,比如五年十年这样。

数据仓库中的每一个关键结构都显式或是隐式地提供了时间元素。

4️⃣ 非易失性

数据仓库环境中不会发生数据的更新操作,所以不需要注意底层这些事务处理、恢复和并发控制机制。

操作数据仓库只需要两步:

  • 加载初始数据
  • 数据访问

数据仓库里的数据一般是从操作环境转换而来的物理上独立的数据存储


DW和DBMS

OLTP

On-Line Transaction Processing 联机事物处理过程

  • 传统关系型DBMS的主要任务
  • 日常运作:如采购、库存、银行、制造、工资、登记、会计等。

OLAT

On-Line Analytical Processing 联机分析处理过程

  • 数据仓库系统的主要任务
  • 数据分析和决策

OLAM

On-Line Analytical Mining 在线分析挖掘

数据仓库中的高质量数据

  • 数据仓库包含集成、一致、干净的数据

  • 围绕数据仓库的可用信息处理结构

  • ODBC、OLEDB、Web访问、服务设施、报告和OLAP工具

  • 基于OLAP的探索性数据分析

  • 钻孔、切割、旋转等采矿。

  • 数据挖掘功能的在线选择

  • 集成和交换多个挖掘功能、算法和任务

image-20221123013523760

区别

OLTP OLAP
系统 DBMS Data WareHouse
用户 顾客 市场
数据内容 当前、详细的 历史、封装的
视角 当前,局部 层层递进,完整
访问模型 更新 只读,但是复杂
大小 100MB-GB 100GB-TB
数据库设计 面向应用 面向主题
功能 日常操作 决策支持

为什么需要单独的数据仓库

相对于DBMS,DW具有不同的功能和数据。

缺失数据:决策支持需要历史数据,而可操作的数据库通常不会维护这些数据。

数据整合: 决策支持需要整合来自异构数据源的数据(聚合、汇总)

数据质量: 不同的数据源通常使用不一致的数据表示、代码和格式,这些必须进行协调

OLTP:需要做的主要是访问方法、索引、并发控制和回复

OLAP:需要进行复杂的OLAP查询,以及多维度视角等


Chapter 2. 多维度数据仓库

数据仓库基于多维数据模型,该模型以数据立方体的形式查看数据。

所谓数据立方体(Data Cube),就是下面这个啦:

image-20221123004525578

可以看到,表格中的属性成了立方体上的列,以这种形式描述多维度数据,允许在多个维度上查看数据,方便之后的切割工作。


就像DB有ER图一样,DW也有概念层次上的建模。

1️⃣ 星型模式

  • 中间的事实表连接到一组维度表
image-20221123005941055

一般是这样的,中间的是一个Fact Table,记录的元素分为两部分,第一部分是各个子维度,连接到各自的子表中,子表不做扩展。第二部分是度量元素。

2️⃣ 雪花模式

  • 星型模式的细化,其中一些维度层次结构被标准化为一组更小的维度表,形成类似雪花的形状
image-20221123010133263

跟星型大同小异,就是扩展了一下

3️⃣ 事实星座(Fact Constellation)

  • 多个事实表共享维度表,将其视为星星的集合,因此称为星系模式或事实星座
image-20221123010209280

此时应当有两张或者以上的事实表,一起构成了星座模式。

在DMQL中定义模式:

image-20221123010421709

定义星型表

image-20221123010438981

定义雪花表

image-20221123010519440

定义星座表

image-20221123010531649

概念层级

这个概念层级就是上边定义的维度表,比如位置维度概念层:

image-20221123010922185

时间维度概念层

image-20221123010939305

数值维度概念层

image-20221123010954830

多维立方体

image-20221123011026542

每个维度都有自己的概念层级,这方便我们对其进行操作。

常见的OLAP操作:

Operation Meaning
Roll up 将数据汇总,升到更高的概念级
Drill down 从高维概念级往低维延伸,或是开辟一个新的概念级
Slice and dice 切片和选择
Pivot(rotate) 旋转立方体

Roll up操作

image-20221123011438544

Drill Down操作

image-20221123011521619

Slice操作

image-20221123011611339

Pivot操作

image-20221123011626289

dlice操作

image-20221123011724982

举个栗子

Starting with the base cuboid [date, spectator, location, game],what specific OLAP operations should one perform in order to list the total charge paid by student spectators in Los Angeles?

1
2
3
4
5
6
step 1. Roll-up on date from date_key to all
step 2. Roll-up on spectator from spectator_key to status
step 3. Roll-up on location from location_key to location_name
step 4. Roll-up on game from game_key to all

step 5. Dice with "status=student" and "location_name=Los Angeles"

不要用的属性:统统Roll up on A from cur to all

要用的属性:我们一般从key出发,高级别的概念层就先Roll up on A from key to B,最后选择的时候,单切用Slice from (),多切用Dice from()


Chapter 3. 数据仓库的架构

整个DW可以分为三层:

  • 底层:数据存储
  • 中间层:为OLAP服务引擎
  • 顶层:分析、汇报、查询、挖掘工具
image-20221123012353146

元数据存储库

元数据是描述数据的数据,包含:

  • 数据仓库结构的描述
  • 数据来源、数据流通、监视信息等

OLAP服务架构

  • 关系型OLAP(ROLAP)

    • 采用关系型或扩展关系型DBMS去存储和管理数据仓库数据
    • 包含DBMS后端优化,聚合架构等等
    • 使用并行计算、位图索引等等优化手段
  • 多维度OLAP(MOLAP)

    • 基于稀疏数组的多维存储引擎

    • 快速索引预计算汇总数据

    • 稀疏矩阵压缩技术

  • 合成OLAP(HOLAP)