一种异构数据库迁移系统的设计与实现

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

147
●基金项目:“十三五”全军共用信息系统装备专用技术预先研究项目(31511090104)。

当前国产数据库迎来蓬勃发展的时期,以武汉达梦、人大金仓、神州通用、天熠数据库为代表的一大批优秀的国产数据库产品得到了迅猛的发展[1][2]。

随着党政军领域中信息系统的国产化,采用国产数据库替换国外数据库后,原先存放在国外数据库中的历史数据,无法直接使用。

为了在新的数据库管理系统中使用这些历史数据,需要将数据从国外数据库迁移到国产数据库中,如何快速有效地将历史数据进行异构数据库迁移已经成为当前数据库领域的一个重要研究方向。

本文对异构数据库迁移系统的异构性进行分析,从数据库模式迁移和数据迁移两方面对异构数据库迁移过程进行描述,实现了一种通用的异构数据库迁移方法,解决异构数据库迁移问题,通用性和可扩展性好,且便于操作。

最后,在QT 框架下,设计实现异构数据库数据迁移系统。

实验验证表明,本系统达到了较好的数据迁移效果。

1 异构数据库迁移系统概述
异构数据库迁移系统是将源数据库中的数据迁移到目标数据库中,异构数据库的异构性主要表现在以下三个方面。

(1)硬件平台的异构性[4]。

数据库管理系统运行的硬件平台不同,其运行平台可能是X86、MIPS 或ARM 平台;
(2)操作系统平台的异构性。

异构数据库系统中的数据库管理系统运行的操作系统种类较多,例如Windows 、Linux 、VxWorks 与中标麒麟等;
(3)数据库引擎的异构性。

常见国外数据库有Oracle 、SQLServer 、Mysql 与Postgre 等,常见国产数据库管理系统有达梦、金仓、神通等。

异构数据库迁移包括模式迁移与数据迁移两部分。

1.1 模式迁移
模式迁移是指为数据库数据搭建了数据存在的框架形式,在数据库中定义了数据存在的形式,包括数据库中的表和表中各字段的属性、表间依赖关系、字段依赖关系等信息。

由于设计理念不同,各数据库管理系统中数据库模式的表现形式也大相径庭,数据库模式迁移的关键点在于数据类型映射[5]。

数据类型差异表现以下四个方面。

(1)异构数据库支持的数据类型种类不完全相同。

例如A 数据库有时间类型,B 数据库不一定有时间类型。

(2)异构数据库相同数据类型的名称可能不同。

例如存储整型数据,A 数据库类型名称为integer ,B 数据库类型名称为int 。

一种异构数据库迁移系统的设计与实现
韩世杰 张记强* 冯帆
(中国航天科工集团第二研究院706所 北京市 100854)
(3)在不同场景下,一个数据库的同一数据类型对应其它数据库的数据类型不同。

例如A 数据库的varchar 类型根据实际数据长度,可能对应B 数据库的varchar 或blob 数据类型。

(4)类型映射往往为单向映射。

例如A 数据库支持money 类型,B 数据库不支持money 但是支持double 类型。

此时A 数据库的money 类型对应B 数据库double 类型,但是B 数据库的double 类型一般不能直接转换为A 数据库money 类型。

摘 要:本文对异构数据库迁移系统的异构性进行分析,从数据库模式转换和数据迁移两方面对异构数据库迁移过程进行描述,实现了一种通用的异构数据库数据迁移方法,解决异构数据库数据迁移问题,通用性和可扩展性好,且便于操作。

通过在
QT 框架下的设计实
现异构数据库数据迁移系统,验证数据迁移效果。

关键词:异构数据库;数据库迁移;ODBC
图1:异构数据库迁移系统架构图
图2:数据源表储结构
148
1.2 数据迁移
数据迁移则是将原数据库中的数据填充到已搭建完成的目标数据库框架中。

数据迁移具体实施是整个体系中关键的部分,需确定数据转换的细节、数据迁移的详细步骤以及完成迁移后的反馈等。

2 异构数据库迁移系统架构设计2.1 设计原则
本系统的设计原则有三点。

