第 1 章 绪论
1.1 研究背景及其意义
企业在逐步发展的过程中,自身组织架构和业务流程在不断地进行优化重构,相应的信息基础设施也需要逐步进行完善;与此同时,当今社会的信息化程度在不断提高,新的技术和工具也层出不穷,因此企业对其所采用的信息系统进行更新换代也就变得顺理成章。 在信息系统进行更新换代时,有一个无法绕过的问题,即数据问题。在经历了漫长运行周期后,旧系统必然积累了大量的历史数据, 其中有的数据是新系统顺利运行所必须的,有的虽然已经不再对系统运行产生直接影响,但是对企业进行数据分析具有重大意义。此时一般的做法,是对原有系统的数据做数据迁移处理,以便新的系统能够在业务上进行无缝衔接,对已有数据资产加以利用。
数据迁移是指,将数据从原始系统数据环境,通过一定的处理后,移入新系统数据环境的一个过程。[1]在开发新系统的过程中,数据迁移是一项重要的工作——如果数据迁移工作完成得较差,例如账务数据、客户数据等关键数据丢失,那么新老系统将无法进行正常的过渡,这势必会对企业的运营产生重大的影响;同时由于历史数据中往往蕴含着对于企业战略决策有益的信息,失去这些数据的支持,企业无法很好地对自身的组织架构、管理模式和运营策略等进行优化。所以,数据迁移能否成功实施,对企业而言具有非常重要的意义。
目前常见的数据迁移方法,大多分为三个阶段进行实施:迁移评估及设计阶段、迁移实施阶段、迁移测试阶段,而在进行数据迁移的各个阶段都依赖着良好的系统设计规范和清晰的说明文档。[2]
然而在实际的项目中,很有可能遇到因为老系统数据说明文档和设计无法充分被新系统开发者所掌握和理解的问题。例如,老系统数据库设计不规范;老系统数据库设计文档丢失、或没有保存相关设计文档;老系统相关责任人离职、退休,而甲方交接者没有技术背景,无法从技术角度提供帮助。这些情况在实际的项目开发过程中,特别是老系统年代较远的情况下,频频发生。而这些问题一旦发生,都会导致新老系统间的数据迁移难以进行,从而使新系统的项目推进受到严重影响。其中问题最为严重的,就是老系统数据库设计文档丢失、或没有保存相关设计文档这一类的情况。
........................
1.2 研究现状
虽然目前国内外对业务流程建模、流程模型相似度计算和数据迁移三者的研究成果均十分丰富,覆盖的领域也非常的全面,但是将三者相结合,即对业务流程模型相似性比较下的数据迁移方向的研究还比较少。另一方面,为了研究通过业务模型相似性比较寻找模型间映射匹配关系进行数据迁移这个课题,又离不开对这几个方向研究成果的分析和总结。
1.2.1 数据迁移技术相关研究
目前,数据迁移领域的研究成果比较成熟,从方向上大致可以分为以下几类:
第一类是存储介质级的数据迁移。这一类的数据迁移大多与数据所存在的存储介质有关而与应用无关,其主要的迁移方式可以分为四种:基于磁盘阵列远程数据复制技术的数据迁移、基于主机操作系统逻辑卷镜像技术的数据迁移、基于数据库备份和恢复技术的数据迁移、基于三方工具的数据迁移。存储介质级别的数据迁移过程相对简单,有许多相应的迁移工具可以对这一类的数据迁移进行实现。文献[3]概述了这方面的研究,并详细介绍了电力系统数据迁移经验。文献[4]则从小型机系统的数据迁移出发,重点讨论了逻辑卷镜像技术在这方面的应用。文献[5]则系统地讨论了这一类数据迁移模式在企业级信息管理系统中的方法论。
第二类是数据库级数据迁移。这一类的数据迁移又可以细分为两种方向,其中一种是以算法为基础,通过算法自动生成从源数据库到目的数据库的 SQL 语句来实现数据迁移。这种方式的好处在于容易实现,迁移速度快,常被应用于数据量较大、源系统数据和目的系统数据格式统一,不需要人为干预的数据迁移。但是如果数据需要人为加工,或者是异构数据系统之间的数据迁移,那么这种方式就不能独立实施,需要其他方式的支持才能达到比较好的迁移效果。比如文献[6]在对常用算法进行研究的基础上,提出的基于 Dijkstra 最小生成树的异构表数据迁移算法。另一种方向是基于 ETL(Extract-Transform-Load)理论,提出的不同迁移技术,此类方法多用于异构数据库之间的数据迁移,研究成果也较为丰富。例如文献[7]中阐述的异构数据库的数据源信息的抽取问题;文献[8]中阐述的 ETL 技术在复杂数据迁移项目中的应用;文献[9]中阐述了一个基于抽象和现实间伽瓦罗连接的数据迁移形式化框架;文献[10]着重描述了以 XML 作为数据传递格式的异构数据间的迁移模式;文献[11]以卓越亚马逊数据迁移的实例讨论了以 XML 为中间件的一种实现方法。文献[12]主要论述了以 SAP Data Services 为工具实现数据迁移方法。文献[13]主要论述了以开源 ETL 工具 Kettle实现的一种可配置化数据迁移框架。
.........................
第 2 章 相关理论及项目背景
2.1 上海液化气客户服务管理系统相关背景介绍
液化气作为城市天然气的重要补充,是生活中不可或缺的能源。液化气方便、经济、卫生等优点使其在城市中具有大量的市场需求。然而在拥有着诸多优点的同时,液化气能源同样有着储运不便,易燃易爆等缺点,对液化气的供应者和管理者提出了许多的问题和挑战。
上海某液化气公司(以下简称液化气公司)为了提高工作效率,保障液化气供应安全,在多年之前便开始了信息化管理的进程,其最早的版本要追溯到2000 年左右开发的一套 PB 系统,并在 2010 年左右将技术架构更新为.net+MS Sqlserver(下文称该系统为老系统)。其系统功能主要围绕着液化气钢瓶的销售、回收、相关进销存业务及财务流程而设计和实现。
由于近年来,供气安全性逐步成为液化气公司业务开展中的首要目标,液化气公司决定对原有的业务进行调整。主要包括——停止了液化气钢瓶的门售模式,统一采用电话订购、钢瓶配送到户的模式;增加了配送、调度、实地勘察等业务流程,并对原有业务流程进行了相应变动(后文将根据需要对某些流程进行详细介绍)。于是液化气公司决定开发一套新的管理系统(下文称该系统为新系统),以适应液化气公司运行模式的调整和管理工作的优化。
为了能够让液化气公司从老系统到新系统平滑地进行过渡,在开发新系统的同时,必须将老系统中存在的大量用户信息、押金信息、赊销信息、钢瓶历史记录信息、钢瓶状态信息、历史订单信息等必要数据进行数据迁移。然而由于老系统的项目管理工作的缺失,导致老系统的相关技术文档十分匮乏,只有一套与业务对应的 UML 活动图对原有的业务活动进行描述,相关的其他文档如重要的详细设计和数据库设计文档并没有备案,这给数据迁移工作造成了十分重大的影响。
........................
2.2 业务流程建模理论
随着生产的自动化进程逐渐地加深,企业业务的分工逐渐地细化,这些分工逐渐被定义与重复,渐渐地就演变为了流程的雏形。模型,是对现实事物的抽象表示,它提取事物的本质特性,忽略事物次要特性的影响,具有高度概括的特点。
业务流程模型,就是这样一种抽象的表现形式。它一般用图形化或者形式化的形式客观地反映企业、组织等的内部组织架构和业务流程。现代化企业为了保持竞争中的优势地位,了解自身的优势与劣势,必须对业务流程和自身组织架构进行分析、优化、重组,而业务流程建模技术正是在此背景下诞生,并不断发展与演变。
目前常见的具有代表性的业务流程建模理论与技术有 IDEF 方法、UML 及Petri 网,下面将对他们一一进行阐述。
2.2.1 IDEF 方法
IDEF 法是美国空军提出的一种建模方法,其全称为 ICAM(Integrated Computer Aided Manufacturing) Definition Languages。它是一套的分析、设计、建模方法的总称,其中包含 16 个从不同维度对流程不同特点进行描述的子方法(IDEF0——IDEF14 及 IDEF1X),常用的有 IDEF0,IDEF1X,IDEF3,在复杂模型建模和流程描述领域有很大的影响力。
IDEF0 功能建模(Function Modeling)是一种用来表现活动的控制机制和活动之间交互关系的模型。其中,“功能”指的是一系列有着确定的输入,通过控制和一些机制,将之转化为确定输出的过程。
..........................
第 3 章 基于 Petri 网的业务流程建模 ................................. 25
3.1 建模方法的比较和选择 ..................................... 25
3.2 新老系统 Petri 网建模 ...................................... 26
第 4 章 新老业务流程模型相似性比对及流程匹配 ......................... 37
4.1 流程模型相似度计算方法的研究 ................................... 37
4.1.1 流程模型的文本内容相似度计算方法 ...................... 37
4.1.2 流程模型的结构相似度算法................................... 39
第 5 章 数据迁移实施与验证 ......................................... 51
5.1 相关流程的表结构映射及字段映射 ............................ 51
5.1.1 相关流程的表关联关系 .............................. 51
5.1.2 相关流程的字段映射关系 .................................... 55
第 5 章 数据迁移实施与验
5.1 相关流程的表结构映射及字段映射
要寻找新老流程间的表结构关联关系和字段映射关系,首先应该找到新老流程所对应的数据表和数据字段。然后通过寻找流程结点间的映射关系,对字段语义、字段取值、字段与字段间的外键联系等进行分析,最终达到我们建立表与表之间关联关系和字段与字段之间映射关系的目的。
5.1.1 相关流程的表关联关系
由于新系统的设计文档十分的充分,数据字典较为规范,源码注释十分详尽。因此可以通过查询文档,或者直接阅读源码,又或者使用数据库代码直接导出表结构的方式,直接整理出相关流程涉及到的数据表和数据流向。
对于老系统而言,由于本文研究的重点在于文档缺失情况下的数据迁移的实施,涉及的实际项目也出现了文档较少,书写不规范的问题,因此按照传统方式通过阅读设计文档和数据字典,建立 ER 模型关系的模式已经失效。在这里我们通过使用数据库性能优化工具来寻找流程所对应的数据表和数据流向,并通过上文中得到的流程间匹配关系和流程结点的映射关系,寻找表结构的关联关系。
以新系统的钢瓶销售回收管理流程所对应的老系统的钢瓶门售自配送管理流程为例,由于老系统的数据库采用 MS Sqlserver2008,我们使用其对应的性能优化工具 MS Sqlserver Profiler(常用的数据库 Oracle 和 Mysql 也有相应的追踪SQL 语句的性能优化工具),对流程进行跟踪。
...............................
第 6 章 总结与展望
6.1 全文总结
本文主要介绍了在文档信息不充分,无法直接建立字段间映射关系情况下,通过对新老流程进行模型相似度比较的方法,寻找数据映射以解决数据迁移问题,并在上海某液化气公司新老系统的数据迁移实践中进行了实施和验证。
本文首先对业务流程建模的方法进行了调研,并针对具体实施项目中工期紧张、项目流程数目较多的项目背景情况和项目实施人员对 UML 掌握较好,但对其他复杂模型掌握一般的知识储备情况,结合项目的开发计划,选择了Petri 网作为建模的方法,并在此基础上,针对新系统的业务流程进行全流程的建模;根据掌握的老系统 UML 活动图文档对老系统已有的流程模型进行了Petri 化,使新老系统的流程模型得以统一,从而使新老流程的量化比较成为可能。
然后,本文对常见的流程文本相似度算法、结构相似度算法和行为相似度算法的调研和比较。根据 Petri 网流程模型的特性以及实际项目的特点,采用了Word2Vec 算法对流程文本标签进行归一化处理以便进行流程结点映射匹配。采用基于任务的过程结构树编辑距离算法和 TAR 算法对新老流程模型进行相似度计算,从而得到了新老流程之间的匹配关系,及其相似结点之间的匹配关系。
在已经得到的新老流程间的匹配关系以及结点间的映射关系的基础上,本文通过 MS Sqlserver 的性能工具 MS Sqlserver Profiler 对匹配的新老流程数据库操作和数据流向进行分析,建立起了新老流程数据表之间的关联关系和数据字段之间的映射关系。
最后,本文通过对新老数据库中表的分析,对静态表使用开源的成熟的ETL 工具 Kettle 进行数据迁移;对热点数据使用编程迁移的方式,对数据迁移进行了实施,并使用双跑验证和报表验证等手段,对数据迁移的质量进行了验证。
参考文献(略)