首页 > 其他分享 >数仓分层ODS、DWD、DWM、DWS、DIM、DM、ADS

数仓分层ODS、DWD、DWM、DWS、DIM、DM、ADS

时间:2024-08-01 12:56:14浏览次数:12  
标签:数仓 DM ADS 1.2 DWS Data DWD 数据

往期推荐

数仓入门:数据分析模型、数仓建模、离线实时数仓、Lambda、Kappa、湖仓一体-CSDN博客

数仓常见名词解析和名词之间的关系-CSDN博客

数据仓库及数仓架构概述-CSDN博客

大数据HBase图文简介-CSDN博客

目录

1. 数仓分层 

1.1 数据源层:ODS(Operational Data Store)

1.2 数据仓库层:DW(Data Warehouse)

1.2.1 数据明细层:DWD(Data Warehouse Detail)

1.2.2 数据中间层:DWM(Data WareHouse Midddle)

1.2.3 数据服务层:DWS(Data WareHouse Service)

1.3 数据应用层:ADS(Application Data Service)

1.4 维表层:DIM(Dimension)


1. 数仓分层 

那么为什么要数据仓库进行分层呢?

  • 用空间换时间,通过大量的预处理来提升应用系统的用户体验(效率),因此数据仓库会存在大量冗余的数据不分层的话,如果源业务系统的业务规则发生变化将会影响整个数据清洗过程,工作量巨大
  • 通过数据分层管理可以简化数据清洗的过程,把一个复杂的工作拆成了多个简单的工作,把一个大的黑盒变成了一个白盒,每一层的处理逻辑都相对简单和容易理解,这样比较容易保证每一个步骤的正确性,当数据发生错误的时候,往往我们只需要溯源并局部调整某个步骤即可。
  • 分层是以解决当前业务快速的数据支撑为目的
  • 抽象出共性的框架并能够赋能给其他业务线,同时为业务发展提供稳定、准确的数据支撑
  • 并能够按照已有的模型为新业务发展提供方向,也就是数据驱动和赋能

一个好的分层架构,要有以下好处:

1. 清晰数据结构

2. 数据血缘追踪:数据ETL转化过程中的流动变化

3. 减少重复开发,提高数据复用性

4. 数据关系条理化

5. 屏蔽原始数据的影响

 数仓分层要结合公司业务进行,并且需要清晰明确各层职责,一般采用如下分层结构:

数仓建模在哪层建设呢?我们以维度建模为例,建模是在数据源层的下一层进行建设,在上图中,就是在 DW 层进行数仓建模,所以 DW 层是数仓建设的核心层。 下面详细阐述下每层建设规范!

1.1 数据源层:ODS(Operational Data Store)

ODS 层是最接近数据源的一层,又叫贴源层,考虑后续可能需要追溯数据问题, 因此对于这一层就不建议做过多的数据清洗工作,原封不动地接入原始数据即可, 至于数据去噪、去重、异常值处理等过程可以放在后面的 DWD 层来做!

1.2 数据仓库层:DW(Data Warehouse)

数据仓库层是数据仓库核心层,在这里把从 ODS 层中获得的数据按照主题建立各种数据模型。该层又依次细分为DWD、DWM、DWS

1.2.1 数据明细层:DWD(Data Warehouse Detail)

  • 该层一般保持和 ODS 层一样的数据粒度,并且提供一定的数据质量保证DWD层要做的就是将数据清理、整合、规范化,把脏数据、垃圾数据、规范不一致的、状态定义不一致的、命名不规范的数据处理掉。
  • 同时,为了提高数据明细层的易用性,该层会采用一些维度退化手法,将维度退化至事实表中,减少事实表和维表的关联。
  • 另外,在该层也会做一部分的数据聚合,将相同主题的数据汇集到一张表中,提高数据的可用性 。

1.2.2 数据中间层:DWM(Data WareHouse Midddle)

  • 该层会在 DWD 层的数据基础上,数据做轻度聚合,生成一系列的中间表提升公共指标的复用性,减少重复加工。
  • 直观来讲,就是对通用的核心维度进行聚合操作,算出相应的统计指标。
  • 在实际计算中,如果直接从 DWD 或者 ODS 计算出宽表的统计指标,会存在计算量太大并且维度太少的问题,因此一般的做法是,在 DWM 层先计算出多个小的中间表,然后再拼接成一张 DWS 的宽表。由于宽和窄的界限不易界定,也可以去掉 DWM 这一层,只留 DWS 层,将所有的数据再放在DWS也可。

1.2.3 数据服务层:DWS(Data WareHouse Service)

  • DWS 层为公共汇总层,会进行轻度汇总粒度比明细数据稍粗,基于 DWD 层上的基础数据,整合汇总成分析某一个主题域的服务数据。
  • DWS 层应覆 盖 80% 的应用场景。又称数据集市或宽表。 按照业务划分,如主题域流量、订单、用户等,生成字段比较多的宽表,用于提供后续的业务查询,OLAP 分析,数据分发等。
  • 一般来讲,该层的数据表会相对比较少,一张表会涵盖比较多的业务内容,由于其字段较多,因此一般也会称该层的表为宽表

1.3 数据集市层:DM(Data Mart)

基于DW的基础数据,整合汇总成一个个数据集市,数据集市通常是面向部门的某个主题域的报表数据。比如用户留存表、用户活跃表、商品销量表、商品营收表等等。

