数仓建模方法简要总结

本文涉及的产品
云原生数据仓库AnalyticDB MySQL版,基础版 8ACU 100GB 1个月
简介: 数据资产特别是中间层资产缺少统一的方法指导,造成各个项目负责同学被动建设,数据资产无法体系化,为后续使用和维护上带来很多困难,所以本次先从数仓建模方法方面为大家进行简单的总结介绍,希望帮助大家形成相对统一的数仓建模方法论

背景:

因近期境外银行业务全面提速,各种业务项目、建站项目并行推进,数据团队数据资产建设的需求也接踵而至,但我们一直跟随业务快速开发迭代,数据资产特别是中间层资产缺少统一的方法指导,造成各个项目负责同学被动建设,数据资产无法体系化,为后续使用和维护上带来很多困难,所以本次先从数仓建模方法方面为大家进行简单的总结介绍,希望帮助大家形成相对统一的数仓建模方法论。

常见的两种数仓建模理论:

【维度建模】

维度建模以数据分析需求为驱动,倡导总线架构:一致的事实和一致的维度,这种数据模型易于用户理解和数据分析操作;但是这种建模方法缺点很明显,随着业务复杂度的增加以及分析的不断深入,复杂的维度需求导致数据体系混乱,增大了使用和维护的成本;强制一致的维度也会造成信息上的丢失,更容易造成数据口径问题;

所以维度建模比较适合的是数据统计指标的计算场景,适合聚合统计指标而不是聚合属性信息。

【实体关系建模】

实体关系建模以源系统数据为驱动,整合企业的所有数据,站在企业级的高度对数据进行抽象,整合,采用3NF的实体关系理论建模,这种数据建模方式以更为抽象的方式尝试建立一个相对稳定的数据模型,并能描述企业级的数据关系。

实体关系模型是业务系统数据建模经常采用的方法,所以数仓层面往往是采用基于主题域的实体关系建模方法,也是目前大多数数仓模型设计的基础,大家会在不同的数仓层次上基于实体对象进行模型的设计;

需要注意的是,业务系统往往从对象抽象层次对数据模型进行发散,形成了星型的或者雪花型的网络结构,如果数仓基于这种结构设计,信息会太过于分散,加工的链路太长,关系复杂度比较高,缺少了易用性。

各个层次适用的建模方法:

数仓分层

分层目标

建模方法

ODS贴源层

保留原始业务模型信息,方便理解业务数据,快速支持基于业务口径的信息获取

贴源镜像建模

DWD公共中间层

基于主题域的实体信息整合,解决业务系统模型对象信息过于发散的问题,统一底层业务信息处理逻辑和口径

主题域实体关系建模

从易用性角度简化主题域划分

从粒度上整合实体对象信息,保持主干清晰,进行纵向表划分

按信息的重要程度,以衍生扩展的方式,进行横向表划分

保持主体结构稳定

DWD业务中间层

基于业务分类的过程信息整合,解决业务过程信息在业务系统中的分散存储问题,统一进行业务链路数据关联整合

实体维度融合建模

对业务过程进行层次划分整合,冗余实体关键信息及前后过程信息

保持业务层次稳定

DWS统计中间层

基于分析视角的指标信息整合,解决指标口径不一致和指标重复计算的问题,统一指标计算口径和逻辑

维度建模

从分析角度抽象原子指标

保留维度分析的最小粒度

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
目录
相关文章
|
5月前
|
存储 SQL 分布式计算
离线数仓(五)【数据仓库建模】(4)
离线数仓(五)【数据仓库建模】
|
5月前
|
SQL 存储 关系型数据库
离线数仓(五)【数据仓库建模】(1)
离线数仓(五)【数据仓库建模】
离线数仓(五)【数据仓库建模】(1)
|
5月前
|
SQL 存储 关系型数据库
技术心得记录:数仓建模方法之范式建模、ER实体建模、维度建模
技术心得记录:数仓建模方法之范式建模、ER实体建模、维度建模
103 0
|
6月前
|
存储 数据挖掘 大数据
大数据数仓建模基础理论【维度表、事实表、数仓分层及示例】
数据仓库建模是组织和设计数据以支持数据分析的过程,包括ER模型和维度建模。ER模型通过实体和关系描述数据结构,遵循三范式减少冗余。维度建模,特别是Kimball方法,用于数据仓库设计,便于分析和报告。事实表存储业务度量,如销售数据,分为累积、快照、事务和周期性快照类型。维度表提供描述性信息,如时间、产品、地点和客户详情。数仓通常分层为ODS(源数据)、DWD(明细数据)、DIM(公共维度)、DWS(数据汇总)和ADS(应用数据),以优化数据管理、质量、查询性能和适应性。
1473 3
|
6月前
|
SQL 分布式计算 Java
实时数仓 Hologres产品使用合集之ologres holostudio为什么不支持max_pt('table')取最大分区这个方法
实时数仓Hologres是阿里云推出的一款高性能、实时分析的数据库服务,专为大数据分析和复杂查询场景设计。使用Hologres,企业能够打破传统数据仓库的延迟瓶颈,实现数据到决策的无缝衔接,加速业务创新和响应速度。以下是Hologres产品的一些典型使用场景合集。
离线数仓(五)【数据仓库建模】(3)
离线数仓(五)【数据仓库建模】
|
5月前
|
存储 SQL JSON
离线数仓(五)【数据仓库建模】(2)
离线数仓(五)【数据仓库建模】
|
6月前
|
存储 数据可视化 前端开发
数仓常用分层与维度建模
本文介绍了数据仓库的分层结构和维度建模。数仓通常分为ODS、DIM、DWD、DWS和ADS五层,各层负责不同的数据处理阶段。维度建模是数据组织方法,包括星型和雪花模型。星型模型简单直观,查询性能高,适合简单查询;雪花模型则通过规范化减少冗余,提高数据一致性和结构复杂性,但可能影响查询效率。选择模型需根据业务需求和数据复杂性来定。
517 0
|
6月前
|
数据挖掘 数据库
离线数仓6.0--- 数据仓库 ER模型-范式理论,维度模型、维度建模理论之事实表、维度建模理论之维度表
离线数仓6.0--- 数据仓库 ER模型-范式理论,维度模型、维度建模理论之事实表、维度建模理论之维度表
265 0
|
30天前
|
人工智能 自然语言处理 关系型数据库
阿里云云原生数据仓库 AnalyticDB PostgreSQL 版已完成和开源LLMOps平台Dify官方集成
近日,阿里云云原生数据仓库 AnalyticDB PostgreSQL 版已完成和开源LLMOps平台Dify官方集成。