数据库 频道

数仓建设:数据域和主题域是什么关系?

为什么会有域的概念呢?

首先来看看数据仓库的定义吧,数据仓库是一个面向主题的、集成的、相对稳定的、反映历史变化的数据集合,用于支持管理决策。

主题域已经体现出来了

主题域用于将数据集市按照分析视角进行划分,通常是联系较为紧密的数据主题的集合。可以根据业务的关注点,将这些数据主题划分至不同的主题域。

当然,还有另外一种说法。

数据仓库是面向主题(数据综合、归类并进行分析利用的抽象)的应用。数据仓库模型设计除横向的分层外,通常也需要根据业务情况进行纵向划分数据域。数据域是联系较为紧密的数据主题的集合,通常是根据业务类别、数据来源、数据用途等多个维度,对企业的业务数据进行的区域划分,将同类型数据存放在一起,便于快速查找需要的内容。不同使用目的数据,分类标准不同。例如,电商行业通常分为交易域、会员域、商品域等。

数据域划分原则:全局性、可理解性和数量适中。

主题域

主题域通常是 联系较为紧密的数据 主题的集合。可以根据业务的关注点,将这些数据主题划分到不同的主题域。主题域的确定必须由最终用户和数据仓库的设计人员共同完成。

主题域、主题、实体间关系

主题设计是对主题域进一步分解,细化的过程。主题域下面可以有多个主题,主题还可以划分成更多的子主题,而实体则是不可划分的最小单位。主题域、主题、实体的关系如下图所示:

可以显而易见的看出,主题域是一个更大的概念,主题是略次之,实体最小,这里的实体表示的是实体对象(对应企业中某一宏观分析领域所涉及的分析对象)。

主题域划分

主题域是对某个主题进行分析后确定的主题的边界。分析主题域,确定要装载到数据仓库的主题是信息打包技术的第一步。而在进行数据仓库设计时,一般是一次先建立一个主题或企业全部主题中的一部分,因此在大多数数据仓库的设计过程中都有一个主题域的选择过程。

确定主题边界实际上需要进一步理解业务关系,因此在确定整个分析主题后,还需要对这些主题进行初步的细化才便于获取每一个主题应该具有的边界。对于四个主题及其在企业中的业务关系可以确定边界。

图片

主题的使用

由于数据仓库的设计是一个螺旋发展的过程。在刚开始,没有必要在数据仓库的数据库中体现所有的主题,选择最重要的主题作为数据仓库设计的试金石是很有必要的。因此使用主题首先是找到需要分析的主题域。

例如在 AdventureWorks DW 数据仓库的概念模型设计中,在对需求进行分析后,认识到“商品”主题既是一个销售型企业最基本的业务对象,又是进行决策分析的最主要领域,因而把“销售分析”主题域定义为要首先建立的主题。通过“商品”主题的建立,经营者就可以对整个企业的经营状况有较全面的了解。先实施“商品”主题可以尽快地满足企业管理人员建立数据仓库的最初要求,所以先选定“商品”主题进行实施。

通过将主题边界的划分应用到已经得到的关系模型上还能形成原始的概念模型。这一模型是把主题域的划分和事务处理数据库中的表结合起来的模型,例如在上面的例子中,商品主题可能涵盖的关系表有商品表、供应关系表、购买关系表和仓储关系表;仓库主题可能涵盖的关系表有仓库关系表、仓库表、仓库管理关系表和管理员表。

数据域

数据域是指面向业务分析,将业务过程或者维度进行抽象的集合。为保障整个体系的生命力,数据域需要抽象提炼,并长期维护更新。

在划分数据域时,既能涵盖当前所有的业务需求,又能让新业务在进入时可以被包含进已有的数据域或扩展新的数据域。数据域的划分工作可以在业务调研之后进行,需要分析各个业务模块中有哪些业务活动。

数据域是 CDM 层的顶层划分,是对企业业务的抽象提炼,面向业务分析,包含当前所有业务需求,也便于未来扩展。

数据域的使用

数据域可以按照用户企业的部门划分,也可以按照业务过程或者业务板块中的功能模块进行划分。例如在线教育公司可以划分为如下数据域,数据域中每一部分都是实际业务过程经过归纳抽象之后得出的。

图片

数据域和主题域到底有什么区别呢?

主题域是针对数据集市提出的概念,数据集市是面向主题,从业务驱动进行分析场景的建设。

数据域是阿里数据中台 CDM 层建设中提出的,是数据驱动业务,是对数据的分类,更好的数据赋能业务。

总结

数据域是对数据的分类,主题域和业务域是对业务的分类。

主题域和数据域最终都是对数据的分类,只是一个是数据视角,一个是业务视角。

根本的目的是:统一规则,方便管理,容易理解,有利于开发效率,有利于快速服务业务场景就可以了。

Tips

个人建议,在 DWD 层可以按照数据域进行分类,DWS 层可以按照主题域划分,ADS 层可以按照分析主题域(业务场景)划分。

数据域划分几点需要注意的地方

1.不重不漏,确保每个表都在一个域里,且只在一个域里(精确定位)

2.每个域下都可以根据需要再分子域,不限定层级(最自由方便)

3.如果分子域就不能放表,表只放在最底层的域中(树状目录管理时更方便)

4.最好保证每个域下的子域数量或表数量在20个左右(太多了不方便记忆管理,太少了没必要划分)

5.【其他】很好用,不好划分的都放里面(减少域层级数量有理由理解记忆)

6.数据团队分域可以作为分工的标准(数据不重、分工明确、界限清晰)

7.数据团队分域后,可以决定域内表的中间命名(看到表名时可以理解更多信息)

2
相关文章