(1)可扩展性。

系统应具备较强的可扩展性,支持常见的国内外关系型数据库产品,例如Oracle 、SQLServer 、Mysql 、Postgre 、达梦、金仓、神通、天熠数据库等。

(2)通用性[6]。

对异构数据库的数据库结构不做要求,做到数据库的“即插即用”,即数据库接入后就可以使用本软件进行迁移。

(3)可配置。

用户可对目标数据库表名、源数据库管理系统和目标数据库管理系统中的数据类型的映射关系等进行配置。

2.2 架构设计
异构数据库迁移系统的架构如图 1所示,系统分为应用层、业务逻辑层与数据层。

(1)应用层。

该层为用户提供操作界面,接收用户输入信息。

包含数据源注册、模式映射与数据库迁移功能。

数据源注册是将数据源注册到系统中,解决异构数据库的硬件平台异构、操作系统平台的异构;模式映射用于管理源数据库管理系统和目标数据库管理系统中的元数据对应关系,主要数据字典元数据映射,数据类型元数据映射两个方面;数据库迁移用于为用户提供迁移源数据库与目标数据库选择。

(2)业务逻辑层。

该层位于应用层和数据层之间,是数据库迁移的核心层。

该层处理应用层中提供的功能。

包括数据源管理、模式映射管理、数据库迁移流程管理模块。

(3)数据层。

该层包括接入到系统中的所有异构数据库以及数据库迁移的源数据库与目标数据库。

本系统中使用各异构数据库提供的ODBC 标准接口访问各数据库管理系统。

3 关键模块实现
按照模块化设计思想进行异构数据迁移系统的设计,分为数据源注册、模式映射与数据迁移流程设计三个模块。

3.1 数据源注册模块
数据源注册分为两步,首先通过加载数据库厂商提供的驱动连接数据源,然后将数据源注册信息写入到本地SQLite 数据库中。

数据源注册需要的信息包括数据源类型、注册名称、IP 地址、端口号、DNS 信息、默认连接数据库名称、用户名与密码,数据源注册信息的表结构图如图 2所示。

3.2 模式映射模块
3.2.1 建立数据字典信息
建立数据库信息、数据库内表信息、表内字段信息三类数据字典信息,并保存到本地SQLite 中,数据字典存储结构如图3所示。

(1)获取数据源数据库信息,并且写入到SQLite 的“数据库表”(T_DATABASEINFO )。

以Oracle 数据库为例,在Qt 下获取数据源数据库信息的方式为QsqlQuery::exec(“SELECT * FROM
USER_USERS ”)。

(2)获取表的信息,并且写入到SQLite 的“数据表表”(T_TABLEINFO )。

以Oracle 数据库为例,在Qt 下获取数据源内表的信息的方式为:QsqlQuery::exec(“SELECT * FROM USER_TABLES ”)。

(3)获取字段信息,并且写入到SQLite 的“数据字段表”(T_FIELDINFO )。

以Oracle 数据库为例,在Qt 下获取数据源内字段信息的方式为:QsqlQuery::exec(“SELECT COLUMN_NAME,DATA_TYPE,DATA_LENGTH FROM USER_TAB_COLUMNS WHERE TABLE_NAME = '%1'").arg(strtable) ”),其中strtable 为表的名称。

3.2.2 建立数据类型映射关系
数据类型管理对各异构数据库中支持的数据类型进行统一管理,重点根据各数据库数据类型的含义构建多元数据类型映射关系,解决从源数据库到目标数据库数据模式转换时的类型映射问题。

针对接入到系统中的各异构数据库数据源,提取其支持的所有数据类型,保存到本地SQLite 数据库进行统一管理。

针对各异构数据库中的数据类型,按照语义接近的原则在各异构数据库间建立数据类型映射关系,解决异构数据库模式迁移过程中从源数据库到目标数据库的数据类型映射问题。

根据异构数据数据类型映射特点,将各数据源中的通用数据类型按照字符型、浮点型、整形、时间和日期、blob 型分类映射,并将当前系统中的映射关系存储在本地SQLite 数据库中,各数据类型的映射关系存储结构如图 4所示。

3.3 数据库迁移流程设计
异构数据库迁移系统包括数据抽取、数据转换和数据装载三部分,如图 5所示为异构数据库迁移流程。

(1)数据抽取。

通过数据库访问接口获取源数据库A
数据字典信息和数据信息。


2
)数据转换。

