基于《全国报刊索引》平台的异构数据库数据转换工具
2018-07-24王静
王静
摘 要:针对目前《全国报刊索引》底层异构数据库之间数据交换存在的问题,提出了异构数据库SQLServer到Oracle之间数据交换的设计模型,并基于设计模型开发实现了这两个数据库之间的数据转换工具,设计了Groovy动态语言脚本引擎,支持数据迁移转换和数据合并转换;建立了版本控制模式,便于描述数据交换的状态和管理数据的安全。该工具满足了《全国报刊索引》平台数据的日益增长的数据交换需求。
关键词:异构数据库 数据转换工具 动态语言脚本引擎
中图分类号:TP31 文献标识码:A 文章编号:1672-3791(2018)02(b)-0014-03
《全国报刊索引》数据库始建于1993年,涵盖了多种类型的报纸期刊数据库产品。如晚清全文数据库、民国时期期刊全文数据库、各类报纸数据库、现刊索引数据库和专题数据库等。《全国报刊索引》收录的数据最早可回溯至1833年,至今已累计收录报刊20000余种、文献3000多万篇,年更新数据量超过350万条。
从最早的光盘版到现今的SQL Server、Access、Oracle等多种的数据库管理系统被应用。这些数据库管理系统相互之间存在许多物理和逻辑上的差异,尽管其本身都具有数据导入和导出功能,但这些功能还不能够满足平台日益增长的数据交换需求。为了满足期刊全文检索上线的需求,提升检索速度和效率,数据库管理系统从SQL Server升级到Oracle。SQL Server到Oracle数据转换,不是简单字段对应的迁移转换,需要进行字段计算、内容合并、日期处理、简繁转换等多种转换,这就需要设计专门的工具来进行复杂的数据转换。
1 数据转换设计
根据异构数据库数据转换工具的设计总体目标,将该工具分为如下的几个部分:数据读取、转换规则、数据写入、操作界面、版本管理。
数据读取负责分析源数据库中链接信息,源数据表Excel的数据框架结构和数据的读取。
(1)转换规则控制源数据和目的数据之间的转换,根据制定的转换规则得出需要某些源数据字段进行日期、简繁或格式的转换。
(2)数据写入负责将进行转换后的源数据写入目的数据库。
(3)操作界面为用户提供一个可交互的界面进行操作。
(4)版本管理负责对任务版本进行管理。
工具的总体流程图如图1所示。
1.1 数据读取
数据读取,先读取源数据库的信息:源数据库的类型、数据库连接的方式、连接的配置、源数据库地址、源数据库用户名及源数据库密码。
通过数据库驱动读取数据到内存中,与源数据库取得连接。
1.2 转换规则
转换规则,转换规则保存在Excel数据框架中。将源SQL SERVER数据库中的数据转换成符合要求及目的ORACLE数据库要求的数据格式,有以下的几种转换。
1.2.1 数据类型的转换
在不同的数据库中由于数据类型的不一样,需要进行转换,如SQL SERVER数据库中有布尔类型,而ORACLE数据库中没有布尔类型,这就需要在设置的时候进行定义,在转换的时候按定义进行转换。
1.2.2 日期格式转换
由于两个数据库的日期定义格式不同,在一个数据库中定义的日期数据格式在另一个数据库中需要重新定义。所以,在转换过程中对日期字段需要进行特殊转换处理。
1.2.3 简繁转换
由于《全国报刊索引》平台包含大量的民国期刊和报纸数据,这些数据有一定的特殊性:题名、作者、出版地等字段检索既需要提供简体检索又需要提供繁体检索。需对字段进行简繁转换处理。
1.3 数據写入
数据写入是将转换过的数据写入目的数据库,首先读取目的数据库的信息,如目的数据的类型、数据连接的方式、数据库连接的配置、目的数据库地址、目的数据库用户名及目的数据库密码、数据来源类型、数据字段信息。
根据数据库的连接信息连接目的数据库,通过数据库驱动写入数据到目的数据库中。写入方式设计为两种选择:一种是只插入数据;另一种是跳过错误,最终呈现错误清单。
1.4 操作界面
操作界面为用户提供一个可交互的界面来进行数据转换的操作。
1.4.1 源数据库信息主要是记录源数据库的一些配置参数及数据来源
源数据的类型、数据连接的方式、数据库连接的配置、源数据库地址、源数据库用户名及密码和源数据字段信息。
1.4.2 目的数据库信息主要是记录目的数据库的配置参数
目的数据的类型、数据连接的方式、数据库连接的配置、目的数据库地址、目的数据库用户名及密码、目的数据字段信息和写入方式。
1.4.3 数据规则
数据规则是源数据和目的数据之间的对应关系和转换规则。转换设计任务在提取的基础上读取Excel数据框架,即源数据库和目的数据库建立的映射表得到源数据字段和目的数据字段的转换对应类型。
1.5 转换任务管理
版本管理负责转换任务的管理和保存,转换任务时,建立版本控制机制,版本控制机制包含版本类型、版本号、描述、启用状态、创建时间、创建人、修改时间和修改人。两种版本类型,即新版本和修改版本。新版本建立时要新创建一个版本号,命名,描述数据处理的任务。修改版本建立时要选择你要修改的版本号,在原有命名的基础上,附加命名,描述数据修改的任务。
2 转换工具的实现
2.1 数据读取实现
源数据库的类型是SQL SERVER数据库。通过JDBC链接SQL SERVER和ORACLE。JDBC数据库连接参数使用字符串的形式,其中包含着数据库地址、用户名、密码、源数据的表名等需要的信息,数据框架中的SQL查询语句。
2.2 转换规则实现
源数据和目的数据的转换对应关系保存在Excel数据框架中,分别是元数据表和规则表Rule。
(1)元数据表中记录源数据的字段信息主要有表名、字段名、简繁中文名称、字段分类、数据类型和数据长度。
(2)规则表中记录源数据和目的数据的字段对应关系及表达式。
2.3 数据写入实现
转换任务中的源数据信息相关字段定义如下:数据库的连接类型,JDBC连接支持SQL Server和Oracle数据库之间的连接。目的数据库的连接字符串,JDBC的数据库连接参数使用字符串的形式,其中包含着数据库地址、用户名、密码、目的数据库表名等需要的信息。
2.4 操作界面
数据操作界面,提供一个可交互的界面方便用户进行数据转换处理。
(1)填写平台URL路径。
(2)填写用户名和密码。
(3)填写版本说明,新版本或者版本修订。新导入数据选择“新版本”,修改数据选择“版本修订”。
(4)选取数据规则和建立数据任务。
选择数据源的JDBC链接,填写用户名和密码,选择“连通测试”。若JDBC链接测试通过,则选取数据规则和转换任务,进行数据转换。
3 结语
本研究针对《全国报刊索引》平台底层的SQL Server数据库和Oracle数据库之间的数据转换进行探讨,设计了数据转换工具,按照数据转换的需求制定了数據规则,数据处理人员只需根据每次要处理数据集不同来设计数据任务,通过工具实现了数据导入和转换功能,解决异构数据库间数据交换问题。
该工具已投入《全国报刊索引》平台的底层异构数据库数据处理中使用,运行情况良好,达到了预期的效果。运行结果表明,该工具能实现异构数据库的数据转换功能,界面友好,数据转换准确高效。
参考文献
[1] 王晓雯,孙承爱,周春露.基于元数据映射机制的异构数据操作[J].软件导刊,2015(1):146-148.
[2] 余伟,李石君.Web大数据环境下的不一致跨源数据发现[J].计算机研究与发展,2015,52(2):295-308.
[3] 王洪荣,吴宝国.异构数据库中数据交换工具的设计与实现[J].北京林业大学学报,2009(11):102-104.