数据仓库入门学习

本文介绍了数据仓库的基本概念、特点,包括面向主题、集成性、非易失性和时变性,并对比了数据仓库与数据库、数据集市的区别。此外,还阐述了OLTP和OLAP的区别,以及传统数据仓库和大数据数据仓库的差异。文章详细描述了数据仓库的分层架构,包括ODS、DWD、DWS和ADS,并讨论了数据仓库建模方法,如ROLAP、MOLAP和维度建模。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


声明:本文章根据B站数仓课程笔记整理而来。

数据仓库

数据仓库概念

数据仓库(Data Warehouse,简称数仓、DW),是一个用于存储、分析、报告的数据系统。数据仓库的目的是构建面向分析的集成化数据环境,为企业提供决策支持(Decision Support)。
数仓本身并不生产任何数据,其数据源与不同的外部系统;
同时数仓本身也不需要消费任何数据,其结果开放给外部应用使用。
在这里插入图片描述

数据仓库的特点

  • **面向主题:**为数据分析提供服务,根据主题将原始数据集合在一起;

主题是一个抽象概念,是较高层次上企业信息中的数据综合、归类并进行分析利用的抽象。在逻辑意义上,它是对应企业中某一宏观分析领域所涉及的分析对象。
比如一个保险行业数据仓库,所涉及到的主题有:
在这里插入图片描述

  • **集成性:**原始数据可能有多个数据源,即相关数据通常会分布在多个凑操作系统中,碧玺分散、独立、异构,要整合成最终数据,需要经过抽取、清晰、转换的过程。这一步是数仓建设中最关键、最负责的一步,要完成的所有工作有:
    1、要统一元数据中所有矛盾之处,比如字段的同名异义、异名同义、单位不统一、字长不统一等;
    2、进行数据综合和计算。数仓中的数据综合工作可以再原有数据库抽取数据时生成,但许多是再数仓内部生成的,即进入数仓以后进行综合生成的。
    下图表示数仓数据的集成性:
    在这里插入图片描述

  • **非易失性:**保存的数据是一系列历史快照,不允许被修改,只允许通过工具进行查询、分析;

  • **时变性:**数仓会定期接收、集成新的数据,从而反映出数据的最新变化,以适应决策的需要。从这个角度来讲,数仓建设是一个项目,更是一个过程。

数仓时变性的表现:

  1. 数据仓库的数据时限一般要远远长于操作型数据的数据时限;
  2. 操作型系统存储的是当前数据,而数据仓库中的数据是历史数据;
  3. 数据仓库中的数据是按照时间顺序追加的,它们都带有时间属性。

数据仓库、数据库、数据集市

OLTP、OLAP的区别

OLTP:
操作型处理,叫联机事务处理OLTP(On-Line Transaction Processing),主要目标是做数据处理,他是针对具体业务在数据库联机的日常操作,通常对少数据进行查询、修改。用户较为关心操作的响应时间、数据的安全性、完整性和并发支持的用户数等问题。
在设计的时候尽量避免冗余,通常采用符合范式规范来设计
传统的关系型数据库(Mysql、Oracle)系统就是OLTP系统。

OLAP:
分析型处理,叫联机分析处理OLAP(On-Line Analytical Processing),主要目标是做数据分析。一般针对某些主题的历史数据进行复杂的多位分析,支持管理决策。
关注数据整合、分析、处理性能;会有意引入冗余,采用反范式方式设计。
数据仓库就是OLAP系统,主要用于数据分析

数据库、数据仓库的区别

数据库和数据仓库的区别实际就是OLTP和OLAP的区别:
在这里插入图片描述

数据仓库、数据集市区别

**数据仓库是面向整个集团组织的数据,数据集市(Data Marts)是面向单个部门使用的。**可以认为数据集市是数据仓库的子集。数据集市通常只设计一个主题领域,例如市场营销或销售。它们通常较小且更具体,所以更易于管理和维护,并且具有更灵活的结构。
在这里插入图片描述
如上图所示:
各种操作型系统数据包括文件在内的其他数据作为数据源,经过ETL(抽取转换加载)填充到数据仓库中;
数据仓库中有不同主题数据,数据集市则根据部门特点面向指定主题,比如Purchasing(采购)、Sales(销售)、Inventory(库存);
用户可以基于主体数据开展各种应用:数据分析、数据报表、数据挖掘等。

传统数据仓库和大数据数据仓库

传统数据仓库

由关系型数据库组成MPP(Massively Parallel Processing大规模并行处理)集群。

在这里插入图片描述

