数仓建模理论-数据域和主题域
数据域是指面向业务数据,将业务过程进行抽象的数据集合。那这里先说什么是业务过程,其实个人的理解叫业务事件比叫业务过程更容易理解一点。业务过程可以概括为一个个不可拆分的行为事件。比如在电商业务中的店铺商品浏览事件、页面点击事件、加购入车事件、下单事件、支付事件、确认收货事件都是电商业务中的业务事件。再比如抖音短视频上浏览视频时间、点赞事件、评论事件、转发事件、关注事件等等都是短视频业务中的业务事件。然后我们要对这些业务过程中产生的数据进行抽象提炼,并将这些数据分类到不同的数据集合中,这个数据集合就是数据域。
在电商业务中,我们对电商业务中产生的业务数据划分数据域,可以划分为:
商品域:商品库存、上架、下架等
日志域:店铺商品的浏览、点击等
交易域:加购物车、下单、支付、确认收货、退款等
用户域:注册、登录、信息修改等
服务域:申诉、投诉、催退款、评价等
主题域是面向业务分析的,根据不同的业务分析需求,将数据域中的数据重新划分至不同的集合。
数据域是自下而上的,以业务数据视角进行数据划分。思考的过程是,我总体的业务有哪些业务过程,这些业务过程产生了哪些数据,这些按什么分类划分到一个集合中,这个集合就是数据域。
主题域是自上而下的,以业务分析视角进行数据划分。思考的过程是,我的总体业务是怎样的,我要从哪些角度对业务进行分析,那这些分析需求需要什么数据,那把分析需求要用的数据放在一个集合中,这个集合就是主题域。
拿生活中的例子来说:数仓建设就像是饭店做菜一样,数仓在面向业务数据根据其特点划分出数据域,如同厨房根据采购的食材特点将它们摆放在不同的货架区,如肉禽区、果蔬区、调味区等。而数仓在面向业务分析根据其需求划分出主题域,如同饭店根据不同食客群体的口味需求将食材做成不同的菜系,如江浙菜、鲁菜、川菜等。然后后厨他们看到的肯定是数据域更多一些呀,但是饭店卖饭肯定不能拿出来数据域推销啊,他们得拿主题域来满足食客需求的呀,那这里大厨就得做菜了,把数据域的数据做成不同菜系(主题)的数据。