数据仓库层次建设的演变及敏捷初探

本文涉及的产品
云原生数据仓库AnalyticDB MySQL版,基础版 8ACU 100GB 1个月
简介: 一个新的数据仓库、数据集市从零开始建设时,我们通常会纠结如何按照经典的数仓分层理论进行设计,然后按照经验规范进行所有的开发工作;但从实际开发过程中,会发现这种思路类似建设一个大型系统,想在设计阶段就把各种需求考虑完整,然后再花时间统一建设,这种思路需要非常完整的专家领域经验及建模方法论,对人员及时间的要求非常高,不适合当前快速发展的业务需要,所以我们需要对数仓建设的敏捷实践进行探索

背景:

当一个新的数据仓库、数据集市从零开始建设时,我们通常会纠结如何按照经典的数仓分层理论进行设计,然后按照经验规范进行所有的开发工作;但从实际开发过程中,会发现这种思路类似建设一个大型系统,想在设计阶段就把各种需求考虑完整,然后再花时间统一建设,这种思路需要非常完整的专家领域经验及建模方法论,对人员及时间的要求非常高,不适合当前快速发展的业务需要,所以我们需要对数仓建设的敏捷实践进行探索。

数据层次的阶段变化:

在不同的发展阶段,数据层次会呈现出不同的状态:

阶段一:

起步阶段,数据资产从零开始建设,各种adm应用层数据直接按需求口径从ods贴源数据表获取,数据复用不考虑层次问题,会出现各种 adm + ods 混合处理 产出新的 adm 数据,慢慢出现所谓的蜘蛛网结构

阶段二:

初步治理阶段,开始对复用数据进行治理,按需衍生出新的 dwd 中间层数据,但需求发展较快的情况下,dwd 中间层 并不能快速进行需求迭代,又开始形成 ods + dwd 混合处理 产出新的 dwd 或者 adm 数据,也就出现了模糊的层次结构

阶段三:

规范治理阶段,开始对 中间层 复用数据进行重新设计和重构,制定中间层的开发规范,这个阶段 dwd + dwd 模式可以满足大部分的数据需求,但并不能避免 dwd + ods 混合产生 dwd 或者 adm 数据,这是 数仓特性 所决定,新的数据 和 新的需求 需要在不断的处理过程中慢慢被整理和规范化使用,这种 dwd 中间层不断迭代的阶段是我们通常所处的阶段,有清晰的结构和流转层次

阶段四:

敏捷开发阶段,为了权衡 开发的规范要求 与 交付协作的时效性,开始按敏捷思路进行 dwd 中间层共建,dwd + ods 多版本共存管理,按周期性进行 dwd + ods 治理,沉淀统一口径的dwd中间层数据,这个阶段要求开发团队有较成熟的设计和管理能力,可以长时间的保持 清晰的层次结构和模块设计

敏捷模式下的数据治理:

从上文中的四个不同阶段可以看出,在实际工作中需要制定不同的数据治理策略,保证数据流转的层次可控及较高的交付效率;综合起来可以先从以下几点开始:

1、从规范上要求避免 adm 应用层互相依赖的情况,特殊情况可以使用 临时表 解决,牺牲一些计算代价

2、在初期明确 敏捷dwd中间层 共建方法,方便对多版本进行管理与后续治理

3、对涉及 口径处理 的字段或指标 上升到dwd层处理

4、周期进行 敏捷dwd多版本治理 与 ods穿透治理

5、对dwd层次进行管理和要求,混合层次不要超过三层

6、定期整理治理需求,短期敏捷迭代治理

敏捷模式下的数据质量保障:

由于敏捷模式下,中间层会频繁迭代及多版本合并,对数据质量保障会有更高的要求,需要从人员能力及流程规范上严格要求:

1、安排专人负责中间层迭代或合并开发,必须进行全量数据对比测试及代码review

2、所有中间层资产 必须明确业务主键 并 配置dqc规则

3、下游adm替换修改由团队共建,按风险等级进行结果数据验证

总结:

数据的敏捷开发本质上为了解决业务需求时效要求与中间层建设投入在 时间和协作 上的矛盾,在常规的数据中台架构下,无法充分的发挥敏捷协作的优势,需要对中间层的建设规范与协作模式进行探索,在保障业务侧业务需求的情况下,最大程度的保持数仓层级结构上的合理性,让一线需求开发同学进行中间层多版本共建,并在规范上进行一些约束,可能会是我们后续继续探索的方向,希望可以给大家在数仓建设方面一些启发。

相关实践学习
AnalyticDB MySQL海量数据秒级分析体验
快速上手AnalyticDB MySQL,玩转SQL开发等功能!本教程介绍如何在AnalyticDB MySQL中,一键加载内置数据集,并基于自动生成的查询脚本,运行复杂查询语句,秒级生成查询结果。
阿里云云原生数据仓库AnalyticDB MySQL版 使用教程
云原生数据仓库AnalyticDB MySQL版是一种支持高并发低延时查询的新一代云原生数据仓库,高度兼容MySQL协议以及SQL:92、SQL:99、SQL:2003标准,可以对海量数据进行即时的多维分析透视和业务探索,快速构建企业云上数据仓库。 了解产品 https://www.aliyun.com/product/ApsaraDB/ads
目录
相关文章
|
存储 人工智能 Kubernetes
【企业架构】什么是数据架构? 管理数据的框架
【企业架构】什么是数据架构? 管理数据的框架
|
数据采集 存储 前端开发
关于数仓建设及数据治理的超全概括 (一)
本文分为两大节介绍,第一节是数仓建设,第二节是数据治理,内容较长,还请耐心阅读!
773 0
关于数仓建设及数据治理的超全概括 (一)
|
4月前
|
存储 XML 数据管理
数据架构规划与设计
数据库在数据管理方面具有管理方便、存储占用空间小、检索速度快、修改效率高和安全性好等优点。
53 1
|
canal 缓存 otter
数据仓库 、数据中心相关技术知识和生态相关了解
数据仓库 、数据中心相关技术知识和生态相关了解
224 0
|
存储 数据采集 Oracle
企业数据仓库建设的设计(一)
数据仓库(以下简单“数仓”)的概念在很早就被提出来,是数据库的一个分支,早期是决策支持系统(dss)和联机分析应用数据源的结构化数据环境,用于资料数据的沉淀,归类合理的存储结构,做系统化的分析整理,支撑各种决策系统,商业智能的需要。
289 0
|
定位技术 uml
「技术架构」TOGAF建模之技术架构:环境和位置图
「技术架构」TOGAF建模之技术架构:环境和位置图
|
数据安全/隐私保护 uml
「数据架构」TOGAF建模之数据架构:数据安全图
「数据架构」TOGAF建模之数据架构:数据安全图
「架构远景·」TOGAF建模之业务架构:价值链图
「架构远景·」TOGAF建模之业务架构:价值链图
|
存储 uml
「架构愿景」TOGAF建模:解决方案概念图
「架构愿景」TOGAF建模:解决方案概念图
|
存储 搜索推荐 数据可视化
谈谈数据中台数据分层建模和数据指标体系建设
数据资产是数据管理和应用领域经常被提到的概念,数据中台的目的就是将数据转变为数据资产。
谈谈数据中台数据分层建模和数据指标体系建设