关于主题域划分的碎碎念?

关于主题域划分的疑问

主题间应该尽量不交叉使用,但是在轻度汇总层以上,非常容易交叉。如电商,会有用户主题、交易主题,那么,用户交易应该属于哪个?

结论

个人观点,主题域之间的交叉使用无法避免,对于用户交易这样粒度的汇总表,放到以实体为主的用户主题中,不在交易主题中体现,交易主题中体现的是最细粒度的轻度汇总。

即:
1、事实明细层、维度层按照业务过程、实体概念等划分,如用户基础信息,交易表,活动表。
2、轻度汇总,及多个维度的中高度汇总,按照业务过程划分,如用户商品汇总表。
3、高度到单一实体的汇总,按照实体概念汇总,如用户活动表。
4、ads层则按照数据集市概念进行划分,如xx专题分析、财务部等。

什么是主题划分

inmon的主题

inmon中的主题,是面向企业数据模型中的企业主题域来划分的,其本质就是高层模型中的实体,用于后续划分表归属的。

在inmon的《数据仓库》一书中,对于主题的定义是这样的。

传统的操作型系统是围绕公司的功能性应用进行组织的。对一个保险公司来说,应用问题可能是汽车保险、健康保险、人寿保险与意外伤亡保险。公司的主要主题域可能是顾客、保险单、保险费与索赔。
数据仓库面向在高层的企业数据模型中已定义好的企业主题域。典型的主题域有:顾客、产品、交易或活动、政策、索赔、账目。
在数据仓库中,每一个主要主题域都是以一组相关的表来具体实现的。一个主题域可能由10个,100个或更多的相互联系的物理表组层。例如,一个顾客主题域可能由顾客基本信息表,顾客活动表组层。

而所谓的高层模型,指的是inmon的建模三步骤:数据建模分为三个层次:高层模型(称为实体关系图,或ERD),中间层建模(称为数据项集或DIS)、底层建模(称为物理模型)。

kimball 中的主题

kimball在《数据仓库工具箱》一书中,并没有提及主题这一概念。

为什么要主题划分

chatGpt中的回答是这样的

主题划分在数据仓库设计和建设过程中是非常重要的,主要基于以下几个原因:
1.提高查询效率和性能:通过将数据按照主题进行划分,可以将相关的数据存储在一起,减少查询时需要扫描的数据量,从而提高查询效率和性能。
2.简化数据管理和维护:主题划分可以帮助数据仓库管理员更轻松地管理和维护数据。每个主题都有明确的边界和责任人,使得数据管理和维护变得更加清晰和可控。
3.提高数据质量和一致性:主题划分有助于提高数据的质量和一致性。相同主题下的数据通常遵循相同的数据标准和规范,可以更容易地进行数据清洗、整合和转换,从而提高数据的一致性和准确性。
4.支持业务分析和决策:主题划分使得数据更加符合业务逻辑和业务需求,有助于支持业务分析和决策。通过针对不同主题进行分析,可以更好地理解业务的运作情况,发现潜在的业务机会和问题。
5.降低数据耦合性:通过将数据按照主题进行划分,可以降低数据之间的耦合性,使得数据更加灵活和可扩展。不同主题之间的数据可以相对独立地进行处理和管理,有利于系统的扩展和维护。

个人理解
1.主题是对所有数据业务的抽象归类,类似字典,便于业务理解使用,可以更好的支持业务分析和决策。
2. 按主题划分后,开发人员更好维护数据,避免数据的重复开发,提高一致性。

怎么做主题划分

1.按照业务系统划分
因为大部分企业都已经经历过了信息化建设或者正处于信息化建设当中,企业各种业务系统都已经部署完成,财务部门有财务系统、销售部门有销售系统、生产部门有生产系统、供应链部门有供应链系统……

这些不同的业务系统,因为只会储存对应业务流程中产生的数据,下级数据主题都互相紧贴,是天然的主题域,业务系统有几种,就可以划分为几种主题域。

如 生产主题域、财务主题域、人力主题域

2.按照需求划分
很多时候,企业需要长期对某个方向进行分析,因为这个长期分析的过程涉及到各种主题,会对数据进行细分、归纳,在这个过程中,就由需求诞生了主题域。

就拿销售分析来说,这个分析过程会涉及到的对象有产品、仓库、经销商、顾客等,其中每一个分析对象就是一个数仓主题,而包含归纳这些主题的销售分析就成为了一个相应的主题域。

3.按照功能划分
在现代社会,软件是每个加入互联网的网民都会使用到的东西,这些由企业开发的软件拥有着不同的功能模块,比如说社交软件中就会有聊天、朋友圈、群聊、发送文件等功能。

从这些功能中选一个模块,聊天模块会涉及到数据仓库中的用户主题、图片主题、文字主题等,所以聊天模块也能被归纳为聊天主题域。

4.按照部门划分
现代企业都有着不同的业务部门,这些部门也会形成各种不同的主题域,比如说销售域、生产域、财务域等,而这些主题域也是由不同的数据主题组成的。

与分层有啥关系?

数仓分层是从存储,从管理角度对数据进行组织,是纵向空间上的划分。
主题域划分是从使用,从业务的角度对数据进行组织,是横向业务上的划分。

1、ods层,不参与划分
2、事实明细层、维度层按照业务过程、实体概念等划分,如用户基础信息,交易表,活动表。
3、轻度汇总,及多个维度的中高度汇总,按照业务过程划分,如用户商品汇总表。
4、高度到单一实体的汇总,按照实体概念汇总,如用户活动表。
5、ads层则按照数据集市概念进行划分,如xx专题分析、财务部等。

参考