了解ODS、DW和DM概念

本文详细解析了操作性数据存储(ODS)、数据仓库(DW)和数据集市(DM)的概念及其在企业数据架构中的作用。阐述了ODS作为实时数据源,与历史数据存储的数据仓库的区别,以及数据集市如何服务于特定部门或主题的数据需求。同时,讨论了不同数据架构方案的优缺点,如ODS与数据仓库并存、直接从源头到ODS等,提供了阿里巴巴数据部门的实际案例。

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

在和数据架构师聊天的时候,提到了ODS.当时对这个概念并不是很了解,需要深入学习一下

一.ODS、DW和DM概念

在这里插入图片描述
ODS: 操作性数据;
DW: 数据仓库;
DM: 数据集市;

ODS的数据是"实时值",而数据仓库的数据却是"历史值",一般ODS中储存的数据不超过一个月,而数据仓库为10年或更多.
DSS(decision-support system)决策支持系统:用于支持管理决策的系统。通常,DSS包括以启发的方式对大量的数据单元进行的分析,通常不涉及数据更新。

二.数据仓库和ODS并存方案
1、业务数据 - ODS - 数据仓库

在这里插入图片描述
优点:ODS的数据与数据仓库的数据高度统一;开发成本低,至少开发一次并应用到ODS即可;可见ODS是发挥承上启下的作用,调研阿里巴巴的数据部门也是这么实现的。

缺点:数据仓库需要的所有数据都需要走ODS,ODS的灵活性必然受到影响,甚至不利于扩展、系统的灵活性差

2、OB - ODS

优点:所有数据都归结到ODS,结构简单。一般的初创数据分析团队都是类似的结构

缺点:长期数据决策分析能力差,软硬件成本高,模块划分不清晰,通用性差

3、数据仓库和ODS并行

在这里插入图片描述

4.ODS、DW、DM协作层次图

在这里插入图片描述

5.通过一个简单例子看这几层的协作关系

在这里插入图片描述

6.ODS到DW的集成示例

在这里插入图片描述
参考:https://www.cnblogs.com/kuang17/p/7091941.html
参考:https://www.jianshu.com/p/72e395d8cb33

### 数据仓库分层架构概述 #### ODS (操作型数据存储) ODS 是一种介于源系统数据仓库之间的临时区域,用于接收来自多个源系统的原始交易数据。这些数据几乎不做任何转换处理就被加载进来,保持了最接近源系统的状态。由于其主要目的是为了快速访问最新的业务活动信息,因此通常只保留较短时间内的记录,一般不会超过一个月的时间跨度[^3]。 ```sql INSERT INTO ods_sales_data ( SELECT * FROM source_system.sales WHERE transaction_date >= DATE_SUB(CURRENT_DATE(), INTERVAL 1 MONTH); ) ``` #### DW (数据仓库) 数据仓库是从 ODS 获取经过清洗、转换后的高质量历史数据,并依据特定的主题域构建多维模型来支持复杂的查询分析需求。这里的数据具有较高的稳定性一致性,可以追溯多年的历史变化趋势,适合长期保存并供企业内部各部门共享使用。与 ODS 不同的是,DW 中的数据往往会被定期归档而不是简单删除,从而确保能够满足长时间范围内的数据分析要求[^1]。 ```sql CREATE TABLE dw_customer_transactions AS WITH cleaned_ods_data AS ( SELECT DISTINCT customer_id, product_id, SUM(amount) as total_amount FROM ods_sales_data GROUP BY customer_id, product_id ) SELECT c.customer_name, p.product_description, ct.total_amount FROM customers c JOIN products p ON c.id = p.customer_id JOIN cleaned_ods_data ct ON c.id = ct.customer_id AND p.id = ct.product_id; ``` #### DM (数据集市) DM 则专注于某一具体的业务领域或部门,基于 DW 提取出来的高度聚合的信息创建专门的应用程序视图。它更贴近最终用户的实际应用场景,提供了更加直观易懂的结果展示形式,比如报表、仪表盘等。通过这种方式,管理层可以直接获取所需的关键绩效指标(KPIs),辅助日常运营管理战略规划决策过程[^2]。 ```sql CREATE VIEW dm_monthly_sales_report AS SELECT EXTRACT(YEAR_MONTH FROM sale_date) AS year_month, region, SUM(sales_value) AS monthly_sales FROM dw_customer_transactions GROUP BY year_month, region; ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Cocktail_py

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值