数据仓库--数据分层(ETL、ODS、DW、APP、DIM)
参考:
https://www.cnblogs.com/itboys/p/10592871.html 数据仓库--通用的数据仓库分层方法
数据仓库各层说明:
一、数据加载层:ETL(Extract-Transform-Load)二、数据运营层:ODS(Operational Data Store)三、数据仓库层:DW(Data Warehouse)1. 数据明细层:DWD(Data Warehouse Detail)2. 数据中间层:DWM(Data WareHouse Middle)3. 数据服务层:DWS(Data WareHouse Service)四、数据应用层:APP(Application)五、维表层:DIM(Dimension) |
分层好处:
清晰数据结构:每一个数据分层都有它的作用域和职责,在使用表的时候能更方便地定位和理解
减少重复开发:规范数据分层,开发一些通用的中间层数据,能够减少极大的重复计算
统一数据口径:通过数据分层,提供统一的数据出口,统一对外输出的数据口径
复杂问题简单化:将复杂的任务分解成多个步骤来完成,每一层只处理单一的步骤,比较简单和容易理解。当数据出现问题之后,不用修复所有的数据,只需要从有问题的步骤开始修复。
屏蔽原始数据的异常:不必改一次业务就需要重新接入数据。
我们将数据模型分为三层:数据运营层( ODS )、数据仓库层(DW)和数据应用层(APP):
ODS层存放的是接入的原始数据,DW层是存放我们要重点设计的数据仓库中间层数据,APP是面向业务定制的应用数据。
一、数据运营层:ODS(Operational Data Store) 一般来讲,为了考虑后续可能需要追溯数据问题,因此对于这一层就不建议做过多的数据清洗工作,原封不动地接入原始数据即可,至于数据的去噪、去重、异常值处理等过程可以放在后面的DWD层来做。 二、数据仓库层:DW(Data Warehouse) 1. 数据明细层:DWD(Data Warehouse Detail) 该层一般保持和ODS层一样的数据粒度,并且提供一定的数据质量保证。同时,为了提高数据明细层的易用性,该层会采用一些维度退化手法,将维度退化至事实表中,减少事实表和维表的关联。 另外,在该层也会做一部分的数据聚合,将相同主题的数据汇集到一张表中,提高数据的可用性,后文会举例说明。 2. 数据中间层:DWM(Data WareHouse Middle) 该层会在DWD层的数据基础上,对数据做轻度的聚合操作,生成一系列的中间表,提升公共指标的复用性,减少重复加工。 直观来讲,就是对通用的核心维度进行聚合操作,算出相应的统计指标。 3. 数据服务层:DWS(Data WareHouse Servce) 又称数据集市或宽表。按照业务划分,如流量、订单、用户等,生成字段比较多的宽表,用于提供后续的业务查询,OLAP分析,数据分发等。 一般来讲,该层的数据表会相对比较少,一张表会涵盖比较多的业务内容,由于其字段较多,因此一般也会称该层的表为宽表。 在实际计算中,如果直接从DWD或者ODS计算出宽表的统计指标,会存在计算量太大并且维度太少的问题,因此一般的做法是,在DWM层先计算出多个小的中间表,然后再拼接成一张DWS的宽表。由于宽和窄的界限不易界定,也可以去掉DWM这一层,只留DWS层,将所有的数据在放在DWS亦可。 三、数据应用层:APP(Application) 四、维表层(Dimension) 高基数维度数据:一般是用户资料表、商品资料表类似的资料表。数据量可能是千万级或者上亿级别。 低基数维度数据:一般是配置表,比如枚举值对应的中文含义,或者日期维表。数据量可能是个位数或者几千几万。 至此,我们讲完了数据分层设计中每一层的含义,这里做一个总结便于理解,如下图。 |
主题(Subject)是在较高层次上将企业信息系统中的数据进行综合、归类和分析利用的一个抽象概念,每一个主题基本对应一个宏观的分析领域。在逻辑意义上,它是对应企业中某一宏观分析领域所涉及的分析对象。例如“销售分析”就是一个分析领域,因此这个数据仓库应用的主题就是“销售分析”。
各层示例应用说明:
如下图,可以认为是一个电商网站的数据体系设计。我们暂且只关注用户访问日志这一部分数据。
|
不同的层次中会用到什么计算引擎和存储系统:
数据层的存储一般如下: Data Source:数据源一般是业务库和埋点,当然也会有第三方购买数据等多种数据来源方式。业务库的存储一般是Mysql 和 PostgreSql。 ODS 层:ODS 的数据量一般非常大,所以大多数公司会选择存在HDFS上,即Hive或者Hbase,Hive居多。 DW 层:一般和 ODS 的存储一致,但是为了满足更多的需求,也会有存放在 PG 和 ES 中的情况。 APP 层:应用层的数据,一般都要求比较快的响应速度,因此一般是放在 Mysql、PG、Redis中。 计算引擎的话,可以简单参考图中所列就行。目前大数据相关的技术更新迭代比较快,本节所列仅为简单参考。 |
从能力范围来讲,我们希望80%需求由20%的表来支持。直接点讲,就是大部分(80%以上)的需求,都用DWS的表来支持就行,DWS支持不了的,就用DWM和DWD的表来支持,这些都支持不了的极少一部分数据需要从原始日志中捞取。结合第一点来讲的话就是:80%的需求,我们都希望以对应用很友好的方式来支持,而不是直接暴露给应用方原始日志。
数据仓库--数据分层(ETL、ODS、DW、APP、DIM)相关推荐
- 详解数仓中的数据分层:ODS、DWD、DWM、DWS、ADS
何为数仓DW Data warehouse(可简写为DW或者DWH)数据仓库,是在数据库已经大量存在的情况下,它是一整套包括了etl.调度.建模在内的完整的理论体系. 数据仓库的方案建设的目的,是为前 ...
- 数据体系建设-ODS|DW|TDM|ADS介绍
参考书目<数据中台:让数据用起来> ODS:各业务生成的基础数据存表,如log日志数据等 DW:在ods基础上,分主题整合数据 TDM:存储标签数据 ADS:基于上面的数据源整合而成的供业 ...
- 数据仓库物理分层_大数据之数据仓库分层
大数据之数据仓库分层 什么是数据分层? 数据分层的好处 一种通用的数据分层设计 举例 各层会用到的计算引擎和存储系统 分层实现 数据分层的一些概念说明 7.大数据相关基础概念 1. 什么是数据分层? ...
- 数据分层详解ODS、DWD、DWM、DWS、ADS
详解数仓中的数据分层:ODS.DWD.DWM.DWS.ADS 何为数仓DW Data warehouse(可简写为DW或者DWH)数据仓库,是在数据库已经大量存在的情况下,它是一整套包括了etl.调度 ...
- 大数据基础知识科普--数据分层(ETL、ODS、DW、DWD、DWM、DWS、DIM)
零.数据加载层:ETL(Extract-Transform-Load) 一.数据运营层:ODS(Operational Data Store) 二.数据仓库层:DW(Data Warehouse) 1 ...
- 数据仓库ods层是啥意思_数据仓库和数据分层
数据仓库,Data Warehouse,可简写为DW或DWH.是面向主题的.集成的(非简单的数据堆积).相对稳定的.反应历史变化的数据集合,数仓中的数据是有组织有结构的存储数据集合,用于对管理决策过程 ...
- 数据分层/ODS/DW/DM
数据分层/ODS/DW/DM 数据分层 数据分层的目的 ODS层 (Operational Data Store 又称数据运营层) DW层(data warehouse 数据仓库) DM层 (data ...
- 数据仓库分层ODS DW DM 主题 标签
数据仓库知识之ODS/DW/DM - xingchaojun的专栏 - CSDN博客 数据仓库为什么要分层 - 晨柳溪 - 博客园 数据仓库的架构与设计 - Trigl的博客 - CSDN博客 数据仓 ...
- 【漫谈数据仓库】 如何优雅地设计数据分层
http://bigdata.51cto.com/art/201710/554810.htm 一.文章主题 本文主要讲解数据仓库的一个重要环节:如何设计数据分层!其它关于数据仓库的内容可参考之前的文章 ...
- 详解数据仓库和数据集市:ODS、DW、DWD、DWM、DWS、ADS
一.数据流向 二.应用示例 三.何为数仓DW Data warehouse(可简写为DW或者DWH)数据仓库,是在数据库已经大量存在的情况下,它是一整套包括了etl.调度.建模在内的完整的理论体系. ...
最新文章
- 多用户商城系统 KgMall2.1公布
- Makefile 使用总结【转】
- 目标检测比赛中的 trick
- github上面如何编辑README
- 前端学习(3154):react-hello-react之脚手架文件介绍
- 为什么服务端程序都需要先 listen 一下?
- 大数据产品开发流程规范_华为内部资料流出!揭秘华为数据湖:3大特点、6个标准、入湖流程...
- Memcached 学习---(5)set 命令
- 第一次使用并配置Hibernate
- python modbus类封装_如何避免从入门到放弃——python小组学习复盘
- python轻量级web开发框架Flask学习使用
- NPDP国际产品经理认证是什么?看完你就懂了
- 固态硬盘系统经常假死_电脑更换固态硬盘后仍然出现卡顿、假死问题如何解决...
- c语言程序中a表示什么区别,C语言中if(!a)表示什么意思?
- vue3 项目中 watch 各种不触发
- 基于python和SQLite的NBA历年MVP变化趋势可视化分析
- CAD多段线无法合并的问题
- TurnipBit—MicroPython开发板:妥妥拽拽零基础也能玩编程
- 高校宿舍管理系统详细需求分析说明书
- Java+MySQL基于SSM的在线论坛交流系统
热门文章
- HIVE SQL DDL语句实例
- ad域管理与维护_windows server2012创建AD域服务器
- linux根目录下各子目录的作用
- python中文版下载32位-Python 2 32位
- php有没有ispostback,php用什么表示IsPostBack?
- linux lammps 安装教程,LAMMPS安装总结
- 红蓝对抗之win10 权限提升
- 如何拼局域网所有ip_怎么查看 同一个局域网内连的所有的IP地址 - 卡饭网
- java 小型超市管理系统_基于jsp的小型超市管理系统-JavaEE实现小型超市管理系统 - java项目源码...
- ROS机器人操作系统学习记录