1、数据仓库理论

1.1 学习数据仓库的目的

  • 数据不兼容,很难被整合–>传统数据库弊端
  • 战略决策需要数据的分析–>辅助决策
  • 推荐系统–>根据对数据结果的分析,为客户进行精准匹配

1.2 数据仓库的概念

数据仓库是一个面向主题的、集成的、非易失的且随时间变化的数据集合。

1.2.1 面向主题

  • 主题即Subject,是在较高层次上将企业信息系统中的数据进行综合、归类和分析利用的一个抽象概念
  • 每一个主题基本对应一个宏观的分析领域
  • 在逻辑意义上,它是对应企业中某一宏观分析领域所涉及的分析对象
  • 将需求提取成某些个可以独立存在的子系统,在归并成一个雪花型的数据集合
    • 举例:销售分析
      • 一个面向事务处理的“商场”数据库系统,其数据模式如下
        • 采购子系统:
          • 领料单(领料单号,领料人,商品号,数量,日期)
          • 进料单(进料单号,订单号,进料人,收料人,日期)
          • 库存(商品号,库房号,库存量,日期)
          • 库房(库房号,仓库管理员,地点,库存商品描述)
        • 人事管理子系统:
          • 顾客(顾客号,姓名,性别,年龄,文化程度,地址,电话)
          • 销售(员工号,顾客号,商品号,数量,单价,日期)
        • 库存管理子系统:
          • 领料单(领料单号,领料人,商品号,数量,日期)
          • 进料单(进料单号,订单号,进料人,收料人,日期)
          • 库存(商品号,库房号,库存量,日期)
          • 库房(库房号,仓库管理员,地点,库存商品描述)
        • 人事管理子系统:
          • 员工(员工号,姓名,性别,年龄,文化程度,部门号)
          • 部门(部门号,部门名称,部门主管,电话)

1.2.2 集成

  • 集成性是指数据仓库中数据必须是一致的
    • 数据仓库的数据是从原有的分散的多个数据库、数据文件和数据段中抽取来的
    • 数据来源可能既有内部数据又有外部数据
  • 集成方法
    • 统一:消除不一致的现象
    • 综合:对原有数据进行综合和计算

1.2.3 非易失

  • 数据仓库中的数据是经过抽取而形成的分析型数据
    • 不具有原始性
    • 主要供企业决策分析之用
    • 执行的主要是‘查询’操作,一般情况下不执行‘更新’操作
    • 一个稳定的数据环境也有利于数据分析操作和决策的制订

1.2.4 随时间变化

  • 数据仓库以维的形式对数据进行组织,时间维是数据仓库中很重要的一个维度
    • 不断增加新的数据内容
    • 不断删去旧的数据内容
    • 更新与时间有关的综合数据

1.3 数据仓库分层:

  • ODS:数据接入层
  • DWD:数据明细层、数据清洗、归一化
  • DWS:数据汇总层、按分区汇总
  • ADS:数据应用层

2、数据仓库和数据库的区别

2.1 数据仓库和数据库的区别

  • 数据库是为捕获和存储数据而设计
  • 数据仓库是为分析数据而设计数据仓库理论概述

2.2 OLTP和OLAP的区别

  • 联机事务处理OLTP
    • On-Line Transaction Processing
    • OLTP是传统的关系型数据库的主要应用
  • 联机分析处理OLAP
    • On-Line Analytical Processing
    • OLAP是数据仓库系统的主要应用,支持复杂的分析操作,侧重决策支持,并且提供直观易懂的查询结果
      数据仓库理论概述

3、数据仓库的架构

3.1 Inmon架构

数据仓库理论概述

3.2 Kimball架构

数据仓库理论概述

3.3 混合型架构

数据仓库理论概述

3.4 数据仓库的解决方案

  • 数据采集:
    • Flume、Sqoop、Logstash、Datax
  • 数据存储:
    • MySQL、HDFS、HBase、Redis、MongoDD
  • 数据计算:
    • Hive、Tez、Spark、Flink、Storm、Impala
  • 数据可视化:
    • Tableau、Echarts、Superset、QuickBI、DataV
  • 任务调度:
    • Oozie、Azkaban、Crontab

4、数据ETL

  • 抽取(Extract)
    • 从操作型数据源获取数据
  • 转换(Transform)
    • 转换数据,使之转变为适用于查询和分析的形式和结构
  • 装载(Load)
    • 将转换后的数据导入到最终的目标数据仓库

ETL工具

  • Oracle
    • OWB和ODI
  • 微软
    • SQL Server Integration Services
  • SAP
    • Data Integrator
  • IBM
    • InfoSphere DataStage、Informatica
  • Pentaho
    • Kettle(较火)

5、数据仓库的建模

5.1 数据仓库模型构建

5.1.1 选择业务流程

  • 确认哪些业务处理流程是数据仓库应该覆盖的
  • 记录方式:
    • 使用纯文本
    • 使用业务流程建模标注(BPMN)方法
    • 使用同一建模语言(UML)

5.1.2 声明粒度

  • 用于确认事实中表示的是什么
  • 选择维度和事实前必须声明粒度
  • 建议从原始粒度数据开始设计
    • 原始记录能够满足无法预期的用户查询
  • 不同的事实可以有不同的粒度

5.1.3 确认维度

  • 说明了事实表的数据是从哪里采集来的
  • 典型的维度都是名词
    • 例如:日期、商店、库存等
  • 维度表存储了某一维度的所有相关数据
    • 例如:日期维度应该包括年、季度、月、周、日等数据

5.1.4 确认事实

  • 识别数字化的度量,构成事实表的记录
  • 和系统的业务用户密切相关
  • 大部分事实表的度量都是数字类型的
    • 可累加,可计算

5.2 模型

5.2.1 星型模型

  • 星型模型特点
    • 由事实表和维度表组成
    • 一个星型模式中可以有一个或多个事实表,每个事实表引用任意数量的维度表
    • 星型模式将业务流程分为事实和维度
      • 事实包含业务的度量,是定量的数据
        • 如销售价格、销售数量、距离、速度、重量等是事实
      • 维度是对事实数据属性的描述
        • 如日期、产品、客户、地理位置等是维度
          数据仓库理论概述
  • 优缺点
    • 优点
      • 简化查询
      • 简化业务报表逻辑
      • 获得查询性能
      • 快速聚合
      • 便于向立方体提供数据
    • 缺点
      • 不能保证数据完整性
      • 对于分析需求来说不够灵活

5.2.2 雪花模型

  • 雪花模型特点
    • 一种多维模型中表的逻辑布局
    • 由事实表和维度表所组成
    • 将星型模式中的维度表进行规范化处理
      • 把低基数的属性从维度表中移除并形成单独的表
    • 一个维度被规范化成多个关联的表
      数据仓库理论概述
  • 优缺点
    • 优点
      • 一些OLAP多维数据库建模工具专为雪花模型进行了优化
      • 规范化的维度属性节省存储空间
    • 缺点
      • 维度属性规范化增加了查询的连接操作和复杂度
      • 不确保数据完整性

相关文章: