前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >主题数据区的设计

主题数据区的设计

作者头像
张逸
发布2018-07-27 11:20:14
3730
发布2018-07-27 11:20:14
举报
文章被收录于专栏:斑斓斑斓

标签 | 数据分析

关于主题数据区的设计,首先需要明确的是按照什么对数据进行归类。大的原则,当然还是按照业务来分类,但是分类的出发点不同,划分的类别也不相同。例如针对机场数据,可以从业务特征分类,那么可以分为运行保障、旅客服务、航班资源等;如果按照功能区分类,则可以分为空侧、陆侧、航站楼侧等。

不管采用什么原则对数据进行分类,我认为都需要遵循以下两个原则:

  • 保证数据的分类是正交的:正交的数据分类可以避免数据的重复。例如航班与旅客存在关联关系,但只允许这二者之间存在一个交点,旅客的信息不允许出现在航班中,航班的信息也不允许出现在旅客中。如果需要,通过主外键关联。
  • 保证数据类别的抽象层次处于同一个层次:这是SLAP(单一抽象层次原则)的体现,如果数据类别的层次不一致,就会失去数据的平衡。例如航班主题与货运主题就不在一个抽象层次上,货运主题与行李主题为同一抽象层,两者的共同抽象为物流,物流主题与航班主题才是同一个抽象层次。

当然,对于主题数据区的数据,从分类的依据看,在满足以上两个原则的基础上,我认为还是应贴近数据特征的角度进行类别划分,并尽量保障数据的类别是正交的,同时在保证数据存取性能的前提下,力求更细的数据粒度。而在数据集市区,才会根据不同的业务流程、业务目标去建立集市。建立集市的基础是主题数据,一个正交的主题数据(甚至可能遵循三范式)才能更好地满足集市的业务需求,对其进行重用。

所谓“数据特征”,就是该数据的本质属性,是体现了最基础特征信息的数据。这就要求对数据进行抽象,撇开数据源对业务的影响,也要撇开业务场景对分类的影响。可能符合某个数据特征的数据同时来自多个系统,也可能它同时为多个业务场景提供服务。在机场数据领域,最根本的具有本质属性的数据就是:

  • 航班
  • 旅客
  • 物流
  • 资源
  • 气象
  • ……

在确定了第一级主题(也可以认为是主题域,即subject area)后,在讨论下一级数据分类时,我们出现了分歧。最初提出的类别草案中,将“航班旅客信息”放到了旅客主题中,该信息包括:

  • 值机截载旅客统计信息
  • 登机截载旅客统计信息
  • 起飞截载旅客统计信息
  • 实时旅客数据:如实时值机人数、实时登机人数、实时安检人数
  • 累计旅客数据:如累计值机人数、累计登机人数、累计安检人数

我认为这种划分是不合理的,虽然这里的信息都与旅客相关,但这些信息并非旅客的明细数据,同时它又与具体某个航班是粘连在一起的。到底该怎么归属呢?类似这样的场景,旅客的一些数据在特性上无法清晰地界定到底属于哪一个主题,因为在关系上,可能这些数据属性与两个乃至多个主题都存在一定关系,分类时就容易混淆。

我提出了解决此类数据分类的两个原则:

  • 主次之分:判断该数据属性所关联的主题究竟以谁为主。以航班旅客信息为例,我们应该思考这些信息到底是以航班为主,还是旅客为主?
  • 强弱之分:判断该数据属性与哪一个主题关联更强,哪一个主题关联更弱。若还是无法分清,可以看看当变化发生时,对谁的影响更大? 仍然以航班旅客信息,如这里的截载旅客统计信息,究竟是与航班关联更紧密,还是与旅客关联更紧密?从变化上看,可能更清楚。例如当实时值机人数发生了变更,究竟是对当前航班影响更大,还是对某位旅客的信息影响更大?

不言而喻,无论是“主次之分”还是“强弱之分”,我们都可以清晰地分辨出航班旅客信息更多地是与航班相关,故而应分属于“航班”主题。

本文链接: http://zhangyi.xyz/the-design-of-topic-data/

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-06-13,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 逸言 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档