数仓分层

ODS层基础层-ODS(Operational Data Store-操作型数据存储):主要是未经过加⼯的原始数据

中间层-CDM\EDW(Enterprise Data Warehouse-企业级数据仓库,Common Data Model,公共维度模型层):

  • dwd-明细整合层
  • dws-⾼粒度汇总层,⼀般为主题宽表
  • dim-维度表

应⽤层-ADM(Application Data Mart-应⽤数据集市):数据应⽤或数据集市所在的层次。


数仓分层意义

数仓为空间换时间,通过大量预处理,提升用户数据效率体现等。故而存在大量数据冗余。如果不分层,源业务系统的业务规则发生变化将会影响整个数据清洗过程,工作量巨大。通过数据分层管理可以简化数据清洗的过程,因为把原来一步的工作分到了多个步骤去完成,相当于把一个复杂的工作拆成了多个简单的工作,把一个大的黑盒变成了一个白盒,每一层的处理逻辑都相对简单和容易理解,这样我们比较容易保证每一个步骤的正确性,当数据发生错误的时候,往往我们只需要局部调整某个步骤即可。

数仓建模

维度建模的基本概念

维度建模(dimensional modeling)是专门用于分析型数据库、数据仓库、数据集市建模的方法。

它本身属于一种关系建模方法,但和之前在操作型数据库中介绍的关系建模方法相比增加了两个概念:

维度表(dimension)

表示对分析主题所属类型的描述。比如"昨天早上张三在京东花费200元购买了一个皮包"。那么以购买为主题进行分析,可从这段信息中提取三个维度:时间维度(昨天早上),地点维度(京东), 商品维度(皮包)。通常来说维度表信息比较固定,且数据量小。

事实表(fact table)

表示对分析主题的度量。比如上面那个例子中,200元就是事实信息。事实表包含了与各维度表相关联的外码,并通过JOIN方式与维度表关联。事实表的度量通常是数值类型,且记录数会不断增加,表规模迅速增长。

星形模式(Star Schema)

星形模式(Star Schema)是最常用的维度建模方式,下图展示了使用星形模式进行维度建模的关系结构:


可以看出,星形模式的维度建模由一个事实表和一组维表,且具有以下特点:a. 维表只和事实表关联,维表之间没有关联;b. 每个维表的主码为单列,且该主码放置在事实表中,作为两边连接的外码;c. 以事实表为核心,维表围绕核心呈星形分布;

雪花模式

雪花模式(Snowflake Schema)是对星形模式的扩展,每个维表可继续向外连接多个子维表。下图为使用雪花模式进行维度建模的关系结构:

星形模式中的维表相对雪花模式来说要大,而且不满足规范化设计。雪花模型相当于将星形模式的大维表拆分成小维表,满足了规范化设计。然而这种模式在实际应用中很少见,因为这样做会导致开发难度增大,而数据冗余问题在数据仓库里并不严重。

星座模式

星座模式(Fact Constellations Schema)也是星型模式的扩展。基于这种思想就有了星座模式:

前面介绍的两种维度建模方法都是多维表对应单事实表,但在很多时候维度空间内的事实表不止一个,而一个维表也可能被多个事实表用到。在业务发展后期,绝大部分维度建模都采用的是星座模式。

三种模式对比

归纳一下,星形模式/雪花模式/星座模式的关系如下图所示:

雪花模式是将星型模式的维表进一步划分,使各维表均满足规范化设计。而星座模式则是允许星形模式中出现多个事实表。

