深度剖析企业需求,详解数据仓库分层架构

文 | 商业智能BI相关文章 阅读次数:466 次浏览
2023-10-11 11:04:23

一、数据仓库定义

数据仓库顾名思义,是⼀个很⼤的数据存储集合,出于企业的分析性报告和决策⽀持⽬的⽽创建,对多样的业务数据进⾏筛选与整合。

数据仓库本身并不“生产”任何数据,其数据来源于不同外部系统;同时数据仓库自身也不需要“消费”任何的数据,其结果开放给各个外部应用使用,这也是为什么叫“仓库”,而不叫“工厂”的原因。

二、通用数仓搭建思路

关于数据仓库的搭建,许多企业以这样或那样的架构方法扩展数据仓库,我们曾简单探讨过数仓分层的三层模型,即分为:数据引入层(ODS)、数据仓库层(DW)和数据服务层(ADS)。其中DW层又根据企业需要,可进一步分为基础层(DWD)、通用层(DWS)和公共维度数据区(DIM)。

三、大厂数仓架构升级案例

而以美团为例,他们的业务场景核心交易链路为:用户通过美团的各种用户终端(包括美团外卖的APP或者美团 APP、QQ/微信等)下单,然后商家接单、骑手配送,三个阶段完成一笔交易。这一系列交易过程,由包括用户端、商家端、配送平台、数据组、广告组等各个系统协同完成。

所以,最初美团的数仓架构设计如图所示,也主要分了四层,即为数据引入层(ODS)、数据明细层(DWD)、汇总层(DWS)和数据服务层(ADS)。

而16年以后,随着数据量、业务复杂度与团队规模的增长, 为更好完成业务需求数据组团队按照应用做拆分,美团对自己的数仓架构进行了升级和优化:

  • ODS:数据源层,主要职责是接入数据源,并做多数据源的整合。这不用多说,都和通用的原始数据层一致。

  • IDL:数据集成层,主要职责是:业务主题的划分、数据规范化,比如商家、交易、用户等多个主题,起到缓冲的作用,屏蔽底层影响,尽量还原业务,统一标准。这一层要注重特殊的两个概念,一是宽表,二是聚合表。宽表与 kimball 的 fact table 不一样,我们通常所说的fact table,实际上仅仅是明细表的统称,而宽表,则是把相关的事实表,都整合到一起,这样的好处,一是加快速度,二是一次查询更加全面。

  • CDL:数据组件层,用来完成聚合汇总,进一步按照粒度划分,完成年月日级的聚合。主要职责是划分分析主题、建设各个主题的基础指标,比如商家交易、用户活动等多个主题。这样针对同一个分析对象统一了指标口径,同时避免重复计算。至此,一个中央数据仓库就完成了。

  • MDL:数据集市层,按照业务单元,做数据集市。主要职责是建设宽表模型、汇总表模型,比如商家宽表、商家时段汇总表等。主要作用是支撑数据分析查询以及支持应用所需数据。

  • ADL:数据应用层,主要职责是建设应用分析、支撑多维分析应用,比如城市经营分析等。

虽然分层架构和通用分层架构差异较大,但是其实和通用的分层架构也是异曲同工,只不过是将数据分的更新,做更多的解耦。

四、数仓分层总结与思考

数据仓库分层没有绝对的规范,适合的就是最好的。一个好的数仓模型分层,应该具备的要素是数据模型可复用,完善且规范的。

  • 从完善度上来讲,主要衡量DWD层和DWS层两块的完善度,DWD层完善度,主要是希望DWD等尽可能被DWS层引用,ODS层被除了DWD层外的尽可能少的引用,最好是没有。
  • 从复用度上来讲,我们希望80%需求由20%的表来支持。直接点讲,就是大部分(80%以上)的需求,都用DWS的表来支持。
  • 从规范度上来讲,主要从表名、字段名来看,一个规范的表名应该包括层级、主题域、分区规则,抽取类型等信息。字段规范应该是和词根一致,同字段同名等。

至于分几层,数据工程师需按照企业目前的业务和建设现状,进行合理解构和分层设计,一般刚开始做,建议3、4层。规划1-1.5年的架构,然后不断的建设、优化、再优化,以满足当前所有业务需求。

在数字化时代下,数据仓库搭建和数据ETL处理对企业数据建设的重要性不言而喻,然而实现的困难有时也让人望而却步,因此选择合适的技术和工具会达到事半功倍的效果。

帆软FineDataLink——中国领先的低代码/高时效数据集成ETL工具,能过为企业提供一站式的数据服务,通过快速连接、高时效融合多种数据,提供低代码Data API敏捷发布平台,帮助企业解决数据孤岛难题,有效提升企业数据价值。

获取更多FineDataLink如何解决ETL和数仓搭建的问题和案例,请查看《帆软数据仓库和商业智能BI解决方案》

相关内容

立即咨询 立即咨询

在线客服

电话咨询

技术问题

投诉入口

返回顶部