1.4 维表层:DIM(Dimension)

如果维表过多,也可针对维表设计单独一层,维表层主要包含两部分数据:

  • 高基数维度数据:一般是用户资料表、商品资料表类似的资料表。数据量可能是千万级或者上亿级别。
  • 低基数维度数据:一般是配置表,比如枚举值对应的中文含义,或者日期维表。 数据量可能是个位数或者几千几万

1.5 数据应用层:ADS(Application Data Service)

在这里,主要是提供给数据产品和数据分析使用的数据,一般会存放在 ES、 PostgreSql、Redis 等系统中供线上系统使用,也可能会存在 Hive 或者 Druid 中供数据分析和数据挖掘使用。比如我们经常说的报表数据,一般就放在这里。

标签:数仓,DM,ADS,1.2,DWS,Data,DWD,数据
From: https://blog.csdn.net/qq_73181349/article/details/140786773

相关文章

  • 数仓入门:数据分析模型、数仓建模、离线实时数仓、Lambda、Kappa、湖仓一体
    往期推荐大数据HBase图文简介-CSDN博客数仓分层ODS、DWD、DWM、DWS、DIM、DM、ADS-CSDN博客数仓常见名词解析和名词之间的关系-CSDN博客目录0.前言0.1浅谈维度建模0.2数据分析模型1.何为数据仓库1.1 为什么不直接用业务平台的数据而要建设数仓?1.2 数据仓库特......
  • 数仓基础知识_拉链表的详细讲解
    拉链表没错,就像衣服的拉链一样重要,实用性非常强,使用频率非常高。拉链表核心思想,像个拉链,支持开链,支持闭链,支持退链,我们通常将最新的数据称为开链数据,历史数据称为闭链数据,拉链表支持历史数据查询,且空间占用较小,但是数据加工处理较为繁琐,属于时间换空间的设计方式,拉链表一......
  • 项目管理如何选型:类似Redmine系统全指南
    国内外主流的10款类似redmine项目管理系统对比:PingCode、Worktile、TAPD、OpenProj、禅道(ZenTao)、Teambition、JIRA、Asana、Basecamp、Wrike。在项目管理领域,选择一个既能满足需求又易于操作的工具是每个团队都面临的挑战。尽管Redmine因其开源和灵活性而广受欢迎,但市场上还有......
  • ADS环境下的ARM汇编程序设计实验报告
    ADS环境下的ARM汇编程序    一、实验目的1.了解ARM汇编语言的基本框架,学会使用ARM的汇编语言编程。2.熟悉ADS1.2下进行汇编语言程序设计的基本流程;3.了解AXD中调试功能。二、实验环境硬件:PC机软件:ADS1.2三、实验任务与步骤实验任务1、在ADS中新建工程,并设置......
  • kubeadm部署k8s集群
    目录1.环境准备2.升级内核3.所有节点安装docker4.安装kubeadm,kubelet和kubectl5.高可用配置6.部署K8S集群7.所有节点部署网络插件flannel8.部署Dashboard可视化面板9.更新k8s证书有效期1.环境准备7-2192.168.9.210master017-5192.168.9.120master027-7192.168.9.......
  • [米联客-安路飞龙DR1-FPSOC] FPGA基础篇连载-23 RGB转HDMI显示方案
    软件版本:Anlogic-TD5.9.1-DR1_ES1.1操作系统:WIN1064bit硬件平台:适用安路(Anlogic)FPGA实验平台:米联客-MLK-L1-CZ06-DR1M90G开发板板卡获取平台:https://milianke.tmall.com/登录"米联客"FPGA社区http://www.uisrc.com视频课程、答疑解惑! 1概述本实验通过FPGA内......
  • 达梦数据库的DM 数据守护(DM Data Watch)启动和关闭顺序
    达梦数据库的DM数据守护(DMDataWatch)启动和关闭顺序一数据守护关闭1退出监视器2关闭备机的守护进程[dmdba@test2arch]$DmWatcherServiceDMSVR02stopStoppingDmWatcherServiceDMSVR02:[OK]3关闭主机的守护进程[dmdba@test1~......
  • 微信小程序nodejs+vue+uniapp学生选课系统dmkas源码lw包安装
    系统分为学生和管理员,教师三个角色小程序端运行软件 微信开发者工具/hbuiderxuni-app框架:使用Vue.js开发跨平台应用的前端框架,编写一套代码,可编译到Android、小程序等平台。基于微信小程序学生选课系统后台是本系统分为学生,教师,管理员三个角色,学生的主要功能是查看课程介......
  • podman 不运行容器的情况下,如何查看镜像中的文件
    前言podman在镜像容器启动的情况下,可以通过podmanexec-it容器名/容器idsh/bash登录到容器内部,查看内部文件系统。但如果不想启动容器,只用podmancreate的方式创建临时容器,没办法通过podmanexec进入容器,只能用podmancp从容器中拷贝文件。在ai的帮助下,通过试验验......
  • NDM 小记
    NDM1、什么是ndmNeatDownloadManager(简称NDM)是一款免费且轻量级的多线程下载工具,支持Windows和macOS操作系统。这款软件的特点在于它能够有效地提升网络下载速度,并且具有简单的用户界面,易于上手。最重要的是:体积小且免费!!!2、安装ndm下载地址:https://www.neatd......