美文网首页
数据分层初理解

数据分层初理解

作者: 板蓝根泡泡面 | 来源:发表于2019-05-25 23:01 被阅读0次

数据分层的目的在于让数据有序的流转,在数据的整个生命周期中更清晰的被感知到(血缘追踪?目前还不是太理解)。

关于数据分层,重点应该是在于功能、数据流,而不是形式,例如一定要分几层,一定要叫什么名字。

从功能上,要专注于每一层的功能,每一层的功能都应该是独立的,上一层的工作应当会顺理成章的为下一层的工作的前置。


功能.png

在数据流上来看,数据在数仓中的流动应当是单向的,从上游到下游,在单层中的数据,也应当是单向的,既数据间的依赖关系可以理解为一个有向无环图,如下图

数据流

应当尽量避免如虚线所示的B+E=>F,更应当杜绝出现橙色实线的样式。

单向的功能和数据流可以显而易见的有助于进行数据追溯。

数据分层所用的到技术即数仓的选型要从数仓与数据库的区别来看:

  1.数据库的多是OLTP型的数据库,如Mysql、Oracle等,一般用来服务业务系统,重点在于吞吐量、响应速度。

  2.数仓,在选型上不一定就是hadoop生态的,使用Oracle、Mysql等也是可以用来做数仓,数仓的重点在于历史数据的存储、分析。

此处对数仓和数据库的区别不做过多的分析,等自己理解更深了再来写。不过虽然数仓在选型上不一定是hadoop生态,但是数据库基本上不会用hive。


ods层:

功能上来看,第一层是起到作用是数据汇集,数据流上来看,这一层是所有数据的入口。同时,这一层也可以将数据仓库和源端进行隔离。

数据汇集的概念很好理解,将多个业务库的数据汇集到一起,源端可能是Oracle、mysql这种结构化数据库,也可能是mongodb等半结构化的数据库,可能是交易数据、埋点也有可能是各种日志,可能是自建的数据库,也可能是在云上,在汇集的时候需要对不同的源端做不同处理,例如工具的选用、抽取的方式是全量还是增量都需要经过衡量。

从ODS向后,就是数据仓库了,这就是形式上的隔离。而有的数据仓库因为权限的问题,需要在源端与数仓之间加一个中间层,也可以看作是一种隔离。隔离还有着管理、技术、运维等方面的意义,待以后想清楚了再写。

DW层:

DW一般又分为DWD、DWS和DWM层。

DWD层:该层的主要功能是对ODS层的数据的补充,例如增加注释,将维度表退化到事实表中,这样做的好处是数据在进行使用的过程中减少了表之间的关联。

DWS(DWM):从功能上来说因为DWS和DWM层的功能很类似,例如指标的计算的中间表,按照业务划分形成客户、产品等不同的主题域,本质上都是对上一层的数据进行聚合,所以二者之间的区别并不明显。一般来讲,该层的表的数量会比之前少,但是表的字段会增加,具体如下图所示:


数据建模.png

APP层:

本层的数据对外提供应用,如果是提供业务使用,放在关系型数据库会比较好,也有可能是用来做数据分析、挖掘,例如报表的产出等,这种情况下还是在hive中比较合适。这一层的难点在于如何提供符合要求的数据。
以上的分层往往都是针对业务数据而言,但是对数据仓库还有一类不得不提的数据:维度表。这类数据的作用在DWD层会对事实表做退化,做完维度退化以后,这类数据的功能性便会大大降低,但是一个数据仓库不应该只是存储了一堆数据,还应该有相应的规范,例如流程、运维等,这类数据是否需要一个单独的分层来作为一个输出的规范呢。。。。我目前感觉是有那么点必要性的。

相关文章

  • 数据分层初理解

    数据分层的目的在于让数据有序的流转,在数据的整个生命周期中更清晰的被感知到(血缘追踪?目前还不是太理解)。 关于数...

  • 数据仓库--通用的数据仓库分层方法(转载)

    概述 数据分层是数据仓库设计中十分重要的一个环节,优秀的分层设计能够让整个数据体系更易理解和使用。而目前网络中大部...

  • 一种通用的数据仓库分层方法

    0x00 概述 数据分层是数据仓库设计中十分重要的一个环节,优秀的分层设计能够让整个数据体系更易理解和使用。而目前...

  • DataTalk:ODS层的数据需要做数据清洗吗?

    0x00 前言 本篇的主题是数据分层中的ODS的作用,关于数据分层可以参考本篇博客:如何优雅地设计数据分层。 下面...

  • 数据分层

    为什么要做数据分层 尽量用20%的表满足80%的需求!!! 清晰数据结构 减少重复开发 统一数据口径 复杂问题简单...

  • 数据分层

    传统的数据仓库一般分为4层模型:STG、ODS、DW、DM。STG层主要是面向批处理的形式,如果是根据日志信息实时...

  • 数据仓库系列10- 数据仓库规范

    一. 数据模型架构原则 1.1 数据仓库分层 分层的好处: 清晰数据结构; 数据血缘追踪; 减少重复开发; 数据关...

  • DAO设计模式,学习笔记

    理解分层 前台:显示层和控制层 后台业务层:业务层和数据层,int ,double等业务层用基本类型,数据层用包装...

  • 2018-10-20-杨

    三、数据来源、模型设置与变量选取 (一)数据来源与样本描述 1.数据来源 课题组2015年年初通过分层聚类方法对农...

  • Tableau数据分层、数据分组、数据集

    Tableau 数据分层、数据分组、数据集 数据分层 钻取 数据分析中我们比较常用的是分析方式就是钻取,钻取可以改...

网友评论

      本文标题:数据分层初理解

      本文链接:https://www.haomeiwen.com/subject/qjqttctx.html