数据仓库之层级调用规范

本文介绍了数据工程中CDM层的任务深度限制、输出表管理、任务依赖、汇总层使用、快照事实表调用、应用层引用、数据层级调用方向、公用指标处理以及应用层间调用的规则,旨在提升数据处理效率和一致性。

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

1.CDM层任务的深度不宜过大(建议不超过10层)

2.原则上一个计算任务只允许一个输出表,特殊情况除外。

3.如果多个任务输出一个表(不同任务插入不同的分区),需要建立一个虚拟任务依赖多个任务,通常情况下游应该依赖此虚拟任务。

4.CDM汇总层优先调用CDM明细层。可累加类指标计算,CDM汇总层尽量优先调用已经产出的粗粒度汇总层,避免大量汇总都直接从海量的明细数据层计算。

5.CDM明细层累计快照事实表优先调用CDM事务型事实表,保持数据的一致性产出。

6.避免应用层过度引用和依赖CDM层明细数据,有针对性建设好CDM公共汇总层。

7.避免数据层级之间存在逆向调用情况,例如CDM公共层数据使用ADS应用层数据。

8.避免应用层加工公用指标。

9.应用层之间禁止互相调用。

10.较多应用层任务使用的ODS层数据,需要沉淀为CDM公共层。在已经沉淀出CDM公共层数据的情况下,禁止使用ODS层数据。

### ETL工程在数据仓库架构中的具体层级位置 #### 数据仓库架构概述 数据仓库通常由多个层次组成,每一层都有特定的功能和作用。这些层次包括但不限于 DWD 层(Data Warehouse Details)、明细层、汇总层以及视图层等。 #### ETL 工程的具体层级位置 ETL 工程主要负责 **数据抽取 (Extract)**、**数据转换 (Transform)** 和 **数据加载 (Load)** 的过程[^3]。它在整个数据仓库架构中起到连接不同数据源与目标存储的核心桥梁作用。以下是 ETL 在各层中的角色: 1. **DWD 层**: 此层作为业务层和数据仓库之间的隔离层,在此阶段完成初步的数据清洗和规范化操作,去除空值、脏数据及离群值等问题[^1]。因此,ETL 过程的一部分会在此层执行,用于将原始数据转化为结构化且可用的形式。 2. **明细层**: 明细层包含对业务过程中每个独立事件或事务的详细信息,捕捉了业务的原始细节[^2]。这部分数据通常是通过 ETL 流程从外部系统或其他数据库提取并经过处理后得到的结果。也就是说,ETL 是构建明细层的基础工具之一。 3. **汇总层**: 汇总层基于明细层的数据进一步加工而成,涉及更复杂的聚合计算逻辑。虽然这一部分工作也可能借助于 SQL 查询或者 OLAP 技术来实现,但在某些情况下仍然需要利用 ETL 来完成跨系统的复杂数据集成任务。 4. **视图层**: 对于那些尚未正式纳入到事实表体系内的临时需求,则可以通过创建视图的方式快速响应用户求;然而这种做法仅适用于短期项目,并不推荐长期维持下去。即便如此,如果涉及到多表关联或者其他高级功能时,依然离不开 ETL 支持。 综上所述,尽管严格意义上讲 ETL 并不属于任何一个固定物理层面,但它贯穿整个数据仓库生命周期的不同环节之中——从最底层的数据采集直至高层的应用展示均有所体现。 ```python # 示例代码:简单的ETL流程模拟 def etl_process(): # Extract: 提取数据 raw_data = extract_from_source() # Transform: 转换数据 cleaned_data = transform(raw_data) # Load: 加载数据至目标库 load_to_warehouse(cleaned_data) def extract_from_source(): pass # 实际实现应调用相应接口获取数据 def transform(data): pass # 清洗、过滤、标准化等操作 def load_to_warehouse(processed_data): pass # 将处理后的数据存入数据仓库 ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值