一、诞生背景
- 企业数据分析需要:各个部门自己建立独立的数据抽取系统,导致数据不一致
- 概述
- 数据仓库是一个面向主题的、集成、非易失的且随时间变化的数据集合
- 主要用于组织积累的历史数据,并使用分析方法(OLAP、数据分析)进行分析整理辅助决策,为管理者、企业系统提供数据支持,构建商业只能。
- 特点
- 面向主题:根据主题将原始数据集合在一起
- 集成:原始数据来源不同数据源,需要经过抽取、清洗、转换形成最终数据
- 非易失:保存的数据是一系列历史快照,不允许被修改,只允许通过工具进行查询。
- 时变性:数仓会定期接受,集成新的数据,从而反映出数据的最新变化(时间戳)
- 数据仓库VS数据库
- 数据库面向事务设计,属于OLTP(在线事务处理)系统,主要操作是随机读写;在设计是尽量避免冗余,常采用符合范式规范来设计。
- 数据仓库是面向主题设计的,属于OLAP(在线分析处理)系统,主要操作是批量读写;关注数据整合,以及分析、处理性能;会有意引入冗余,采用反范式设计
- 技术实现
- 传统数据仓库
- 由关系型数据库组成MPP(大规模并行处理)集群。
- 大数据数据仓库
- 利用大数据天然的扩展性,完成海量数据的存放
- 将SQL转换为大数据计算引擎任务,完成数据分析
- MPP架构
- 传统数仓中常见的技术架构,将单机数据库节点组成集群,提升整体处理性能
- 节点间为非共享架构,每个节点都有独立的磁盘存储系统和内存系统
- 每台数据节点通过专用网络或商业通用网络互相连接,彼此协同计算,作为整体提供服务
- 设计上优先考虑C(一致性),其次考虑A(可用性),尽量做好P(分区容错性)
- 架构优点
- 运算方式精细,延迟低、吞吐低
- 适合中等规模的结构化数据处理
二、架构
- ETL流程
- E(Extraction)
- 抽取的数据源可以分为结构化数据、非结构化数据、半结构化数据
- 结构化数据一般采用JDBC、数据库日志方式,非|半结构化数据会监听文件变动
- 抽取方式:
- 全量同步、增量同步
- 全量同步:全部抽取,用于初始化装载
- 增量同步方式:检测数据的变动,抽取发生变动的数据
- T(Transformation)
- 数据清洗:重复、二义性、不完整、违反业务或逻辑规则的问题进行统一
- 数据转换:标准化、字段数据类型、数据定义
- L(Loading)
- 导入到数据源中ODS层中
- 操作数据层(ODS)
- 数据于原业务数据保持一致,可以增加字段用来进行数据管理
- 存储的历史数据是只读的,提供业务系统查询使用
- 业务系统对历史数据完成修改后,将update_type字段更新为UPDATE,追加回ODS中
- 在离线数仓中,业务数据定期通过ETL流程导入到ODS中,导入方式有全量、增量
- 数据明细层(DWD)
- 数据明细层对ODS层的数据进行清洗、标准化、维度退化
- 数据仍满足3NF模型,为分析运算做准备
- 数据汇总层(DWS)
- 数据汇总层的数据对数据明细层的数据,按照分析主题及进行计算汇总,存放便于分析的宽表
- 存储模型并非3NF,而是注重数据聚合,复杂查询、处理性能更优的数仓模型
- 数据应用层(ADS)
- 数据应用层也被称为数据集市
- 存储数据分析结果,为不同业务场景提供接口,减轻数据仓库的负担
-
建模方法
-
OLTP系统建模方法文章来源:https://www.toymoban.com/news/detail-801355.html
- OLTP系统建模方法
- OLAP(在线联机分析)
- 主要操作是复杂分析查询;关注数据整合,以及分析、处理性能
- OLAP根据数据存储的方式不同,又分为ROLAP、MOLAP、HOLAP
- OLAP系统分类
- ROLAP:使用关系模型构建,存储系统一般为RDBMS
- MOLAP:预先计算,使用多维数组的形式保存数据结果,加快查询分析时间
- HOLAP:ROLAP和MOLAP两者的集成;如低层是关系型,高层是多维矩阵型的;查询效率高于ROLAP,低于MOLAP
- ROLAP系统建模方法
- 典型的数据仓库建模方法有ER模型、维度模型、Data Value、Anchor
文章来源地址https://www.toymoban.com/news/detail-801355.html
- MOLAP系统建模方法
- MOLAP将数据进行预结算,并将聚合结果存储到CUBE模型中
- CUBE模型以多维数组的形式,物化到存储系统中,加快后续的查询
- 生成CUBE需要大量的时间、空间,维度预处理可能会数据膨胀
- 多维分析
- 钻取
- 对维度不同层次的分析,通过改变维度的层次来变换分析的粒度
- 钻取包括上卷(Roll-up)、下钻(Drill-down)
- 切片(Slice)、切块(Dice)
- 选择某个维度进行分隔成为切片
- 按照多维进行的切片成为切块
- 旋转(Pivot)
- 对维度方向的互换,类似于交换坐标轴上卷(Roll-up)
- 最佳实践
- 表的分类
- 事实表:一个现实实在的业务对象
- 维度表:对应一个业务状态,代码的解释表。码表
- 事务事实表:随着业务不断产生的数据,一旦产生不会再变化,如交易流水、操作日志、出库入库记录。
- 周期快照事实表:随着业务周期型的推进而变化,完成间隔周期内的度量统计,如年、季度累计
- 使用周期+状态度量的组合,如年累计订单数,年是周期,订单总数是量度。
- 累积快照事实表:
- 记录不确定周期的度量统计,完全覆盖一个事实的生命周期,如订单状态表
- 通常有多个时间字段,用于记录生命周期中的关键时间点
- 只有一条记录,针对此记录不断更新
- 任务调度
到了这里,关于数据仓库入门介绍框架(附带完整项目实战)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!