当前位置: 首页 > news >正文

数据仓库分层经典架构:ODS、DWD、DWS

ODS、DWD、DWS 是数据仓库分层架构中的经典模型,它们代表了数据从原始状态到最终可供分析使用的不同处理阶段。


1. ODS (Operational Data Store) - 操作数据存储层

  • 全称Operational Data Store

  • 含义: 这是数据仓库的第一层,也常被称为“准备区”或“贴源层”。它的核心职责是原封不动地或经过最少量清洗后,从各个业务系统(如数据库、日志文件、API等)中接入原始数据

  • 主要特点:

    • 数据同步: 负责从源系统实时或批量同步数据。
    • 保持原始: 最大程度地保留了与源系统一致的数据结构和内容,方便数据溯源和问题排查。
    • 数据缓冲: 作为业务系统和数据仓库分析系统之间的缓冲,减少对业务系统的直接访问压力。

    从业务数据库、用户行为日志采集到消息队列(Kafka)的数据,就构成了ODS层。


2. DWD (Data Warehouse Detail) - 明细数据层

  • 全称Data Warehouse Detail

  • 含义: 这是数据仓库的核心层之一。它会对ODS层的数据进行清洗、规范化、去重和关联等一系列处理,形成面向特定业务主题的、干净、一致的明细事实表和维度表。

  • 主要特点:

    • 数据清洗: 处理空值、异常值、格式不一致等问题。
    • 维度统一: 将不同来源的同一维度(如“用户”、“商品”)进行统一和标准化。
    • 结构化: 按照事实和维度的模型组织数据,比如将用户行为日志解析成一张包含用户ID、商品ID、事件时间等字段的明细表。
    • 保持粒度: 通常保留了业务过程中最细粒度的数据,是后续数据分析和聚合的基础。

    Flink消费ODS层数据,进行ETL加工,并关联维表信息,产出的数据就属于DWD层。


3. DWS (Data Warehouse Service) - 数据仓库服务层

  • 全称Data Warehouse Service,有时也称 Data Warehouse Summary (汇总数据层)。

  • 含义: 这一层是基于DWD层的数据,按照特定的分析主题或业务域进行轻度或中度的聚合与汇总,形成宽表或聚合指标表。

  • 主要特点:

    • 数据聚合: 对DWD层的明细数据进行聚合运算(如SUM、COUNT、AVG),生成汇总指标。例如,按天、按用户聚合计算其总订单数、总消费金额等。
    • 构建宽表: 将多个DWD层的表关联在一起,形成一个包含多个维度和指标的“宽表”,方便分析师直接查询。
    • 面向主题: 围绕一个业务主题(如流量、订单、用户等)组织数据,服务于特定的分析需求。
    • 提升效率: 通过预计算,大大减少了上层应用(如BI报表)的复杂查询和计算量,提升了查询性能。

    从DWD层到应用层之间,可以增加一个DWS层,因为下层的聚合逻辑往往是相同的,这正是DWS层的核心价值所在。


总结

可以这样理解它们之间的关系:

  • ODS原始数据的“搬运工”,把各个源头的数据汇集到一起。
  • DWD数据的“清洗和整理工”,把杂乱的原始数据整理成干净、规范的明细记录。
  • DWS数据的“预加工厨师”,根据常见的“菜单”(分析需求),把明细数据提前做成半成品(汇总指标),方便上层快速取用。

这个分层架构使得数据处理流程更加清晰、可维护,并且能够更好地复用中间层的数据,提高整体数据开发的效率。

http://www.dtcms.com/a/283816.html

相关文章:

  • 安卓 GoFasting(间歇性断食)v1.03.35.0708
  • python-字典、集合、序列切片、字符串操作(笔记)
  • cdh6.3.2的hive使用apache paimon格式只能创建不能写报错的问题
  • Thymeleaf 表单绑定与验证详解
  • Rabbitmq direct 模式与 finout区别
  • Apache Ignite 的 Pages Writes Throttling(页面写入节流)
  • C++ - 仿 RabbitMQ 实现消息队列--C++11 异步操作实现线程池
  • InfluxDB 3与Apache Parquet:打造高性能时序数据存储与分析解决方案
  • Apache DolphinScheduler介绍与部署
  • UE5 Nanite使用
  • 下班倒计时
  • 链路聚合实训
  • 管家婆价格折扣跟踪管理:查询、新增、修改、删除
  • JAVA中的Map集合
  • 【01背包】P1466 [USACO2.2] 集合 Subset Sums
  • 华为云容器产品分析
  • HTML表格基础
  • 【Linux】第一个小程序—进度条
  • HikariCP数据库连接池高性能优化实战指南
  • Spring Boot 参数校验:@Valid 与 @Validated
  • 线上协同办公时代:以开源AI大模型等工具培养网感,拥抱职业变革
  • 【前沿技术动态】【AI总结】Spring Boot 4.0 预览版深度解析:云原生时代的新里程碑
  • Fair-code介绍(Fair code)(一套新型软件模型:旨在“开源”“商业可持续性”中找到平衡)
  • Spring Boot Jackson 序列化常用配置详解
  • redis速记
  • Jenkins Git Parameter 分支不显示前缀origin/或repo/
  • 【37】MFC入门到精通——MFC中 CString 数字字符串 转 WORD ( CString, WORD/int 互转)
  • 我爱学算法之—— 前缀和(下)
  • 破局 Meme 币永续:跨界融合 Ormer + AI + 舆情监控 的颠覆性框架
  • 日志采集——ZeroMQ的配置