数据仓库ODS、DW和DM概念区分

本文深入解析数据中心架构,包括ODS(操作性数据)、DW(数据仓库)和DM(数据集市)的概念及其协作关系,通过实例展示如何从ODS集成到DW,为读者提供清晰的数据中心领域专业词汇理解。

今天看了一些专业的解释,还是对ODS、DW和DM认识不深刻,下班后花时间分别查了查它们的概念。

ODS——操作性数据

DW——数据仓库

DM——数据集市

1.数据中心整体架构

 

数据中心整体架构

数据仓库的整理架构,各个系统的元数据通过ETL同步到操作性数据仓库ODS中,对ODS数据进行面向主题域建模形成DW(数据仓库),DM是针对某一个业务领域建立模型,具体用户(决策层)查看DM生成的报表。

2.数据仓库的ODS、DW和DM概念

webpuploading.4e448015.gif转存失败重新上传取消

ods、dw、dm区分

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

 

协作层次

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

 

例子

5.ODS到DW的集成示例

 

集成例子

小结

数据中心是一个全新的领域,要进这个门还需要正确理解数据中心领域所设计的专业词汇。



作者:悟成
链接:https://www.jianshu.com/p/72e395d8cb33
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

<think>嗯,用户之前问过ERP属于哪种系统,现在又转向了数据仓库的分层结构,特别是ODSDWDM层应该存在什么数据库,以及它们的存放结构。这说明用户可能正在学习数据架构,或者在工作中需要设计数据仓库,所以需要了解不同层次的作用存储方式。 首先,我得确认ODSDWDM各层的定义用途。ODS是操作数据存储,接近源系统,用于临时存储原始数据,可能用关系型数据库,比如MySQL或者Oracle,结构基本源系统一致。DW数据仓库,整合清洗后的数据,通常用列式数据库,比如Hive或Snowflake,结构可能是星型或雪花模型。DM是数据集市,面向特定部门,可能用Redshift或者云数据库,结构更扁平,适合分析。 然后用户想知道存储到哪种数据库以及结构。需要区分每层的数据库类型,比如ODS可能用OLTP数据库,DW用OLAP数据库。结构方面,ODS可能保持原样,DW用事实表维度表,DM可能用宽表或者聚合表。 用户可能是数据工程师或分析师,需要搭建数据平台,或者优化现有架构。深层需求可能包括如何选择合适的技术栈,确保数据流程高效可靠。可能需要考虑实时处理、数据量大小、查询性能等因素。 另外,用户可能对ETL流程、数据建模方法(如Kimball或Inmon)也有兴趣,但当前问题集中在存储结构上。需要简明扼要地解释各层差异,并提供例子帮助理解,比如具体表结构或使用场景。 最后,总结时需要强调各层之间的协作,以及数据库选型的依据,比如数据量、查询需求、扩展性等,帮助用户形成全面的理解。</think>以下是关于数据仓库中 **ODS(操作数据存储)、DW数据仓库)、DM(数据集市)** 的存储目标、数据库选型及数据结构的详细说明: --- ### **1. ODS层(Operational Data Store)** #### **定位与作用** - **定位**:数据仓库的“缓冲区”,直接对接源系统(如ERP、CRM),存储 **原始、未清洗** 的业务数据。 - **核心目标**: - 短期存储业务系统实时/准实时数据 - 支持数据快速抽取与初步整合 #### **存储数据库选型** - **常用数据库**:关系型数据库(OLTP特性优先) - **MySQL**、**PostgreSQL**(中小规模) - **Oracle**、**SQL Server**(企业级高并发场景) - **特殊场景**: - 高吞吐实时数据:**Kafka**(流式存储)+ **HBase**(NoSQL) #### **数据结构** - **特点**: - 结构与源系统 **高度一致**(表结构、字段名、编码格式等) - 保留业务系统原始数据(含冗余脏数据) - **示例**: ```sql -- 订单表(ODS层) CREATE TABLE ods_orders ( order_id VARCHAR(32) PRIMARY KEY, product_code VARCHAR(20), quantity INT, order_time DATETIME, raw_json TEXT -- 可能包含非结构化原始数据 ); ``` --- ### **2. DW层(Data Warehouse)** #### **定位与作用** - **定位**:企业级数据整合与清洗后的 **标准化存储**,支持跨业务主题分析。 - **核心目标**: - 长期存储历史数据 - 通过ETL实现数据清洗、维度建模 #### **存储数据库选型** - **常用数据库**:面向分析的关系型或列式数据库(OLAP特性优先) - **Hive**(Hadoop生态,离线批处理) - **Snowflake**、**BigQuery**(云原生数仓,弹性扩展) - **ClickHouse**(高性能实时分析) #### **数据结构** - **特点**: - 基于 **维度建模**(星型模型、雪花模型) - 数据高度规范化,区分 **事实表** 与 **维度表** - **示例**: ```sql -- 事实表:销售事实 CREATE TABLE dw_sales_fact ( sale_id BIGINT, product_key INT, -- 外键关联维度表 customer_key INT, date_key INT, amount DECIMAL(18,2), quantity INT ); -- 维度表:产品维度 CREATE TABLE dw_product_dim ( product_key INT PRIMARY KEY, product_name VARCHAR(100), category VARCHAR(50) ); ``` --- ### **3. DM层(Data Mart)** #### **定位与作用** - **定位**:面向特定部门或业务场景的 **轻量级数据集市**,直接服务于分析需求。 - **核心目标**: - 提供高性能、易理解的数据视图 - 支持即席查询与可视化工具 #### **存储数据库选型** - **常用数据库**: - **OLAP引擎**:**Amazon Redshift**、**Doris**(MPP架构) - **内存数据库**:**Redis**(缓存高频查询结果) - **BI工具内置存储**:**Power BI Dataset**、**Tableau Hyper** #### **数据结构** - **特点**: - 高度聚合(如按日/月统计销售额) - 宽表设计(减少关联查询,提升性能) - **示例**: ```sql -- 销售宽表(DM层) CREATE TABLE dm_sales_summary ( region VARCHAR(50), product_category VARCHAR(50), sale_date DATE, total_amount DECIMAL(18,2), avg_delivery_days INT ); ``` --- ### **4. 各层数据流向示意图** ```plaintext 源系统(OLTP) │ ▼ ODS层(原始数据存储) │ ▼ DW层(整合清洗 + 维度建模) │ ▼ DM层(面向业务的主题聚合) │ ▼ BI工具 / 报表系统 ``` --- ### **关键总结** 1. **ODS层**:存原始数据,选OLTP数据库,结构贴近业务系统。 2. **DW层**:存规范数据,选OLAP数据库,按维度建模设计。 3. **DM层**:存聚合数据,选高性能分析引擎,结构扁平化。 4. **扩展建议**:现代数据平台中,可结合 **数据湖**(如Delta Lake)统一存储原始数据,通过 **湖仓一体** 架构简化分层管理。
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值