Having

本文详细介绍了数据仓库的概念,特点包括面向主题、集成、非易失性和时变性。数据仓库与数据库的主要区别在于设计目标、数据类型、数据特性和操作类型。数据仓库用于分析和决策支持,而数据库则侧重事务处理。文中还讨论了传统数据仓库的MPP架构和分布式架构,以及ETL过程。数据仓库的层次结构包括ODS、DWD、DWS和ADS,分别负责数据积存、清洗、汇总和应用。

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

数据仓库(DW)

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

主要用于组织积累的历史数据,并使用分析法(OLAP、数据分析)进行分析整理,进而辅助决策,为管理者、企业系提供数据支持,构建商业智能。

数据仓库特点:

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

2.集成:原始数据来源于不同数据源,要整合成最终数据,需要经过抽取,清洗,转换的过程

3.非易失:保存的数据是一系列历史快照,不允许被修改,只允许通过工具进行查询、分析(同步过来的数据是不允许被修改的)

4.时变性:数仓会定时接收,集成新的数据,从而反映出数据的最新变化。(业务数据每天的数据都会有变化,数据仓库每天同步一次,目的是为了保证与业务数据库相一致)

数据仓库VS数据库 

数据库面向事务设计,属于OLTP(在线事务处理)系统,主要操作是随机读写;在设计时尽量避免冗余,常采用符合范式规范来设计。

数据仓库时面向主题设计的,属于OLAP(在线分析处理)系统,主要操作时批量读写;关注数据整合,以及分析、处理性能;会有意引入冗余,采用反范式方式设计。

数据库数据仓库
面向事务分析
数据类型细节、业务综合、清洗过的数据
数据特点当前的、最新的历史的、跨时间维护
目的日常操作长期信息需求、决策支持
设计模型基于ER模型,面向应用星形/雪花模型,面向主题
操作读/写大多为读
数据规模GB到TB>=TB

数仓一般存储的是历史的,不可能实时去同步

传统数据仓库

  • 由关系型数据库组成MMP(大规模并行处理)集群 :传统数仓因为是由单机数据库发展而来的   由一个单节点,组成一个集群进行数据存储,包括运算。 

MPP&分布式架构

MPP架构

  • 传统数仓中常见的技术架构,将单机数据库节点组成集群,提升整体处理性能(集群比单机数据库的节点整体性能更,适合大规模数据的处理  )
  • 节点间为非共享架构(Share Nothing),每个节点都有独立的磁盘存储系统和内存系统(既可以存储数据,又可以进行运算)
  • 每台数据节点通过专用网络或者商业通用网络互相连接,彼此协同计算,作为整体提供服务
  • 设计上优先考虑C(一致性),其次考虑A(可用性),尽量做好P(分区容错性)(运算方式,数据管理方式比较精细,更注重锁、事务包括内外层交互的细节,从而保证数据的一致性)

架构优点

  • 运算方式精细,延迟低、吞吐低
  • 适合中等规模的结构化数据处理

架构缺点

  • 存储位置不透明,通过Hash确定数据所在的物理节点,查询任务在所有节点均会执行(没办法确定需要查询的任务在哪个节点所以所有的节点都会执行)。
  • 并行计算时,单节点的瓶颈会成为整个系统短板,容错性差(随着节点的增加,集群规模的增大,节点故障率会越来越高,瓶颈故障率会越发明显,这就是MPP数据库扩展性较差的更笨原因)
  • 分布式事务的实现会导致扩展性降低

分布式架构

  • 大数据中常见的技术架构,也成为Hadoop架构/批处理架构 (MPP架构无法单独运行局部应用,只能作为一个整体对外提供服务)
  • 各个节点实现场地自治(可以单独运行局部应用),数据在集群中全局透明共享(MPP不共享数据,但是批处理架构他数据的访问是透明的。)
  • 每台节点通过局域网或广域网相连,节点间的通信开销较大,在运算时致力减少数据移动(移动计算而不是移动数据)

MPP + 分布式架构

  • 数据存储采用分布式架构中的公共存储,提高分区容错性
  • 上层架构采用MPP,减少运算延迟

架构

ETL --> ODS(操作数据源层) -->CDM(公共维度模型层)1.DWD (数据明细层)接受ODS层的数据,最后拿到的是统一规范后的一些数据 这些数据主要还是为数据分析服务,数据明细层对数据清洗完后还不能直接用于数据分析的任务  2. DWS(数据汇总层) 整个CDM层为数据分析提供服务的 -->ADS(数据应用层)报表决策,并发查询,搜索检索。

ETL --Extract-Transform-Load

数据抽取(Extract)

  • 抽取的数据源可以分为结构化数据、非结构化数据、半结构划数据
  • 结构化数据一般采用JDBC、数据库日志方式,非|半结构化数据会监听文件变动(数据库为了保证数据的可靠性,在对数据进行操作的时候他都会先把这些记录写到日志里,对这种WAL日志的一个采集对数据库的影响是极小的。对采集到的数据库日志需要经过解析之后,才能获取到数据)

抽取方式

  • 数据抽取方式有全量同步、增量同步两种方式
  • 全量同步会将全部数据进行抽取,一般用于初始化数据装载
  • 增量同步方式会检测数据的变动,抽取发生变动的数据,一般用于数据更新

数据转换(Transformation)

  • 数据转换要经历数据清洗和转换两个阶段

        --数据清洗主要是对出现的重复性,二义性、不完整、违反业务或逻辑规则等问题的数据进              行统一的处理

        --数据转换主要是对数据进行标准化处理,进行字段、数据类型、数据定义的转换

  •  结构化数据在转换过程中的逻辑较为简单,非|半结构化数据的转换会较为复杂

数据加载(Loading)

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

操作数据层(ODS)

在数据仓库中完成数据积存的一个任务,既然要做数据积存的话意味着它ODS层保存的数据是必须与原业务数据保持一致的且不允许修改。保持一致 --ODS层的数据是原始数据的一个扩充集。

  • 数据与原业务数据保持一致,可以增加字段用来进行数据管理
  • 存储的历史数据是只读的,提供业务系统查询使用
  • 业务系统对历史数据完成修改后,将update_type字段更新为UPDATE,追加回ODS中
  • 在离线数仓中,业务数据定期通过ETL流程导入到ODS中,导入方式会有全量、增量两种

        -- 全量导入:数据第一次导入时,选择此种方式

        --增量导入: 数据非第一次导入,每次只需要导入新增,更改的数据,建议使用外连接&全覆                               盖方式(每天新增的数据可以直接追加到ODS里面,)

数据明细层(DWD)

  • 数据明细层对ODS层的数据进行清洗、标准化、维度退化(时间、分类、地域)(维度是对数据的组织方式,维度也可以是对商品数据的组织)
  • 数据仍然满足3NF模型,为分析运算做准备

数据汇总层(DWS)

  • 数据汇总层的数据对数据明细层的数据,按照分析主题进行计算汇总,存放便于分析的宽表

  • 存储模型并非3NF,而是注重数据的聚合,复杂查询,处理性能能优的数仓模型,如维度模型

数据应用层(ADS)

  • 数据应用层也被称为数据集市
  • 存储数据分析结果,为不同业务场景提供接口,减轻数据仓库的负担   

       -- 数据仓库擅长数据分析,直接开放业务查询接口,会加重其负担

       

--------听课笔记

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值