数仓建模的edw_浅谈数仓分层和模型相关推荐

  1. 【数仓】浅谈数仓建模的方法

    一篇比较全面介绍数据仓库建模方法的普及文章,主要包括了四个方面的内容: 1.什么是数据模型:简而言之就是对现实世界业务对象及关系的抽象. 2.为什么需要数据模型:数据模型不是必需的,建模的目的是为了改 ...

  2. 浅谈数仓建模及其方法论

    认识数据仓库 1.数仓的定义: 2.数据仓库和数据库的区别: 数仓的发展 1.简单报表阶段:这个阶段,系统的主要目标是解决一些日常的工作中业务人员需要的报表,以及生成一些简单的能够帮助领导进行决策所需 ...

  3. 内部矩阵维度必须一致simulink_浅谈数仓模型(维度建模)

    背景 数据仓库的核心是展现层和提供优质的服务.ETL 及其规范.分层等所做的一切都是为了一个更清晰易用的展现层. 数仓架构的原则: 1.底层业务的数据驱动为导向同时结合业务需求驱动 2.便于数据分析 ...

  4. 数据仓库系列文章一:浅谈数仓设计

    数仓设计指对数据仓库的各项组成进行规划,在正式建设数仓之前形成指导性建设方案. 数仓设计主要分为两部分:数据仓库同操作型业务系统的数据接口设计和数仓自身建设设计. 本文从多个方面探讨数仓的设计要点,给 ...

  5. 数仓建模 项目_模型设计_数仓建模 PDF 下载

    主要内容: 数据仓库 按照传统的定义,数据仓库是一个面向主题的.集成的.相对稳定的.反映历史变化的数据集合,用于支持管理决策. 从数据角度,数据仓库更适合传统的数据库,离线采集,数据一般为结构化的. ...

  6. 浅谈数商云S2B2C商城系统业务一体化管理功能在医疗器械行业的应用

    近些年,随着医疗器械行业的快速发展,医疗器械市场规模也随之日益提升,根据公开数据统计,2021年我国医疗器械市场规模为9630亿元,同比增长31.18%,预计2022年将突破万亿大关.但与此同时,医疗 ...

  7. 浅谈数明深力科隔离驱动器SLMi8235BD 车载充电器(OBC)方案

    数明深力科SLMi823x系列SLMi8235BD隔离驱动技术优势:具有高性能.高性价比.高可靠性的产品特性,应用覆盖UPS.充电桩.服务器电源.通信电源.新能源汽车动力总成系统的车载 OBC 领域. ...

  8. 浅谈数字音视频传输网络——AVB

    本文将围绕:音频信号的数字化.以太网的传输方式.数字音频信号对以太网的要求.QoS服务质量.传统以太网传输实时数据流的方式.以太网音视频桥接(AVB)技术等几个方面展开说明. 在传统的音响系统里,声音 ...

  9. 浅谈湖仓一体化对上层机器学习业务的促进

    背景概述 最近湖仓一体化的概念在大数据圈子突然蹿红,知乎上很多大神已经分析了湖仓一体化主要的革新点,今天主要介绍下湖仓一体化对机器学习业务的影响. 还是简单讲下"湖"和" ...

最新文章

  1. PMCAFF微课堂 | 《社交红利2.0:即时引爆》徐志斌教你玩转社交
  2. BAdI implementation in ABAP workbench dispatch event
  3. 摆脱pom XML…几乎
  4. 你可以不在BAT,但大厂的眼界不能没有
  5. setTimeout() 与 setInterval() 异同
  6. linux充当防火墙,Linux下主机充当防火墙的巧妙应用之iptables
  7. mysql 查询表注释
  8. 获取地址栏的最后一个文件
  9. linux学习笔记(11)df命令
  10. 当安防撞上AI风潮 会迸出怎样火花?
  11. [java][马士兵j2se视频教程]
  12. Django-rest-framework框架之drf内置认证,权限,频率类,异常处理与自动生成接口文档
  13. 计算机环境变量怎么恢复默认,环境变量怎么还原
  14. destoon task.js.php,Destoon B2B网站系统在线聊天插件 v1.0
  15. 揭开 Java 注解的神秘面纱
  16. 2007年12月全球十大搜索引擎
  17. [SCOI2012]滑雪 洛谷p2573
  18. 数据库的学习与进阶(一)
  19. 拨开迷雾选型数据中台,兼谈这些供应商的商业模式
  20. 解魔方机器人系列(一)kociemba算法

热门文章

  1. js触发button的点击事件
  2. 黑莓桌面管理器4.2_虚拟桌面管理器行业现状调研分析及发展趋势预测报告(2020)...
  3. itchat python_itchat-python搭建微信机器人(附示例)
  4. linux内核 端口,Linux内核中IO端口资源管理
  5. jquery复选框组清空选中的值_jQuery选取所有复选框被选中的值并用Ajax异步提交数据...
  6. Unity2019.2中文更新日志速览版
  7. struts2 mysql配置文件路径_Struts2(四)Struts2配置文件的配置
  8. OpenShift 4 - 关闭更新MachineConfig后集群节点自动重启功能
  9. 如何使用Visual Studio创建SQL Server数据库项目
  10. 到 2022 年,75% 的数据库将托管在云端