数据仓库的分层,你知道吗?

数据仓库更多代表的是一种对数据的管理和使用的方式,它是一整套包括了数据建模、ETL(数据抽取、转换、加载)以及作用调度等在内的完整的理论体系流程。

数据仓库在构建过程中通常都需要进行分层处理。业务不同,分层的技术处理手段也不同。分层的主要原因是在管理数据的时候,能对数据有一个更加清晰的掌控。详细来讲,主要有如下几个原因。

  • 清晰的数据结构
    每一个数据分层都有它的作用域,在使用表的时候能更方便地定位和理解。
  • 将复杂的问题简单化
    将一个复杂的任务分解成多个步骤来完成,每一层只处理单一的问题,比较简单和容易理解。而且便于维护数据的准确性,当数据出现问题之后,可以不用修复所有的数据,只需要从有问题的地方开始修复。
  • 减少重复开发
    规范数据分层,开发一些通用的中间层数据,能够减少极大的重复计算。
  • 屏蔽原始数据的异常
    屏蔽业务的影响,不必改一次业务就需要重新接入数据。
  • 数据血缘的追踪
    最终给业务呈现的是一个能直接使用业务表,但是它的来源很多,如果有一张来源表出问题了,借助血缘最终能够快速准确地定位到问题,并清楚它的危害范围。

数仓的常见分层一般为三层,即数据操作层、数据仓库层和应用数据层(数据集市层)。当然根据研发人员经验或者业务,可以分为更多不同的层,只要能达到流程清晰、方便查数即可。

下面,通过一张图来展示数据仓库的分层情况,如图所示。

ODS(Operation Data Store 数据准备区)

数据仓库源头系统的数据表通常会原封不动的存储一份,这称为ODS层,也称为准备区。它们是后续数据仓库层加工数据的来源。ODS层数据的主要来源是业务数据库、埋点日志、其他数据源。

  • 业务数据库:可使用DataX、Sqoop等工具来抽取,每天定时抽取一次;在实时应用中,可用Canal监听MySQL的 Binlog,实时接入变更的数据。
  • 埋点日志:线上系统会打入各种日志,这些日志一般以文件的形式保存,可以用 Flume 定时抽取。
  • 其他数据源:从第三方购买的数据、或是网络爬虫抓取的数据。

DW(Data Warehouse 数据仓库层)

该层包含DWD、DWS、DIM层,由ODS层数据加工而成,主要是完成数据加工与整合,建立一致性的维度,构建可复用的面向分析和统计的明细事实表,以及汇总公共粒度的指标。

  • DWD(Data Warehouse Detail 细节数据层),是业务层与数据仓库的隔离层。以业务过程作为建模驱动,基于每个具体的业务过程特点,构建细粒度的明细层事实表。可以结合企业的数据使用特点,将明细事实表的某些重要维度属性字段做适当冗余,也即宽表化处理。
  • DWS(Data Warehouse Service 服务数据层),基于DWD的基础数据,整合汇总成分析某一个主题域的服务数据。以分析的主题为建模驱动,基于上层的应用和产品的指标需求,构建公共粒度的汇总指标事实表。
  • DIM(公共维度层 ),基于维度建模理念思想,建立一致性维度。
  • TMP层 :临时层,存放计算过程中临时产生的数据。

ADS(Application Data Store 应用数据层)

该层是基于DW层的数据,整合汇总成主题域的服务数据,用于提供后续的业务查询等。

数据仓库层次的划分不是固定不变的,可以根据实际需求进行适当裁剪或者是添加。如果业务相对简单和独立,可以将DWD、DWS进行合并。 下面,以第三方支付企业支付宝数据仓库体系结构为例进行展示,如下图所示。