根据映射关系,将数据抽取获取到的源数据
图3:数据字典信息表存储结构
图4:数据类型存储结构
图5:异构数据库迁移流程图
149
库中的数据模式和数据转换为符合目标数据库规则的数据模式和数据。

(3)数据装载。

将数据转换后形成的数据模式和数据加载到目标数据库管理系统中,在目标数据库管理系统中形成数据库B ,且B 和A 在语义和数据上是等价的。

数据迁移模块将要迁移的数据库数据从源数据库中读出,转换为可被目标数据库识别的形式,然后写入到目标数据库中。

数据迁移位于模式迁移之后,目标数据库管理系统中具备了和源数据库管理系统中数据模式相同的数据库后,才能进行数据迁移。

对于关系数据库来说,使用ODBC 标准接口从源数据库中获取数据,并按照目标数据库所支持的SQL 语句类型生成通用SQL 插入语句,使用ODBC 接口执行生成的SQL 语句,可将数据写入到目标数据库中。

表 1:Oracle 到达梦/天熠数据类型映射关系
Oracle 达梦天熠varchar2varchar2varchar nchar char char decimal decimal double number numeric double float float float real real real integer integer integer date date date timestamp timestamp timestamp blob blob binary clob
clob
binary
表 2:迁移系统试验结果
数据迁移项准确率完整率Oracle 到达梦99.5%100%Oracle 到天熠
100%
100%4 实验与分析
实验采取将Oracle 数据迁移到国产数据库达梦数据库和天熠数据库中,来验证本系统的功能。

选取Oracle 中数据量超过1000万条的18张表迁移到达梦数据库中,另外再选取Oracle 中数据量不超过1000万条的5张表迁移到天熠数据库中。

用户界面如图 6所示,在该界面中选择源数据库、目标数据库、数据类型映射,系统根据这些信息完成数据库迁移。

如表 1
所示为数据库迁移时设定的数据类型映射关系。

4.1 迁移验证
迁移验证是将目标数据库中的数据与源数据库进行核对,以确保迁移后的数据的完整性和正确性。

包括核验数据总数与核验记录
图6:异构数据库迁移界面
150
截止到2018年,全国公路隧道17738处,总长1723.61万米,已成为世界上公路隧道规模最大、数量最多、发展速度最快的国家[1]。

目前隧道内各机电设施管控系统相互独立,难以实现各类设施的联动控制,且未实现与交警、消防、医疗等应急救援机构的信息共享,隧道运营状况的实时动态监测与高效智能控制已成为隧道运营的重要课题。

段华勇提出通过加强监管措施来改善隧道运营安全的问题[2];彭洪涛针对各监控系统自动化、信息化程度不高的问题,建立了一套隧道行车安全综合管理系统[3];周兰兰针对隧道设备的维修养护,提出了一种基于信息化技术的隧道远程监管系统[4];任栓哲等人根据信息化技术建立了高速隧道监控联动管理系统[5]。

本文利用物联网技术建设智慧隧道运营管控系统,保障隧道对异常事件的精准定位和及时预警,提升“监测、预警、处置、控制、诱导”等环节的链式管理能力,平时为隧道运营管理工作提供支撑,事故时联动各种设施按照预案快速处置。

1 系统架构
智慧隧道运营管控系统采用物联网的技术架构,基于集中监控、
内容两个方面。

(1)核验数据总数。

分别查询源数据库和目标数据库中各表中的数据记录总数量,确认目标数据库和源数据库中各表数据总数的比值,即完整率。

(2)核验记录内容。

对源数据库和目标数据库中的数据按照主键依次进行查询,确认目标数据库和源数据库中各表数据内容一致的比率,即准确率。

