数仓及其维度(分层)建模(ODS DWD DWS DWT ADS)

本文介绍了数据仓库及其维度建模,阐述了数仓的特点如集成性、稳定性、动态性、主题性和扩展性。数仓分层包括ODS(原始数据层)、DWD(数据清洗层)、DWS(数据汇总层)、DWT(数据主题层)和ADS(应用数据层),各层的作用和数据处理过程,强调了分层对于减少重复开发、清晰数据结构、定位问题和简化复杂问题的重要性。

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

一. 数仓及其维度

1. 什么是数仓?

        数据仓库,简称数仓,( Data Warehouse )从逻辑上理解,数据库和数仓没有区别,都是通过数据库软件实现存放数据的地方,只不过从数据量来说,数据仓库要比数据库更庞大。

数仓主要是为企业制定决策,提供数据支持的。当业务简单,可以用数据库来存储,分析,制表。但当数据量几何式增长,需要跨机器整合时,数仓就是非常必要的了。

2. 数仓的特点

(1)集成性

        数仓中存储的数据来源于多个数据源,原始数据在不同数据源中的存储方式各不相同。要整合成为最终的数据集合,需要从数据源经过一系列抽取、清洗、转换的过程。

(2)稳定性

        数仓中保存的数据是历史记录,不允许被修改。用户只能通过分析工具进行查询和分析。

(3)动态性

        数仓的数据会随时间变化而定期更新,这里的定期更新不是指修改数据,一般是将业务系统发生变化的数据定期同步到数仓,和稳定性不冲突。不可更新是针对应用而言,即用户分析处理时不更新数据

(4)主题性

        传统数据库对应的业务不同,数仓需要根据需求,将不同数据源的数据进行整合,即数据一般都围绕某一业务主题进行建模。例如“贷款”主题、“存款”主题等。

(5)扩展性

        之所以有的大型数据仓库系统架构设计复杂,是因为考虑到了未来3-5年的扩展性,这样的话,未来不用太快花钱去重建数据仓库系统,就能很稳定运行。主要体现在数据建模的合理性,数据仓库方案中多出一些中间层,使海量数据流有足够的缓冲,不至于数据量大很多,就运行不起来了。

3. 数仓的数据哪里来?

(1)业务数据

        就是各行业在

