1. 肥喵工作室首页
  2. 行业

数据中台实战:数据中台的分层建模体系

数据中台实战:数据中台的分层建模体系

数据中台是一个用技术连接大数据计算存储能力,用业务连接数据应用场景能力的平台。数据中台把数据统一之后,会形成标准数据,再进行存储,形成大数据资产层,进而为客户提供高效服务。这些服务跟企业的业务有较强关联性,是这个企业独有且能复用的。本文作者从数据中台角度出发,对数据中台分层体系进行分析,希望能帮助你。

数据中台实战:数据中台的分层建模体系

数据中台数据模型的分层,业界比较通用的分层方式是将数据模型分为5层:①ODS(Operate Data Store,操作数据层)、②DIM(Dictionary Data Layer ,维度数据层)、③DWD(Data Warehouse Detail ,明细数据层)、④DWS(Data Warehouse Service,汇总数据层)、⑤ADS(Application Data Store,数据应用层)。

各层数据模型之间的关系如图1-1所示。

数据中台实战:数据中台的分层建模体系

图1-1 分层模体系

第一层是ODS和DIM层。ODS层数据是数据仓库的第一层数据,是业务数据库的原始数据的复制,例如,每条产品线的用户信息、订单信息等数据一般都是原封不动地同步到数据中台的ODS层中。ODS层的作用是在业务系统和数据仓库之间形成一个隔离层,在数据中台进行计算任务时,可以以ODS层的数据为基础进行计算,从而不给业务数据库增加负担。DIM层存储的是维度数据如城市、省份、客户端等维度的数据。

第二层是DWD。DWD层数据是数据仓库的第二层数据,一般是基于ODS和DIM层的数据做轻度汇总。DWD层储存经过处理后的标准数据,需要对ODS层数据进行再次清洗(如去空/去脏数据、去超过极限的数据等操作)。DWD层的结构和粒度一般与ODS层保持一致,但是DWD汇总了DIM层的维度数据,比如在ODS层只能看到客户端的ID字段,但是在DWD不但能看到客户端ID字段,还能看到客户端的名称字段。

第三层是DWS层。DWS层数据是数据仓库的第三层数据,是以DWD层的数据为基础进行汇总计算的数据。DWS层都是各个维度的汇总数据,比如某日某产品线的访问用户数、收藏用户数、加购用户数、下单用户数、支付用户数等。

第四层是ADS层。ADS层数据是数据仓库的最后一层数据,以DWS层数据为基础进行数据处理。设计ADS层的最主要目的就是给数据可视化应用提供最终的数据。后端开发工程师基于ADS层的数据将最终数据结果以接口的形式展示给数据中台的应用层。

数据仓库为什么要分层建模呢?我们还是通过实际案例来理解。假设还是要统计某条产品线A当月的交易额,如果没有采用分层建模,那么数据统计就是以结果导向的,直接提取业务数据库中的产品线A的订单时间、订单金额,然后筛选时间为当月的订单,并基于订单金额做汇总计算,最后通过接口的方式将数据输出到应用层。

如果采用分层建模,第一步是将业务数据库的数据同步到ODS层中,第二步是通过DWD丰富统计指标的维度,目前案例中的需求是时间维度,可以预先增加其他常用的维度如产品线、客户端的维度,第三步是在DWD层汇总各个维度的交易额,第四步是基于现在的需求,计算出产品线A的当月交易额,在ADS层提供要显示的数据。

在实际数据中台项目中针对数据指标的开发,有以下2种情况比较常见。

(1)数据指标口径发生变化。随着业务的变化,数据指标的统计口径不是一成不变的,数据指标经常会基于业务目标的变化而变化,相应的统计逻辑也会变化。

(2)增加数据指标的统计维度。单个维度的数据指标统计随着业务的发展有可能不再满足需求,此时很有可能遇到给数据指标增加统计维度的情况,数据指标的统计维度越丰富,就越有利于数据分析。

针对这两种情况我们分别看一下没有分层建模和分层建模的区别。

首先是第一种情况。

数据指标的统计口径发生了变化,比如统计口径由之前的统计产品线A的当月全部订单的交易额变为统计产品线A当月的订单状态为“已支付”的订单的交易额。此时其实数据指标并没有发生变化,仍然叫“交易额”,但是统计口径发生了变化。

如果没有进行分层建模,那么对外的接口要增加订单状态筛选的逻辑,再进行测试、核对数据、发布新版本接口才能完成针对交易额统计的优化。

如果进行了分层建模,ADS层、DWD层的数据是不用变化的,因为业务数据库的原始数据没有变化。此外,因为数据指标的显示没有变化,所以只需针对DWS层增加筛选订单状态为“已支付”的统计逻辑,然后由数据开发工程师、测试工程师测试DWS层并统计数据即可,不用发布新版本的对外接口,所以应用层并不用再针对接口做对接。

再看第二种情况。

给数据指标增加统计维度,比如不但要查看产品线A的当月交易额,还要查看产品线A的当月安卓端、iOS端的交易额。如果没有进行分层建模,每增加一个维度就增加一倍的工作量,要重新修改计算逻辑、重新定义对外接口、重新测试、重新发布新的版本才能完成数据指标的新的维度统计。

如果进行了分层建模,由于DWD层和DWS层已经丰富了交易额的维度如产品线、客户端等,那么只需后端开发工程师在通过接口提取ADS层数据时新增维度“安卓端”和“iOS端”的统计结果,然后重新发布对外的接口即可,由于新的数据指标统计不需要数据开发工程师的参与,所以大大减少了数据中台开发的工作量。

肥喵运营推广

本文“数据中台实战:数据中台的分层建模体系”由肥喵转载自互联网,不代表我们的立场,如有侵权请联系我们删除
转载联系作者并注明出处:https://feimiaomiao.com/hangye/10871