APP下载

基于Data Vault的交通行业数据仓库设计

2021-05-20陈成伟

西部交通科技 2021年4期
关键词:数据仓库数据模型范式

韦 扬,陈成伟

(1.广西交通运输信息管理中心,广西 南宁 530029;2.广西交通设计集团有限公司,广西 南宁 530029)

0 引言

当前社会已经从信息技术时代发展进入数据技术时代。数据,已经渗透到每一个行业和业务职能领域,成为重要的生产因素。虽然交通运输行业信息化建设起步较早,已相继建成很多业务系统,但缺乏较好的顶层设计,各个系统各自为战,导致出现重复投资、信息孤岛等问题。为解决交通运输行业信息化的痛点、难点,同时顺应数据时代的发展要求,本文以广西交通运输厅现行业务系统的历史数据和实时数据为基础,首先介绍数据仓库模型设计常见方法及问题,进而提出使用Data Vault建模方法,尝试构建以可追溯、易扩展为特点的交通运输行业数据仓库。

1 数据模型设计

数据模型是数据的组织和存储方式,它是整个数据仓库设计的核心。一方面,数据模型是ETL的目标结构,ETL的设计是基于数据模型而开展的;另一方面,数据模型是数据分析的基石,决定了报表逻辑以及机器学习等数据挖掘工具的数据输入格式。数据仓库建模方法主要有范式建模(关系模型)和维度建模(多维模型)。

范式建模源于Inmon提出的集线器式自上而下的数据仓库架构。关系模型通过使用关键字和外键在不同行的数据间建立关联,关系型数据以使数据分解成非常低粒度的标准化的形式存在,以标准化程度的不同可以分为:第一范式(1NF)、第二范式(2NF)、第三范式(3NF)等。

维度建模源于Kimball博士提出的总线式自下而上的数据仓库架构,多维模型也称星型连接。多维模型以包含大量数据值的事实表为中心,其周围围绕的维表用并不多的数据来描述事实表的某个重要方面。

两种建模方式的特点归纳如表1所示。

表1 两种建模方式特点归纳表

交通行业信息系统数据具有多源异构、业务变动频繁、数据量大等特点,因此,交通行业数据仓库的建设要求可扩展性高、处理数据量大的建模方法,同时也需要兼顾开发人员行业经验、开发维护成本等因素。本文尝试采用一种新的建模方法Data Vault进行数据仓库建模。

2 使用Data Vault进行数据仓库模型设计

2.1 Data Vault及其特点

Data Vault是Dan Linstedt发明的一种数据模型,它强调数据的历史性、可追溯性、原子性,不需要对数据进行过度一致性处理和整合。同时它基于主题概念将数据进行结构化组织,并引入了更进一步的范式处理来优化模型,以应对源系统变更的扩展性。Data Vault主要由Hub、Link和Satellite三个部分组成。相较于范式建模和维度建模,Data Vault的优越性明显:

(1)可扩展性高。实体分为实体的key值、实体的属性值、实体的关系三种存在形式,三者分开存储,降低了耦合度,提高了灵活性与可扩展性。

(2)符合大数据特征。Data Vault是基于客观事实进行的数据增量抽取,不做逻辑校验,因此可以大规模抽取和处理数据。

(3)建模简单。模型中只有Hub、Link、Satellite表。只要区分这些表,剩下的重点就只有设计和调度ETL,这在很大程度上简化了建模过程。

(4)开发敏捷。使用Data Vault建模,2~3周即可完成一次迭代,发布周期短,可以更便捷地应对业务需求。

2.2 Data Vault实体设计

Hub表示业务核心实体,由实体主键、仓库代理键、装载时间、数据来源等构成。BK为原系统的业务主键;SK为代理键,它由业务主键与来源节点LOG_SRC_NODE按规则生成,用来唯一标识一个实体。Hub的代理键会向外延伸到与其相关的Satellite和Link中。

Link标识Hub之间的关系,它是提升模型扩展性的关键,不需要任何变更就可以直接表示1∶1、1∶n、n∶m的关系。

Satellite描述Hub或者Link的相关属性和上下文内容。代理键SK由Hub中延伸到Satellite的业务主键(在Satellite中为FK)和记录变化时间LOG_CHG_TIME共同计算得出,由此可以记录历史信息。如图1所示为在模型设计中常用的字段及其释意。

图1 实体示例图

3 在数据仓库建设过程中的应用

3.1 业务模型

根据交通运输部印发的《交通运输政务信息资源目录编制指南(试行)》(以下简称编制指南),将信息资源划分为行业、业务、管理对象、主题、信息类别五大分类。本文参考编制指南从宏观视角对业务架构进行抽象,提出了“交通运输行业全域模型”,如图2所示。全域模型考虑到数据仓库、数据集市的建设需求以及不同维度的特征,选取对象、行业、职能事务三个维度进行业务建模。由于任何事物都无法脱离时间与空间,且在交通运输领域这种联系尤为突出,因此,本文在对象域中添加了时间、空间两个维度。此外,职能事务域作为对目录编制指南中业务分类的整理,考虑到交通领域大数据未来的发展,除业务本身外,补充了企业业务和公众业务两个维度。由于业务建模实际上是在选取的维度上进行有限枚举的划分,因此反映到实际数据模型设计上时主要体现为对实体对象的命名划分,如“H_船舶_运输装备_水路交通_运行管理”,下划线区隔的后三部分“运输装备_水路交通_运行管理”分别从对象域、行业域和职能事务域三个维度对“船舶”这个Hub实体进行描述。