<think>嗯,用户想了解湖一体架构中各层次(ODSDWDDWSADS)的含义。这个问题很专业,说明用户可能在从事数据仓库或大据相关的工作。 用户可能正在设计据架构,或者需要理解现有系统的分层逻辑。从问题表述看,用户对传统分层已有基础认知,现在想延伸到湖一体场景。湖一体是近年热门架构,结合了据湖的灵活性和的规范性,用户选择这个方向很务实。 关于湖一体的分层定义,需要突出与传统的差异点。比如ODS层在湖中可能直接使用Parquet/ORC等列式格式存储在对象存储上,而传统多用关系型据库。DWD层在湖中会利用Delta Lake/Hudi等事务能力,这是关键创新点。 用户可能隐含的需求是:这些分层在实际技术选型时如何落地?是否需要额外说明各层典型存储格式和处理引擎?不过问题聚焦在定义和作用,先回答核心分层逻辑比较稳妥。 从提供的引用看,[2]对ODS的定义最清晰,[3]解释DWS的价值很到位。但要注意湖场景下DWS层可能直接基于Iceberg等开放格式做聚合,而不依赖特定MPP据库,这点需要补充说明。 安全方面需注意:不能把某家厂商的专有实现说成通用标准,比如避免直接说“使用Delta Lake实现SCD2”,而应表述为“通过事务性据湖技术实现渐变维度”。 回复结构可以按四层展开,每层先给定义再说明湖特色。最后用对比表格总结会很清晰,用户可能需要向团队汇报这些内容。结尾的问题设计要引导用户思考落地场景,比如计算引擎选型就是湖实施的关键决策点。</think>在湖一体架构中,ODSDWDDWSADS 各层继承传统数据仓库分层理念,同时融合据湖的灵活性,其定义与作用如下: --- ### **1. ODS(操作据存储层)** - **定义**:原始据的**缓冲层**,将异构据源(日志、业务库、IoT设备等)近乎无处理地采集到据湖中,保留原始格式(如JSON/CSV/Parquet)[^2]。 - **湖特色**: - 据存储在对象存储(如S3/OSS)或分布式文件系统(HDFS),支持半/非结构化据 - 采用开放格式(Parquet/ORC),避免厂商锁定 - **核心作用**: ✅ 提供据**回溯能力**(保留原始副本) ✅ 统一据入口,降低源系统压力 ✅ 支持流式据实时接入(如Kafka→Iceberg表) --- ### **2. DWD(明细据层)** - **定义**:对ODS据进行**清洗、标准化、维度建模**后的明细据层。 - **湖特色**: - 利用**事务性据湖技术**(Delta Lake/Hudi/Iceberg)实现ACID保障 - 支持**渐变维度**(SCD)的可靠处理 - **核心作用**: ✅ 据质量治理(去重、空值处理、非法值修正) ✅ 统一业务标识(如用户ID标准化) ✅ 构建一致性维度模型(星型/雪花模型) ✅ 提供粒度为**事务级别**的干净据 --- ### **3. DWS(汇总据层)** - **定义**:基于DWD的**轻度汇总层**,按主题域(用户/商品/渠道等)聚合指标[^3]。 - **湖特色**: - 利用据湖的**弹性计算**(Spark/Presto)实现动态聚合 - 支持**物化视图**自动更新(如Apache Hudi的增量处理) - **核心作用**: ✅ 预计算高频指标(如每日UV、交易总额) ✅ 构建主题宽表(如用户行为宽表) ✅ 减少重复计算,提升查询效率 > 📌 例:用户域宽表包含$30$天购买次、最近登录时间等汇总字段 --- ### **4. ADS(应用据层)** - **定义**:面向具体业务场景的**应用据集市层**,结构按需设计。 - **湖特色**: - 支持**混合负载**:BI报表、实时看板、AI模型服务共用存储 - 提供**开放API**(如通过JDBC/ODBC对接应用) - **核心作用**: ✅ 输出业务就绪据(如风控特征表、推荐系统输入表) ✅ 满足不同SLA要求(分钟级延迟报表 vs 实时大屏) ✅ 直接支撑前端应用: ```sql -- 示例:生成每日区域销售报表 SELECT region, SUM(sales) FROM ads_sales_dashboard WHERE dt='2023-10-01' GROUP BY region; ``` --- ### **湖分层 vs 传统分层** | 特性 | 传统 | 湖一体架构 | |---------------|-------------------------|-----------------------| | **存储成本** | 高(专用存储) | 低(对象存储) | | **据格式** | 强约束(关系型) | 开放格式(Parquet等) | | **计算引擎** | 绑定MPP据库 | 解耦(Spark/Flink等) | | **模式演化** | 复杂(需DDL变更) | 灵活(Schema-on-Read)| | **实时能力** | 弱(T+1为主) | 强(流批一体) | > 💡 **湖核心价值**:通过统一存储层(据湖)实现**一份据同时支持BI分析、机器学习、实时处理**,避免传统架构中据孤岛问题。 --- ### 相关问题 1. 湖一体中如何利用Delta Lake/Iceberg解决据一致性问题? 2. DWD层做维度建模时,在湖架构下有哪些最佳实践? 3. 如何设计湖DWS层以同时满足实时看板和离线报表需求? 4. 湖一体架构下,ODS层原始据需要保留多久?依据是什么? 5. 在ADS层支持AI模型训练时,如何避免据特征穿越问题? [^1]: 数据仓库架构设计:ODSDWDDWSADS 解析 [^2]: 万字详解分层设计架构 ODS-DWD-DWS-ADS [^3]: 及其维度(分层)建模(ODS DWD DWS DWT ADS)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值