大家好,我是一哥,前几天跟一个朋友聊了一些数据中台建设的内容,针对数据仓库中主题域如何划分这个话题聊了很多。其实数据仓库建设的理论大家已经都知道了不少,也看过不少书,那么在实际建设数据仓库中,我们还是会遇到各种问题。
前段时间招人,面试了几个简历上都写了有3年以上数仓开发的,当我问他“如何确定主题域?”,他却说“我来公司的时候已经都搞好了……”,再问他“如果进入一个新领域,从0到1搭建数仓,怎么确定主题域呢?” 他就蒙了……
今天一哥带你一起聊聊主题域如何划分?
01、什么是主题
主题是在较高层次上将企业信息系统中的数据进行综合、归类和分析利用的一个抽象概念,每一个主题基本对应一个宏观的分析领域。在逻辑意义上,它是对应企业中某一宏观分析领域所涉及的分析对象。
简单说,一个主题对应一个分析对象。分析对象就是在决策、分析时重点关注的东西,这个东西其实是非常主观的,在不同的企业,或者企业的不同发展时期,所关注的点会不一样,从而影响有些主题可能存在或者不存在。
数据仓库是面向主题的应用,主要功能是将数据综合、归类并进行分析利用。数据仓库模型设计除横向的分层外,通常还需要根据业务情况纵向划分主题域。主题域是业务对象高度概括的概念层次归类,目的是便于数据的管理和应用。
02、如何划分主题
划分主题域方法
在业务调研之后,可以进行主题域的划分。划分主题域,需要分析各个业务模块中有哪些业务活动。通常我们按照以下方法划分主题域,可以按照用户企业的部门划分,也可以按照业务过程或者业务板块中的功能模块划分。
按照系统划分:业务系统有几种,就划分为几类
-
按业务过程划分:比如业务系统中有商品、交易、物流等
-
按部门规划:比如公司内的生产、供应链、研发、销售等
目前有些成熟的行业,比如电信、银行,他们也是最早用数据仓库的行业,已经形成了一些规范,可以直接按照规范来就行了。其中IBM金融数据模型数据存储模型FSDM,是金融行业应用极为广泛的数据模型,可以作为我们构建企业级数据仓库主题域模型划分的重要依据。
对于新兴的一些行业,或者业内没有形成标准的话,那么就可以参照上面的几类方法,进行分类,先从边界清晰的系统入手进行建设,形成经验后逐步推到各个系统中。
个人比较推荐通过业务系统来进行一级主题域划分,这样边界就会很明显,数据仓库开发过程中不会因为模型主题的归属“扯皮”,然后根据各个系统中的业务过程划分二级主题域目前我参与过的两个数据仓库建设项目也都是这样搞的。
主题域的核心
为保障整个体系的生命力,主题域需要抽象提炼,并长期维护更新,但不轻易变动。划分数据域时,需满足以下两点:
能涵盖当前所有的业务需求。
能在新业务进入时,无影响地被包含进已有的主题域中和扩展新的主题域。
一次能划分好主题域吗
首先,主题域是无法一次划分完整的,一般是一次先建立几个明确的主题,在大多数数据仓库的设计过程中都有一个主题域的选择过程。业务是一直发展的,因此设计之初不要想着一次把所有主题全部划分完整。我们可以遵循上面说的划分主题域的两个要点,后续采用迭代的方式补充。
03、总结
数据仓库建设是一套方法论,但并不是一个“定理”,可能不会有完全符合你实际公司业务的“公式”,我们需要学习这些方法论,然后结合自己公司实际的业务场景来实现,只要能有序的把数据管控起来,同时又能高效的帮助数据分析,实现业务价值就好了,不必一味的追求“行业标准”。