数据仓库分层架构总结

数据仓库分层架构

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

数据运营层(ODS)

Operate data store,操作数据存储,是最接近数据源中数据的一层,数据源中的数据,经过抽取、洗净、传输,也就说传说中的ETL之后,装入本层。本层的数据,总体上大多是按照源头业务系统的分类方式而分类的。

例如:MySQL里面的一张表可以通过sqoop之间抽取到ODS层

ODS层数据的来源方式:

  • 业务库

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

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

    • 来自ActiveMQ、Kafka的数据等

数据仓库层(DW):

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

同时,我们上面学习的:星型模型雪花模型星座模型等设计模型,就是在DW层做实现的。

应用层(ADS):

该层主要是提供数据产品和数据分析使用的数据,一般会存放在ES、MySQL等系统中供线上系统使用,也可能会存在Hive或者Druid中供数据分析和数据挖掘使用。

例如:我们经常说的报表数据,或者说那种大宽表,一般就放在这里。

对于部分公司来说,根据其业务不同,DW成可以进行相应的细化,如:DWD,数据细节层等,具体根据业务需求。

三大层是基础架构,其中DW层是干活的层,针对这一层可以基于公司业务进行对应的细化。

比如,在前面学习的宽表,部分企业也会采用宽表的设计方式,将DW细化为两层或者更多层:

  • 最下面一层是针对不同业务种类的各种宽表,每一个表都尽可能将所有维度都汇集到一起
  • 上面一层可以是针对宽表进行业务开发生成的中间结果,这个层级比较对应普通的DW层的概念。
  • 或者根据业务,可以设计更高的层级出来。

总结

三层架构,是最基础和最常见的业务架构,其主体思想是:原始 -> 处理 -> 利用 的三大阶段。
基于这个基础,企业可以根据自身业务对这三个层级进行相应的划分,无论对哪个层级都能进行细化,具体如何细化,就看业务需求了。
但大多数都不会偏离: 原始 -> 处理 -> 利用 这个主题思想的。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

yida&yueda

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值