图2 交通运输行业全域模型图

3.2 总体架构

一个完整的数据仓库系统的定义为:数据仓库系统(DWS)=抽取/转换/加载(ETL)+数据仓库(DW)+联机分析处理(OLAP)+数据挖掘(DM)+决策支持(DS)。结合业务系统和数据来源情况,数据仓库整体架构设计如图3所示。

图3 总体架构图

整个系统架构分为数据源、数据平台和应用三个主要部分。数据平台负责数据的ETL、存储和处理,经过汇总形成数据集市。本文关注的重点为数据仓库部分,此部分采用Data Vault建模方法进行模型设计。通过对业务数据的解读和分析,抽象出实体、关系及上下文等对象,然后按照对象的业务属性从业务模型的三个维度进行划分并按照规则完成命名,最后设置相关属性和主外键关系。当设计完成后,从宏观上看整个模型是由Hub、Link、Satellite组成的星型网状结构,如图4所示。

3.3 新数据的融合

Hub、Link和Satellite是刻划实体和实体关系的基本要素,需要与实际业务相结合才能完成建模。使用Data Vault建模简单灵活,可扩展性高。本文以一张新表(新实体)融入已有模型设计的过程为线索和切入点,对建模过程进行简要描述。假设当前已经存在航道实体即航道Hub,当处理新引入的“瓶颈区段基本信息”表时,得到以下显示:

图4 星型网状结构图

(1)分析其内部各个字段识别实体。注意到其属性“瓶颈区域编号”为主键可以标识一个实体,所以抽象为“瓶颈区域Hub”,而“航道编号”和“航道代码”可以标识与其关联的航道实体,其他字段描述了瓶颈区域的相关属性。

(2)表属性“航道编号”和“航道代码”表明航道与瓶颈区段存在has-a关系,因此可将这种关系抽象为一个Link。

(3)表中其他属性则是描述瓶颈区段Hub这个实体的上下文信息,需要将其抽象出来作为瓶颈区段Hub的Satellite(可以根据属性的使用频度、重要性、来源等划分为多个Satellite)。由此可得如图5所示的实体关系。

图5 实体关系示例图

通过以上方式持续加入新的实体,发掘实体与实体的关系,可以逐步构建出一张涵盖所有交通运输行业业务实体及其关系的网。限于篇幅,本文不能完全展示建模的详细过程,但通过此片段不难看出使用Data Vault来进行建模具有可行性和很强的可操作性。

3.4 面向业务的后续数据处理

传统的数据仓库建设中,数据入仓时要做数据预处理,去除掉不合理的数据。而Data Vault模型基于客观事实进行数据增量抽取,不做逻辑校验,仅仅是反映了上游系统数据的真实性。而数据的处理工作相对靠后,在从数据仓库到集市的ETL过程中完成数据的清洗工作,或以新增中间缓冲层的处理方式解决。

Data Vault模型的这些特点在联网收费系统和票务系统中表现较为明显,系统数据日增量在千万级别,数据ETL工作量大、耗费资源。通过将数据从源系统直接抽取进入Data Vault模型,然后基于模型内的数据,经过清洗和转换可以快速地建立出车辆主数据等主题应用。由此可见,基于Data Vault 模型不但可以快速大规模地抽取和处理数据,更符合大数据特征,同时可以快速生成面向业务分析需求的数据模型。

4 结语

本文介绍了基于Data Vault的数据仓库总体架构和数据模型设计方法,为交通运输行业大数据中心和数据仓库建设提供了一种新的思路。目前已经接入结构化数据113.66亿条记录、2 100张表、29 591个字段。基于这些数据现有两个主要应用:(1)整理出“人员”“公路路线”“行政机构”“企业”“船舶”“车辆”等主数据;(2)梳理出交通行业政务资源目录。但目前引入的数据范围和数据量仍较有限,数据模型设计的完备性、稳定性、扩展性还需要引入大量新数据源和更丰富的数据应用来考验和优化。在此基础上,如何有效管理数据仓库元数据以更好的辅助数据的挖掘、分析和利用;如何通过质量审计来提高数据仓库中的数据质量;如何利用大数据平台高效存储、管理非结构化数据(如图片、视频等)也将成为研究的重点方向。

猜你喜欢

数据仓库数据模型范式
以写促读:构建群文阅读教学范式
范式空白:《莫失莫忘》的否定之维
孙惠芬乡土写作批评的六个范式
基于数据仓库的住房城乡建设信息系统整合研究
面板数据模型截面相关检验方法综述
管窥西方“诗辩”发展史的四次范式转换
分布式存储系统在液晶面板制造数据仓库中的设计
探析电力系统调度中数据仓库技术的应用
基于数据仓库的数据分析探索与实践
基于分位数回归的电力负荷特性预测面板数据模型