加入收藏 | 设为首页 | 会员中心 | 我要投稿 应用网_丽江站长网 (http://www.0888zz.com/)- 科技、建站、数据工具、云上网络、机器学习!
当前位置: 首页 > 服务器 > 系统 > 正文

数据仓库分层架构深度剖析

发布时间:2021-05-12 19:04:16 所属栏目:系统 来源:互联网
导读:我们在数仓项目的时候往往是需要将它分层的,但是为什么分层你真正的了解过吗,那它分层的好处又是什么呢。好我们今天就针对这个话题进行讲解。如果你还不了解数仓中的模型可以去看这篇(数仓模型设计详细讲解),编写不易请给个一键三连。图片 一、为什么要分

我们在数仓项目的时候往往是需要将它分层的,但是为什么分层你真正的了解过吗,那它分层的好处又是什么呢。好我们今天就针对这个话题进行讲解。如果你还不了解数仓中的模型可以去看这篇(数仓模型设计详细讲解),编写不易请给个一键三连。图片

一、为什么要分层

分层的主要原因是在管理数据的时候,能对数据有一个更加清晰的掌控,详细来讲,主要有下面几个原因:

清晰数据结构:

每一个数据分层都有它的作用域,这样我们在使用表的时候能更方便地定位和理解。

方便数据血缘追踪:

简单来说,我们最终给业务呈现的是一个能直接使用业务表,但是它的来源有很多,如果有一张来源表出问题了,我们希望能够快速准确地定位到问题,并清楚它的危害范围。

减少重复开发:

规范数据分层,开发一些通用的中间层数据,能够减少极大的重复计算。

把复杂问题简单化:

将一个复杂的任务分解成多个步骤来完成,每一层只处理单一的步骤,比较简单和容易理解。而且便于维护数据的准确性,当数据出现问题之后,可以不用修复所有的数据,只需要从有问题的步骤开始修复。

屏蔽原始数据的异常:

屏蔽业务的影响,不必改一次业务就需要重新接入数据

二、数仓分层思想

数据分层每个企业根据自己的业务需求可以分成不同的层次,但是最基础的分层思想,理论上数据分为三个层,数据运营层、数据仓库层和数据服务层。基于这个基础分层之上添加新的层次,来满足不同的业务需求。

数据运营层(ODS)

Operate data store(操作数据-存储),是最接近数据源中数据的一层,数据源中的数据,经过抽取、洗净、传输,也就说传说中的ETL之后,装入ODS层。本层的数据,总体上大多是按照源头业务系统的分类方式而分类的。例如:MySQL里面的一张表可以通过sqoop之间抽取到ODS层 ODS层数据的来源方式:

  • 业务库

经常会使用sqoop来抽取,比如我们每天定时抽取一次。在实时方面, 可以考虑用canal监听mysql的binlog,实时接入即可。

  • 埋点日志

线上系统会打入各种日志,这些日志一般以文件的形式保存,我们可以选择用flume定时抽取,也可以用用spark streaming或者Flink来实时接入,当然,kafka也会是一个关键的角色。

  • 消息队列

来自ActiveMQ、Kafka的数据等

数据仓库层(DW)

Data warehouse(数据仓库)。在这里,从ODS层中获得的数据按照主题建立各种数据模型。例如以研究人的旅游消费为主题的数据集中,便可以结合航空公司的登机出行信息,以及银联系统的刷卡记录,进行结合分析,产生数据集。在这里,我们需要了解四个概念:维(dimension)、事实(Fact)、指标(Index)和粒度( Granularity)。

DW数据分层,由下到上为 DWD,DWB,DWS

DWD:data warehouse detail 细节数据层,是业务层与数据仓库的隔离层。DWB:data warehouse base 基础数据层,存储的是客观数据,一般用作中间层,可以认为是大量指标的数据层。

(编辑:应用网_丽江站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读