数据仓库的分层,你知道吗?相关推荐

  1. oracle 逐层合计,Oracle数据仓库的分层管理器解决方案

    Oracle数据仓库的分层管理器解决方案以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 摘要 本文描述分层管理器的原理 ...

  2. 数据仓库架构分层设计

    数据仓库架构分层设计包括STG(数据缓冲层).ODS(数据操作层).DWD(数据明细层).DWS(主题汇总层)和ADM(数据应用层). 1.STG层 主要完成业务系统结构化数据引入到数据中台,保留业务 ...

  3. 数据仓库:分层设计详解

    文章目录 简介 一. Why?为什么要对数据仓库分层 二. How?数据仓库的ETL 1.分层的误区 三. 中台技术架构 四.数仓分层架构 五.贴源层 (ODS, Operational Data S ...

  4. 数据仓库物理分层_数据仓库逻辑分层

    OLTP 与 OLAP OLTP 联机事务处理 OLTP是传统关系型数据库的主要应用,主要用于日常事物.交易系统的处理 1.数据量存储相对来说不大 2.实时性要求高,需要支持事物 3.数据一般存储在关 ...

  5. 数据仓库为何分层,各层作用?

    优秀的分层设计能够让整个数据体系更易理解和使用 为什么要设计数据分层? 数据有秩序地流转,数据的整个生命周期能够清晰明确被设计者和使用者感知.简单说就是使数仓整体看起来层次清晰.依赖关系直观. 因此, ...

  6. 数据仓库物理分层_大数据之数据仓库分层

    大数据之数据仓库分层 什么是数据分层? 数据分层的好处 一种通用的数据分层设计 举例 各层会用到的计算引擎和存储系统 分层实现 数据分层的一些概念说明 7.大数据相关基础概念 1. 什么是数据分层? ...

  7. 数据治理系列:数据仓库物理分层_数据仓库逻辑分层

    OLTP 与 OLAP OLTP 联机事务处理 OLTP是传统关系型数据库的主要应用,主要用于日常事物.交易系统的处理 1.数据量存储相对来说不大 2.实时性要求高,需要支持事物 3.数据一般存储在关 ...

  8. 数据仓库dw层_数据仓库分层之辩

    前言,这篇文章最早见过是在2009年的某一个论坛上并保存了下来, 今天发出来读了一遍,不禁思考本质上这些年我们到底进步了什么? 数据仓库的分层可以算是数据仓库架构的子话题.在前段时间参与的一次讨论中, ...

  9. 【漫谈数据仓库】 如何优雅地设计数据分层

    http://bigdata.51cto.com/art/201710/554810.htm 一.文章主题 本文主要讲解数据仓库的一个重要环节:如何设计数据分层!其它关于数据仓库的内容可参考之前的文章 ...

  10. 数据仓库分层类型-具体实例

    数据仓库分层类型 架构发明者 建模方式[5] 著作 数据仓库特点 架构图 Kimball Ralph Kimbal 维度建模 The Data Warehouse Toolkit 自底向上 Inmon ...

最新文章

  1. OpenCV基础知识入门
  2. 【pytorch】StatScores的原理与使用
  3. HDU2025 查找最大元素
  4. python网络爬虫权威指南 百度云-分析《Python网络爬虫权威指南第2版》PDF及代码...
  5. ARCGIS导入XY坐标的EXCEL文档,出现无法选择X和Y字段的问题
  6. Simics系统模拟器
  7. 音视频技术开发周刊(第130期)
  8. TYVJ P1062 合并傻子 Label:环状dp
  9. 数据库中使用自增量字段与Guid字段作主键的性能对比(补充篇)-----转
  10. OpenCV绘图和注释
  11. 快速清除oracle多个表,Oracle数据库之批量清除一个表的数据,TB级别数据
  12. matlab许可证_MATLAB校园许可证更新指南
  13. 常用的图像处理标准图片汇总
  14. Google系列Android手机无法联网/无法上网/WIFI网络受限等问题的解决方法
  15. java连接twitter登录,android中接入twitter进行第三方登录
  16. 【JY】有限单元分析的常见问题及单元选择
  17. vue实现视频播放器功能,你学会了吗
  18. windows10 javac错误:javac不是内部或外部命令 也不是可运行的程序
  19. 八进制在计算机系统中的应用场景,二进制、八进制、十进制、十六进制都能干什么? 十六进制计算器使用场景...
  20. dbvisualizer pro导入导出数据

热门文章

  1. hilbert希尔伯特变换
  2. c语言图形时钟编程,c语言程序+图形编程——打造简易的时钟
  3. 「2021年」国内主流短信验证码平台综合评测
  4. 三菱plc232数据线驱动下载_三菱FX系列PLC没有编程电缆,通过DIY232串口下载程序...
  5. 0/0型极限等于多少_高数求极限的一些总结
  6. 毕业设计-基于Javaweb实现超市管理系统
  7. 番茄时间法--2018年1月26号
  8. 苹果4s怎么越狱_越狱软件续签教程
  9. WBS和TASK的区别?
  10. 复盘:windows ubuntu 双系统引导恢复、分区表恢复