MPP(Massively Parallel Processing大规模并行计算)

  1. 传统数仓中常见的技术架构,将单机数据库节点组成集群,提升整体处理性能;
  2. 节点间为非共享架构(Share Nothing),每个节点都有独立的磁盘存储系统和内存系统;
  3. 每台节点通过网络相互连接,彼此通信协同计算,为整体提供服务;
  4. 设计上优先考虑C(consistency一致性)其次A(availability可用性)最后P(partition分区容错)

架构优点:

  1. 运算方式精细,延迟低;
  2. 适合中等规模的结构化数据处理
    在这里插入图片描述

架构缺点

  1. 存储位置不透明,通过Hash确定数据所在的物理节点,查询任务在所有节点均会执行;
  2. 并行计算,单节点瓶颈会成为单个系统短板,容错性差;
  3. 分布式事务的实现会导致扩展性降低。
    在这里插入图片描述

大数据数据仓库

  • 利用大数据天然的扩展性,完成海量数据的存放;
  • 将SQL抓换为大数据计算引擎任务,完成数据分析。

在这里插入图片描述
分布式架构

  • 大数据中常用的技术架构,也成为Hadoop架构;
  • 各节点实现自治(可以单独运行局部应用),数据在集群中全局透明共享;
  • 每台节点通过局域网或广域网相连,节点间的通信开销较大,在运算时致力减少数据移动;
  • 有限考虑P(分区容错性)其次A(可用性),最后在考虑C(一致性)
    在这里插入图片描述
    架构优点:
  • 解决了单点故障问题,会将出错任务调度到其他副本节点;
  • 吞吐量大;
  • 扩展性极强,适合处理非结构化、半结构化数据
  • 需要将中间结果进行存储,且数据移动开销较大(map、reduce阶段,频繁的IO操作)

传统数仓和大数据数仓的常见产品:
在这里插入图片描述

数据仓库的架构

下图为数据仓库的层级架构(阿里为例):
在这里插入图片描述
概念讲解
** ETL – Extract-Transform-Load**

  • 将数据从来源端经过抽取(extract)、交互转换(transform)、加载(load)至目的端的过程;
  • 构建数据仓库的重要一环,用户从数据源抽取出所需的数据,经过数据清洗,最终按照预先定义好的数据仓库模型,将数据加载到数据仓库中去;
  • ETL 规则的设计和实施约占整个数据仓库搭建工作量的 60%~80%
    在这里插入图片描述
    ** 数据抽取(Extraction):**
  • 抽取的数据源可以分为结构化数据、非结构化数据、半结构化数据;
  • 结构化数据一般采用JDBC、数据库日志方式,非|半结构化数据会监听文件变动

抽取方式:

  • 数据抽取方式有全量同步、增量同步两种方式;
  • 全量同步会将全部数据进行抽取,一般用于初始化数据装载;
  • 增量同步方式会检测数据的变动,抽取发生变动的数据,一般用于数据更新
    在这里插入图片描述
    数据转换(Transformation):
  • 数据转换要经历数据清洗和转换两个阶段:
    1、数据清洗主要是对出现的重复、二义性、不完整、违反业务或逻辑规则等问题的数据进行统一的处理;
    2、数据转换主要是对数据进行标准化处理,进行字段、数据类型、数据定义的转换
  • 结构化数据在转换过程中的逻辑较为简单,非 | 半结构化数据的转换会较为复杂。

数据加载( Loading ):

  • 将最后处理完的数据导入到对应的目标源里。

常见的ETL工具:
在这里插入图片描述

数据操作层ODS(Operational DATA Store)

  • 数据与原业务数据保持一致,可以增加字段用来进行数据管理;
  • 存储的历史数据是只读的,提供业务系统查询使用;
  • 业务系统对历史数据完成修改后,将update_type字段更新为UPDATE,追加回ODS中;
    在这里插入图片描述
  • 在离线数仓中,业务数据定期通过ETL流程导入到ODS中,导入方式有全量、增量两种:
    1、全量导入:数据第一次导入时,选择此种方式;
    2、增量导入:数据非第一次导入,每次只需要导入新增、更改的数据,建议使用外连接&全覆盖方式。

数据明细层DWD(DATA Warehouse Detail)

  • 数据明细层对ODS层的数据进行清洗、标准化、维度退化(时间、分类、地域);
  • 此时数据不严格满足3NF模型,为分析运算做准备。
    在这里插入图片描述
    在这里插入图片描述

数据汇总层DWS(DATA Warehouse Summary)

  • 数据汇总层的数据对数据明细层的数据,按照分析主题进行计算汇总,存放便于分析的宽表;
  • 存储模型并非3NF,而是注重数据聚合,复杂查询、处理性能更优的数仓模型,如维度模型

在这里插入图片描述

