0


数据仓库入门介绍框架(附带完整项目实战)

image.png
一、诞生背景

  • 企业数据分析需要:各个部门自己建立独立的数据抽取系统,导致数据不一致
  1. 概述
  • 数据仓库是一个面向主题的、集成、非易失的且随时间变化的数据集合
  • 主要用于组织积累的历史数据,并使用分析方法(OLAP、数据分析)进行分析整理辅助决策,为管理者、企业系统提供数据支持,构建商业只能。
  1. 特点
  • 面向主题:根据主题将原始数据集合在一起
  • image.png
  • 集成:原始数据来源不同数据源,需要经过抽取、清洗、转换形成最终数据
  • image.png
  • 非易失:保存的数据是一系列历史快照,不允许被修改,只允许通过工具进行查询。
  • 时变性:数仓会定期接受,集成新的数据,从而反映出数据的最新变化(时间戳)
  1. 数据仓库VS数据库
  • 数据库面向事务设计,属于OLTP(在线事务处理)系统,主要操作是随机读写;在设计是尽量避免冗余,常采用符合范式规范来设计。
  • 数据仓库是面向主题设计的,属于OLAP(在线分析处理)系统,主要操作是批量读写;关注数据整合,以及分析、处理性能;会有意引入冗余,采用反范式设计

image.png

  1. 技术实现
  • 传统数据仓库 - 由关系型数据库组成MPP(大规模并行处理)集群。
  • 大数据数据仓库 - 利用大数据天然的扩展性,完成海量数据的存放- 将SQL转换为大数据计算引擎任务,完成数据分析
  • MPP架构 - 传统数仓中常见的技术架构,将单机数据库节点组成集群,提升整体处理性能- 节点间为非共享架构,每个节点都有独立的磁盘存储系统和内存系统- 每台数据节点通过专用网络或商业通用网络互相连接,彼此协同计算,作为整体提供服务- 设计上优先考虑C(一致性),其次考虑A(可用性),尽量做好P(分区容错性)
  • 架构优点 - 运算方式精细,延迟低、吞吐低- 适合中等规模的结构化数据处理- image.png

二、架构
image.png

  1. ETL流程
  • E(Extraction) - 抽取的数据源可以分为结构化数据、非结构化数据、半结构化数据- 结构化数据一般采用JDBC、数据库日志方式,非|半结构化数据会监听文件变动- 抽取方式: - 全量同步、增量同步- 全量同步:全部抽取,用于初始化装载- 增量同步方式:检测数据的变动,抽取发生变动的数据
  • T(Transformation) - 数据清洗:重复、二义性、不完整、违反业务或逻辑规则的问题进行统一- 数据转换:标准化、字段数据类型、数据定义
  • L(Loading) - 导入到数据源中ODS层中

image.png

  1. 操作数据层(ODS)
  • 数据于原业务数据保持一致,可以增加字段用来进行数据管理
  • 存储的历史数据是只读的,提供业务系统查询使用
  • 业务系统对历史数据完成修改后,将update_type字段更新为UPDATE,追加回ODS中
  • 在离线数仓中,业务数据定期通过ETL流程导入到ODS中,导入方式有全量、增量
  1. 数据明细层(DWD)
  • 数据明细层对ODS层的数据进行清洗、标准化、维度退化
  • 数据仍满足3NF模型,为分析运算做准备
  1. 数据汇总层(DWS)
  • 数据汇总层的数据对数据明细层的数据,按照分析主题及进行计算汇总,存放便于分析的宽表
  • 存储模型并非3NF,而是注重数据聚合,复杂查询、处理性能更优的数仓模型
  1. 数据应用层(ADS)
  • 数据应用层也被称为数据集市
  • 存储数据分析结果,为不同业务场景提供接口,减轻数据仓库的负担
  1. 建模方法
  2. OLTP系统建模方法
  • OLTP系统建模方法
  • OLAP(在线联机分析) - 主要操作是复杂分析查询;关注数据整合,以及分析、处理性能- OLAP根据数据存储的方式不同,又分为ROLAP、MOLAP、HOLAP
  • OLAP系统分类 - ROLAP:使用关系模型构建,存储系统一般为RDBMS- MOLAP:预先计算,使用多维数组的形式保存数据结果,加快查询分析时间- HOLAP:ROLAP和MOLAP两者的集成;如低层是关系型,高层是多维矩阵型的;查询效率高于ROLAP,低于MOLAP
  1. ROLAP系统建模方法
  • 典型的数据仓库建模方法有ER模型、维度模型、Data Value、Anchor

image.pngimage.png

  • MOLAP系统建模方法 - MOLAP将数据进行预结算,并将聚合结果存储到CUBE模型中- CUBE模型以多维数组的形式,物化到存储系统中,加快后续的查询- 生成CUBE需要大量的时间、空间,维度预处理可能会数据膨胀
  • image.png
  1. 多维分析
  • 钻取 - 对维度不同层次的分析,通过改变维度的层次来变换分析的粒度- 钻取包括上卷(Roll-up)、下钻(Drill-down)
  • 切片(Slice)、切块(Dice) - 选择某个维度进行分隔成为切片- 按照多维进行的切片成为切块
  • 旋转(Pivot) - 对维度方向的互换,类似于交换坐标轴上卷(Roll-up)
  1. 最佳实践
  2. 表的分类
  • 事实表:一个现实实在的业务对象
  • image.png
  • 维度表:对应一个业务状态,代码的解释表。码表
  • image.png
  • 事务事实表:随着业务不断产生的数据,一旦产生不会再变化,如交易流水、操作日志、出库入库记录。
  • image.png
  • 周期快照事实表:随着业务周期型的推进而变化,完成间隔周期内的度量统计,如年、季度累计
  • 使用周期+状态度量的组合,如年累计订单数,年是周期,订单总数是量度。
  • image.png
  • 累积快照事实表: - 记录不确定周期的度量统计,完全覆盖一个事实的生命周期,如订单状态表- 通常有多个时间字段,用于记录生命周期中的关键时间点- 只有一条记录,针对此记录不断更新image.png
  1. 任务调度image.png
标签: 数据仓库

本文转载自: https://blog.csdn.net/weixin_52001949/article/details/135363268
版权归原作者 麻辣清汤 所有, 如有侵权,请联系我们删除。

“数据仓库入门介绍框架(附带完整项目实战)”的评论:

还没有评论