数仓各层级设计总结

一、ODS

1.1 ods层的定义以及职责

ODS 全称为 Operational Data Store,是操作型数据存储层。它直接从源系统抽取数据,几乎不做任何加工,保留了数据的原始格式和内容。

主要职责:

  • 实现业务系统数据到数据仓库的同步,为后续的数据处理和分析提供数据来源。确保数据仓库中的数据与业务系统中的数据保持同步更新。

  • 保留了数据的原始状态,方便进行数据追溯和审计。当出现数据问题或需要审查数据的变更历史时,可以通过 ODS 层快速定位问题源头和数据的变化轨迹。

  • 将数据抽取到 ODS 层后,可以减少业务系统的查询压力,提高业务系统的性能。业务系统可以专注于业务处理,而数据查询和分析任务则由数据仓库来承担。

1.2 数据增量同步、全量同步的选择依据?

主要根据大小来判断,对于一些不大的表,可以选择全量同步,对于大表,可以选择增量同步。

1.3 数据漂移怎么解决?

见《数据采集与同步》

1.4 数据质量怎么保障?

  1. 全量表必须配置唯一性字段标识;

  2. 对分区空数据进行监控;

  3. 对枚举类型字段,进行枚举值变化和分布监控;

  4. ods表数据量级和记录数做环比监控;

  5. ods全表都必须要有注释;

二、DWD

2.1 DWD层在数仓体系中的定位和作用

  1. 定位

    • 承上启下:DWD 层处于数据仓库 ods-dwd-dws-ads 架构的中间位置,承接来自 ODS 层(操作数据层的原始数据,经过处理后为上层的 DWS 层(数据服务层)和 ADS 层(数据应用层)提供高质量的数据原料。
    • 隔离业务与数据仓库:是业务层和数据仓库的隔离层,保持和 ODS 层一样的数据粒度,使数据仓库的后续处理与业务系统的原始数据相对隔离,减少业务系统变化对数据仓库的直接影响。
  2. 作用:

    • 数据清洗与规范:对ODS 层数据进行清洗和规范化操作,去除空数据、脏数据、离群值等,提高数据质量。
    • 数据整合统一:将来自不同源系统、格式和语义各异的数据进行整合和统一,按照业务逻辑梳理和组织,转化为以业务过程为核心的明细事实表。
    • 保留业务细节:遵循明细粒度事实层的设计理念,以业务过程为驱动构建事实表,确保每一行数据代表一个不可再分的业务原子事件,能完整保留业务细节,为深入分析业务提供基础。
    • 提高查询性能:依据企业的数据使用场景和分析需求,对重要的维度属性进行适当冗余形成宽表结构,减少数据关联的复杂性,提高数据查询和分析的效率,使数据分析人员能更便捷地获取所需数据。
    • 支持多维分析:为 OLAP 工具、报表生成、数据挖掘、实时分析等提供基础数据支持。可以从多个维度对数据进行分析,满足不同的业务需求。

2.2 与ODS层相比,DWD层的数据有什么特点?

  1. 数据处理深度

    • ODS 层:数据基本保持从源系统获取时的原始状态,仅可能进行简单的清洗,如去除明显的乱码等,主要是为了实现数据的快速接入和暂存。
    • DWD 层:对 ODS 层数据进行了全面的抽取、清洗、转换等处理。除了清理脏数据、空值等,还会进行数据格式统一、编码转换、数据标准化等操作,并且可能根据业务规则对数据进行衍生计算。
  2. 数据一致性

    • ODS 层:由于数据来自不同的源系统,各系统之间的数据标准和规范不同,所以数据一致性较差,可能存在同一数据在不同系统中表述不一致、数据关联关系不清晰等问题。
    • DWD 层:通过数据整合和处理,会对数据进行统一的规范和约束,消除了部分数据不一致的问题,使数据在一定程度上具有更好的一致性,便于后续的分析和应用。
  3. 数据应用方向

    • ODS 层:主要用于满足源系统数据的临时存储需求,为业务系统的实时查询和监控提供支持,一般不直接用于复杂的数据分析。
    • DWD 层:为上层的数据服务层(DWS层)和数据应用层(ADS层)提供高质量的明细数据基础,是进行多维分析、报表生成、数据挖掘、机器学习等数据处理和分析操作的重要数据来源。
  4. 数据存储与管理

    • ODS 层:通常数据存储时间较短,主要是为了满足实时或短期的业务需求,对数据的存储格式和管理要求相对较低,一般以简单的文件或原始数据库表形式存储。
    • DWD 层:数据存储时间较长,通常为几个月到几年,以便为长期的数据分析和挖掘提供数据支持。在存储方面,通常会采用分布式数据仓库或关系型数据库等,并会进行数据分区、索引等优化操作,以提高数据的存储和查询效率。
  5. 数据模型与结构

    • ODS 层:数据模型通常与源系统的数据模型保持一致,以保留源数据的完整性和原始结构,一般不会对数据模型进行大规模的调整和优化。
    • DWD 层:会根据业务需求和数据分析的要求,对数据进行建模,通常采用星型模型或雪花模型等维度建模方法,将数据组织成更适合分析的结构,可能会对维度进行退化处理,将常用的维度属性冗余到事实表中,以减少查询时的表关联操作。
相关推荐
那我掉的头发算什么3 小时前
【数据库】navicat的下载以及数据库约束
android·数据库·数据仓库·sql·mysql·数据库开发·数据库架构
励志成为糕手1 天前
Hive数据仓库:架构原理与实践指南
大数据·数据仓库·hive·1024程序员节·hql
半梦半醒*2 天前
ELK1——elasticsearch
linux·运维·数据仓库·elasticsearch·centos
通往曙光的路上2 天前
day17_cookie_webstorage
数据仓库·hive·hadoop
呆呆小金人3 天前
SQL入门:正则表达式-高效文本匹配全攻略
大数据·数据库·数据仓库·sql·数据库开发·etl·etl工程师
想ai抽3 天前
大数据计算引擎-从源码看Spark AQE对于倾斜的处理
大数据·数据仓库·spark
呆呆小金人4 天前
SQL入门:别名使用完全指南
大数据·数据库·数据仓库·sql·数据库开发·etl·etl工程师
想ai抽4 天前
Spark的shuffle类型与对比
大数据·数据仓库·spark
派可数据BI可视化5 天前
商业智能BI 浅谈数据孤岛和数据分析的发展
大数据·数据库·数据仓库·信息可视化·数据挖掘·数据分析