人法地,地法天,天法道,道法自然。
——《老子· 道经· 第二十五章》
文章目录
前言
记录本人实际工作中接触到的各类主题域和数据域,结合自身的经验和对主题域的理解谈谈其划分标准。
一、基本概念
主题域是我们对数据仓库模型的主观分类,划分主题域的意义在于方便数据的管理和应用。
二、划分标准
(一)根据公司业务过程划分
- 适用于公司业务模式较为单一或数据源较为统一(形成类似数据湖)的场景。
- 比如电商会有用户下单,仓库发货这样的业务过程,那么可以划分订单域和仓库域,分别记录订单的数据和仓库的数据。
(二)根据公司产品线&部门划分
- 适用于公司规模较大,各产品线差异大,各部门数据也相对独立的场景。
- 比如公司有2B营销部和2C营销部,这两个部门有各自的团队,不同的销售模式,甚至数据源也分开,这时可以按产品线划分2B营销部域和2C营销部域,后期业务扩张也可以直接数仓划分租户,物理隔离数据,形成垂域。
(三)根据数据源系统划分
- 适用于公司规模不大,有多个未私有化部署的SAAS系统,数据源种类很多且各自相对独立,公司业务模式也多的场景。
- 比如公司有内部自研的系统(网上商城等)和外部购买的系统(金蝶、纷享销客等),各系统已经天然形成了相对独立的数据,这样直接按数据源归属的系统划分更直接,避免模型报表在确定主题域归属时扯皮。
三、主题域和数据域的差别
在我看来,主题域和数据域的差别不大,因为它们都是人主观确定的。主题域一般是针对DIM表,DWD表和DWS表,ADS表不限制一定要归属到某个主题域(因为ADS可能需要多个主题域结合起来构建,便于分析数据)。
四、生产中的主题域实例
- 本人刚开始接触数据仓库时是在一个大厂,该大厂的数仓已经非常成熟,主题域大部分都是直接根据产品线划分并且形成各自的垂域,各垂域之间物理隔离开,各自建设自己垂域的数仓模型,最外层也有整体的融合模型。这样划分是因为大厂的业务量巨大,每个产品线之间的业务差别也很大,本身相互独立有各自的团队,数据都来源于数据湖,另一方面也为了数据安全考虑直接按产品线来划分。
- 本人目前是在一个IOT公司工作,不像大厂的数据量那么庞大,但数据源千奇百怪(公司购买使用了多个SAAS系统并且没有做私有化部署,有些系统也是自研),有连接云端数据库接入,也有接口等等,各产品线的数据相关联,可能来源于同个SAAS系统。刚开始一级主题域按业务过程划分,比如库存、生产、销售、售后、客户、设备等等,二级主题域按业务系统划分,比如金蝶、纷享销客系统等等。数仓建设一段时间后发现对于一级主题域的确认时常会有扯皮的情况,DWS出现多个二级主题拼接成表,数据杂糅复用率低的情况。
- 通过重构,确定将一级主题域改为按业务系统划分,比如金蝶、纷享销客、EOMS等等,不设二级主题域。建模时DWD完全按照各业务系统构建其业务链路,各自相对独立,特殊的筛选条件改为字段展示,覆盖面更广。DIM中数据可能会是多个系统数据的拼接扁平化处理,不设二级主题域,主数据平台和多个系统共用的DIM设为公共域,其他各系统内部的维度与DWD的一级主题域对应。BI系统日志也归属于公共域,不设二级主题域。
总结
人法地,地法天,天法道,道法自然。出自《老子· 道经· 第二十五章》,世间各主体都有各自的规则。
主题域的划分类似于“道”,“道”可以不同,或者说每个公司都有各自不同的业务,会有不同场景,我们划分主题域时最重要的是结合公司自身情况考虑,综合业务方,分析师,产品经理的意见定出合适的主题域。
版权归原作者 张六十zhangliushi 所有, 如有侵权,请联系我们删除。