使用上述两种方法,对数据迁移前后的源数据库和目标数据库数据进行验证,具体结果如表 2所示。

4.2 实验结果分析
从实验结果可以看出,数据迁移过程中数据的完整性保持的较好,准确率略有欠缺,即所有数据记录都进行了迁移,但存在部分记录的数据迁移不完整的情况。

对从源数据库到目标数据库产生偏差的数据记录进行分析,发现错误发生时Oracle 和达梦数据库的数据类型不完全匹配,达梦数据库数据类型对应的数据长度偏小,在数据载入时未能将全部数据写入数据库中,但此偏差在系统的允许范围内。

5 结束语
本文针对异构数据库环境下,数据库数据共享共用难的问题,对异构数据库迁移系统的异构性进行分析,从数据库模式迁移和数据迁移两方面对异构数据库迁移过程进行描述,实现了一种通用的异构数据库数据迁移方法,解决异构数据库数据迁移问题,最后本文对设计的异构数据库迁移系统进行了实验和分析。

实验结果表明,
基于物联网技术的智慧隧道运营管控系统
刘志辉* 孙振飞
(湖南联智科技股份有限公司 湖南省长沙市 410215)
对安装的系统和设备实施分布式控制理念,将综合监控子系统、应
急救援子系统、养护管理子系统和数据分析与辅助决策子系统集成在一个平台,实现一体化管控。

针对前端感知设备实时动态采集的隧道环境参数、设施状态信息,实施数据挖掘、处理和集成,确认发生异常事件后,对各系统中隧道运营设备实施控制,自动执行预设好的应急预案。

架构主体分为感知层、数据处理层、应用层和信息发布层。

依托隧道所有机电设备,建立物联网感知网络,从中获取数据信息,实施数据挖掘、处理和集成,应用到各个子系统,最后通过监控中心屏幕、可变信息标志、隧道智能广播、车载终端等发布出去。

智慧隧道运营管控系统架构如图1所示。

2 系统功能设计2.1 综合监控子系统
综合监控子系统实现交通参数实时动态采集、照明监控、通风监控、消防监控、视频监控和信息发布的功能,实现远程监测与控制功能,系统根据具体需求定制模块化联动控制预案。

本设计有效解决异构数据库迁移问题。

参考文献
[1]彭展,李密,杨楠.基于XML 数据迁移技术应用研究[J].现
代计算机(专业版),2017(07):79-82.
[2]杨柳,卓必强,汪杨海等.基于云计算环境的业务系统迁移研
究与实践[J].信息系统工程,2017(04):27-30.
[3]刘赛,聂庆节,刘军等.基于量化行为的实时数据库备份系统
访问控制模型[J].计算机与现代化,2018(01):116-122.[4]赵艳妮,郭华磊.基于XML 异构数据库迁移技术研究[J].计
算机与数字工程,2018,46(01):129-133.
[5]Lin-Qiu L, Qi M, Xiao L I, et al. Implementation of
Heterogeneous DBMS Migration[J]. application research of computers, 2006, 23(12):233-235.
[6]杨明珉,陈勇.MySQL 集群到Oracle 数据库的数据同步方法[J].
计算机系统应用,2018,27(06):60-68.
[7]钟志宏.从SQL SERVER 到MY SQL 的数据库迁移研究[J].电
脑知识与技术,2019(14).
[8]刘娟娟,刘帅.数据库同步技术的研究与实现[J].软件工
程,2017,20(01):1-4.作者简介
韩世杰(1984-),男,高级工程师。

研究方向为数据库、操作系统。

张记强(1988-)(通讯作者),男,工程师。

研究方向为数据库。

冯帆(1987-),男,高级工程师。

研究方向为操作系统、软件工程。

摘 要:本文通过物联网技术,集成综合监控子系统、应急救援子系统、养护管理子系统和数据分析与辅助决策子系统,对隧道内交通状况及环境信息进行实时检测,及时发现交通险情和交通事故,确保隧道影响区域交通运行安全,为隧道运营管控系统的设计提供参考。

关键词:智慧隧道;运营管控;系统集成;物联网技术。

相关文档
最新文档