面向主题
面向主题是数仓的四大特点之一,听起来很高大上,但是细细理解起来却有些费劲,本文主要是记录一下个人的理解,参考互联网上各种博客进行理解。
概念解析
- 抽象概念
- 主题(Subject) :在较高层次上将企业信息系统中数据进行综合、归类分析利用。属于一个抽象概念,每一个主题基本对应一个宏观分析领域。
- 逻辑概念
- 主题(Subject)是对应企业中某一宏观分析领域所涉及的分析对象(重点是分析的对象,对象,仔细理解一下对象的含义)。例如:"销售分析"就是一个分析领域,这个"销售分析"所涉及到的分析对象为商品、供应商、顾客、仓库等,那么数仓主题可以确定为商品主题、供应商主题、顾客主题、仓库主题;联系到下文"销售分析"可以作为一个主题域;如果"产品分析"是一个分析领域,"产品分析"所涉及到的分析对象为商品、地域、时间、类别等,那么数仓的主题确定为商品主题、地域主题、时间主题、类别主题,"产品分析"可以作为一个主题域。
- 总结
- 数仓的主题就是对某个分析领域的概念总结,是一个高屋建瓴式的方向领导,一个数仓可以有一个主题或者多个主题。
- 主题是根据分析的要求确定的,这与按照数据处理或应用的要求来组织数据是不同的。例如:对于材料供应业务,在面向数据库系统中,重点应该效率化的处理材料供应的业务处理,在面向数据分析中,重点应该放在材料供应是否及时,材料供应质量,采购渠道等维度。
- 数仓中,面向主题的数据组织方式,就是在较高层次上对被分析对象有一个完整、一致的描述,能刻画各个分析对象所涉及到的各项数据及数据之间的关系;
- 通常在建立数据仓库的数据模型中已经定义好主题。典型的主题领域包括顾客、产品、订单和财务或是其他某项事务或活动。
主题域
此项有争议,下文从集合论和边界论两个方面进行分析
从数据角度看(集合论)
主题域通常是联系较为紧密的数据主题的集合。可以根据业务的关注点,将这些数据主题划分到不同的主题域。主题域的确定必须由最终用户和数据仓库的设计人员共同完成;
个人理解:这种划分方式似乎是在Kimball学院派思想,确定主题和维度;
-
主题域、主题、实体间关系
注意:从数据角度的前提是已经经过分析、梳理列出所有可能的数据主题,此处数据主题是细粒度的,是从微观到宏观 ;
从需要建设的数仓主题看(边界论)
- 主题域是对某个主题进行分析后确定的主题的边界。
- 因为在数仓的建设过程中,一般会一次建立一个主题或者是全部主题的一部分,需要对某个主题进行分析,确定主题所涉及到的表、字段、维度等界限。
- 个人理解:边界论的思想似乎和Inmon学院派指导思想类似,理清主题之间的边界,可以由ER模型进行逻辑转化得来,对某一主题域的分析,需要先确定这个主题的关系边界,然后再进行逻辑建模。 有点自顶向下的进行设计开发的感觉;
- 经典案例分析,以Adventure Works Cycle公司案例进行分析
- Adventure 数仓需要分析的一般为主题:供应商主题、商品主题、客户主题和仓库主题。
- 商品主题:超市商品的采购情况、商品的销售情况和商品的存储情况;
- 供应商主题:供应商类别、供应时间、供应货物类别等情况;
- 顾客主题:客户购买商品的情况;
- 仓库主题:仓库中商品的存储情况和仓库的管理情况等;
- 对需要初期建设的四个主题进行边界确定,确定主题边界需要进一步理解业务知识(注意:业务大于技术,注意业务知识的积累) ,各个主题边界确定的过程就是对每个主题进行细化过程,即由宏观把握到微观执行;
- Adventure 数仓需要分析的一般为主题:供应商主题、商品主题、客户主题和仓库主题。
确定主题内容
- 当数仓主题定义好之后,数据仓库中的逻辑模型也就基本成形了,需要在主题的逻辑关系中列出属性和系统相关行为;此阶段需要定义好数据仓库的存储结构,向主题模型中添加所需要的信息和能充分代表主题的属性组;
- 经典案例说明:
-
以Adventure Works Cycle公司案例进行分析,分析主题:商品、销售、客户,在上述主题上添加能充分说明主题的属性组;
-
主题的使用
- 由于数据仓库的设计是一个螺旋发展的过程,在刚开始,没有必要在数据仓库的数据库中体现所有的主题,选择最重要的主题作为数据仓库设计的试金石是很有必要的。因此使用主题首先是找到需要分析的主题域。
- 经典案例说明:
- AdventureWorksDW数据仓库的概念模型设计中,在对需求进行分析后,认识到“商品”主题既是一个销售型企业最基本的业务对象,又是进行决策分析的最主要领域,因而把“销售分析”主题域(注意是销售分析是主题域)定义为要首先建立的主题域。通过“商品”主题的建立,经营者就可以对整个企业的经营状况有较全面的了解。先实施“商品”主题可以尽快地满足企业管理人员建立数据仓库的最初要求,所以先选定“商品”主题进行实施。
- 确定"销售分析"主题域,即对商品主题进行边界划分;
- 商品主题可能涵盖的关系表有商品表、供应关系表、购买关系表和仓储关系表;
- 仓库主题可能涵盖的关系表有仓库关系表、仓库表、仓库管理关系表和管理员表。
- 供应商主题可能涵盖的关系表由:供应商关系表,供应关系表等;
- 顾客主题可能涵盖顾客购买表,顾客关系表等;
-
把这些表的键和字段联系起来 ,可以形成如下的主题域边界划分的原始模型;