数据应用层ADS(Application DATA Store)

  • 数据应用层也被称为数据集市;
  • 存储数据分析结果,为不同业务场景提供接口,减轻数据仓库的负担
    数据仓库擅长数据分析,直接开放业务查询接口,会加重其负担
    在这里插入图片描述

数据仓库分层的原因

**分层的主要原因是在管理数据的时候,能对数据有一个更加清晰的掌控,**其主要原因有;

  • 清晰数据结构:
    每一个数据分层都有它的作用域,在使用表的时候能更方便地定位和理解。
  • 数据血缘追踪:
    我们最终给业务呈现的是一个能直接使用业务表,但是它的来源有很多,如果有一张来源表出问题了,我们希望能够快速准确地定位到问题,并清楚它的危害范围。
  • 减少重复开发:
    规范数据分层,开发一些通用的中间层数据,能够减少极大的重复计算。
  • 把复杂问题简单化:
    将一个复杂的任务分解成多个步骤来完成,每一层只处理单一的步骤,比较简单和容易理解。而且便于维护数据的准确性,当数据出现问题之后,可以不用修复所有的数据,只需要从有问题的步骤开始修复。
  • 屏蔽原始数据的异常:
    屏蔽业务的影响,不必改一次业务就需要重新接入数据。

建模方法

OLTP系统建模方法

  • OLTP(在线事务处理)系统中,主要操作是随机读写;
  • 为了保证数据一致性、减少冗余,常使用关系模型;
  • 在关系模型中,使用三范式规则来减少冗余。
    在这里插入图片描述

OLAP系统建模方法

  • OLAP系统,主要操作是复杂分析查询;关注数据整合,以及分析、处理性能;
  • OLAP根据数据存储的方式不同,又分为ROLAP、MOLAP、HOLAP
  • ROLAP(Relation OLAP,关系型 OLAP):使用关系模型构建,存储系统一般为RDBMS;
  • MOLAP(Multidimensional OLAP,多维型 OLAP):预先聚合计算,使用多维数组的形式保存数据结果,加快查询分析时间;
  • HOLAP(Hybrid OLAP,混合架构的 OLAP):ROLAP 和 MOLAP 两者的集成;如低层是关系型的,高层是多维矩阵型的;查询效率高于ROLAP,低于MOLAP

ROLAP系统建模方法:

  • 典型的数据仓库建模方法有ER模型、维度模型、Data Value、Anchor
    在这里插入图片描述
    维度模型:
  • 维度模型中,表被分为维度表、事实表,维度是对事实的一种组织;
  • 维度一般包含分类、时间、地域等

在这里插入图片描述

  • 维度模型分为星型模型、雪花模型、星座模型;
  • 维度模型建立后,方便对数据进行多维分析

星型模型:

  • 标准的星型模型,维度只有一层,分析性能最优

在这里插入图片描述
** 雪花模型:**

  • 雪花模型具有多层维度,比较接近三范式设计,较为灵活

在这里插入图片描述
星座模型:

  • 星座模型基于多个事实表,事实表之间会共享一些维度表;
  • 是大型数据仓库中的常态,是业务增长的结果,与模型设计无关
    在这里插入图片描述
    宽表模型:
    什么是宽表模型?
  • 宽表模型是维度模型的衍生,适合join性能不佳的数据仓库产品;
  • 宽表模型将维度冗余到事实表中,形成宽表,以此减少join操作

在这里插入图片描述

MOLAP系统建模方法

  • MOLAP将数据进行预结算,并将聚合结果存储到CUBE模型中;
  • CUBE模型以多维数组的形式,物化到存储系统中,加快后续的查询;
  • 生成CUBE需要大量的时间、空间,维度预处理可能会导致数据膨胀。
    在这里插入图片描述
    常见MOLAP产品:
  • Kylin
  • Druid

OLAP多维分析

  • OLAP主要操作是复杂查询,可以多表关联,使用COUNT、SUM、AVG等聚合函数;
  • OLAP对复杂查询操作做了直观的定义,包括钻取、切片、切块、旋转

在这里插入图片描述
钻取:

  • 对维度不同层次的分析,通过改变维度的层次来变换分析的粒度;
  • 钻取包括上卷(Roll-up)、下钻(Drill-down);
  • 上卷(Roll-up),也称为向上钻取,指从低层次到高层次的切换;
  • 下钻(Drill-down),指从高层次到低层次的切换
    在这里插入图片描述
    切片(Slice)切块(Dice)
  • 选择某个维度进行分割称为切片;
  • 按照多维进行的切片称为切块
    在这里插入图片描述
    旋转(Pivot)
  • 对维度方向的互换,类似于交换坐标轴上卷(Roll-up)
    在这里插入图片描述
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值