跨平台信息系统数据迁移技术研究与实现
国网河北省电力有限公司信息通信分公司的研究人员李静、马超、黄镜宇、卢艳艳,在2019年第10期《电气技术》杂志上撰文指出,河北公司营销分析与辅助决策系统运行所依托的小型机设备已运行多年,近年来IBM 9116-561型号设备稳压模块存在家族缺陷,存在因设备故障导致营销类数据报表无法正常报送的风险,影响系统的安全稳定运行。
基于以上因素的考虑,本文主要讲述ETL、Sybase数据库从现有小型机环境迁移至PC服务器设备过程中涉及的关键技术,主要包括:①Informatica及工作流导出和导入;②Sybase和ETL抽取工具的衔接;③新环境数据抽取。通过以上方面的技术研究,不仅有效解决了系统运行过程中存在的问题,为后续更好地开展运维工作打下基础,也为其他系统跨平台迁移提供了经验,具有很好的借鉴意义和价值。
河北公司营销分析与辅助决策系统于2008年正式上线,至今已运行10年,该系统是营销信息化的高级应用,具有营销综合分析、报表、营销指标监控等功能。随着相关设备运行时间不断延长,硬件设备日益老化,系统存在一定的安全运行风险。
此外,该系统所用ETL(extract-transform-load)数据抽取工具及Sybase IQ数据库与数据中心共用服务器,均部署于IBM 9116-561型号的小型机上,近年来该小型机稳压模块曝出存在家族缺陷,且使用小型机也不满足国网公司硬件设备国产化的要求,这些均给系统稳定运行和运维工作造成压力。
为此,将ETL工具和Sybase IQ数据库从数据中心中剥离出来,在PC服务器中进行独立部署是很有必要的,这将彻底解决营销分析与辅助决策系统运行过程中存在的一系列问题。
1 业务范围
营销分析与辅助决策系统的数据以营销业务应用数据、电能服务管理、用电信息采集、计量生产调度平台、市场化售电等系统业务数据为基础,采用定期抽取的方式,经过加工、转换、处理、生成等一系列过程,形成所需的报表结果数据并进行上报和展示,主要包括营业管理、客户服务、市场管理、用电安全及计量管理五大类报表,共计约133张报表。
抽取数据需要用到ETL抽取工具,当报表进行上报完成后,基础数据会通过ETL抽取工具中的相应工作流传递到Sybase数据库,再同样启动ETL抽取工具中的相应工作流将Sybase数据库中的数据传递到国网总部数据库,中间是通过网省的基础数据平台作为网省与国网的数据传输通道,所以本次迁移涉及大量的历史数据需同步进行迁移,即需要对Sybase数据库中的数据进行全库备份并完成新环境迁移,完成迁移后同样需要对新版本的ETL抽取工具进行数据抽取验证工作,确保数据抽取的质量(包括抽取的基础数据数量总和与数据源一致,抽取的结果数据不出现乱码现象)。
2 关键技术研究与实现
ETL、Sybase数据库从现有小型机环境迁移至PC服务器设备属于跨平台迁移,存在一定的技术难度,主要为迁移过程中安装介质是否能够对跨平台服务系统进行版本兼容,数据工作流导出与导入时是否存在异常报错情况。本次跨平台迁移技术特点包括Sybase IQ的源数据库结构的导出、源数据库数据的导出、数据的导入和Informatica应用的迁移两大部分。
迁移应用了工作流主体迁移的工作原理,把原工作流迁移至新环境后再进行数据迁移。Sybase IQ的源数据库结构的导出是通过Sybase IQ客户端工具,导出源数据库的结构,包含表、视图、过程、type等;Sybase IQ的源数据库数据导出一般按表一个个地导出,导出表的数据的语句如下所示。
set temporary option temp_extract_row_delimiter = '\x0a';
set temporary option temp_extract_column_delimiter = '|!';
set temporary option temp_extract_null_as_empty = 'OFF';
set temporary option temp_extract_append = 'OFF';
set temporary option temp_extract_size1 = 536870912;
set temporary option temp_extract_binary = 'OFF';
set temporary option temp_extract_swap = 'OFF';
set temporary option temp_extract_name1 = '/backup/psdss_ dm/AA_RESULT.dat';
select * from AA_RESULT;
Sybase IQ数据导入的脚本如下所示。
set temporary option conversion_error='OFF';
message 'load table AA_RESULT' type info to client;
LOAD TABLE AA_RESULT
(
FY'|!',
FY_ID'|!',
DY'|!',
DY_ID'|!',
NUMS'|!',
ID'|!'
)
由于导入脚本需要写出表所有的字段,脚本编写较为复杂,建议通过工具自动生成。这种方法的基本思路是:使用IQ系统存储过程sp_iqcolumn获得被装载表的所有字段,然后拼装LOAD TABLE语句,最后使用execute动态执行拼装好的SQL。
其中Informatica中的ETL工作流文件迁移是本次迁移的重点,迁移工作流包括较多的大项工作流,每个大项又包含多个小项工作流。旧环境工作流的导出需要严谨操作,不能有遗漏项,否则将影响新环境工作流的导入工作。迁移工作分为三大部分:Informatica及工作流导出和导入、Sybase和ETL抽取工具的衔接、新环境数据抽取。
Informatica PowerCenter 9.6.1在安装前,要在数据库下新建用户,用来管理资料库,用于存放源表和目标表。客户端安装完成后需要进行Informatica连接Oracle数据库的配置修改,进入PowerCenter Workflow Manager—connections—relational,如图1所示。
图1 配置截图
在这些前期的配置准备工作都完成后,就可以对旧环境中Informatica客户端中的工作流进行整体或者单个导出工作,对导出的工作流进行存放以备在新环境中导入时使用。迁移难点在于工作流的导出与导入,即从旧环境中导出的工作流数量不能缺失(如原有环境中存在1250个工作流,那么导出的工作流数量也应与之匹配);导出的工作流不能出现异常情况(如导出完成工作流后会弹出类似于成功的提示语,如出现fail则表示有失败工作流,需要进行日志提取排查原因);导入时同样需要进行数量和是否存在异常工作流的核对工作。
若版本兼容情况比对未发生异常,则可以在Windows环境下正常使用导入的工作流进行抽取 工作。
2.1 工作流导出和导入
ETL是英文Extract-Transform-Load的缩写,用来描述将数据从来源端经过萃取(extract)、转置(transform)、加载(load)至目的端的过程。数据的迁移和集成都需要ETL来实现,一般来说在数据仓库的开发过程中ETL会占到70%到80%的时间,Informatica是美国一个数据集成公司开发的数据集成工具,图形化开发并且入门快,本地营销分析与辅助决策系统正是使用Informatica软件作为数据迁移工具。
Informatica可用于访问和集成几乎任何业务系统、任何格式的数据,也可按任意速度在企业内交付数据,具有高性能、高可扩展性、高可用性的特点。
Informatica中涉及的很多具有关联性的工作流,需要现场结合实际情况进行分析,确认导入时是否存在前后关系,建议按照Informatica8.1.1版本上的工作流顺序进行导出操作,导出的文件按照.xml进行存储,Informatica PowerCenter 9.6.1的主安装界面是基于Java平台建立的,所以在安装前安装JDK(推荐)。要在数据库下新建用户,用来管理资料库,用于存放源表和目标表。
Windows 2008 server下普通Window 64位的Oracle客户端无法安装,需要找到Visa版本64位的客户端安装包,解压安装包,直接执行setup.exe。在新机环境上安装好Informatica 9.6.1版本的抽取软件后,进行接口基础配置,因为工作流导出是按照整包进行导出的,所以在Informatica 9.6.1中导入同样采取整包导出。因为每个大项工作流中涉及到的子项工作流数量不同,所以在导入时所花费的时间也不同,需要耐心等待,导入成功后会有成功日志提示。
2.2 Sybase和ETL抽取工具的衔接
Sybase主要有3个版本:①UNIX操作系统下运行的版本;②Novell Netware环境下运行的版本;③Windows NT环境下运行的版本。对UNIX操作系统目前广泛应用的为SYBASE 10及SYSBASE 11 FOR SCO UNIX。本地新旧环境存在差异情况的迁移还涉及到跨环境平台迁移,所以在迁移后的验证也很重要。
一般的关系型数据库都是基于主/从模式的。在主/从式结构中,所有的应用运行在一台机器上。用户可以通过终端发送命令或简单地查看应用运行的结果。而在客户/服务器结构中,应用被分发在多台机器上运行。一台机器可能是另一个系统的客户,也可能是另外一些机器的服务器,这些机器是通过局域网或广域网联接起来的。一般的数据库是依靠操作系统来管理与数据库的连接,当有多个用户连接时,系统的性能会大幅下降。
Sybase数据库未采用操作系统来管理进程,而是把与数据库的连接当作自己的一部分来管理。此外,Sybase的数据库引擎还代替操作系统来管理一部分硬件资源,如端口、内存、硬盘,Sybase数据库的此种管理方式,大大提高了性能。
编辑Sybase数据库主要由三部分组成:
1)进行数据库管理和维护的一个联机的关系数据库管理系统Sybase SQL Server。它是个可编程的数据库管理系统,是整个Sybase产品的核心软件,起着数据管理、高速缓冲管理、事务管理的作用。
2)支持数据库应用系统的建立与开发的一组前端工具Sybase SQL Toolset。
3)可把异构环境下其他厂商的应用软件和任意类型的数据连接在一起的接口Sybase Open Client/ Open Server。通过Open Client的DB-LIB库,应用程序可以访问SQL Server。而通过Open Server的SERVER-LIB,应用程序可以访问其他的数据库管理系统。
具备以上优势对ETL抽取过来的数据进行存储有很好的数据保存应用性。将新的Informatica 9.6.1版本的接口与Sybase配置好后,再进行新工作流执行数据提取时会很清晰地看到日志中数据的流向,在Sybase数据库中会看到抽取的明细数据。搭建好的Sysbase数据环境要进行测试验证,还要看全盘备份迁移过来的数据量是不是完整,数据是否完整对后续数据的提取是否全面有相当大的影响。
全盘数据确定无问题后,再进行配置接口的检查和调试工作,即确定Sysbase数据库是否和Informatica 9.6.1软件平台连接通了,这个是后续进行数据提取的关键。ETL抽取工具中涉及到很多类似于数据库的DBLINK,这个是数据抽取的通道方向,所以在配置过程中我们会看到目标源和数据源端用户名,之间还需要配置正确的密码确保整个配置的准确与完整性。
2.3 新环境数据抽取
数据抽取一般分全量抽取和增量抽取。
1)全量抽取。全量抽取可被看做是数据迁移或数据复制,它将源数据库中的表或视图的数据原封不动地抽取出来,并转换成自身ETL工具可以识别的格式。全量抽取较为简单。
2)增量抽取。增量抽取是指从上次抽取结束后再次抽取数据库中新增、修改、删除的表数据。在ETL实际使用过程中,增量抽取比全量抽取应用范围更广。如何获取变化的数据是增量数据抽取的关键。对获取方法通常主要注意两方面:准确性,能够准确地获取业务系统中的变化数据;系统性能,尽量降低对业务系统的压力,减少对业务的影响。
本次迁移选用增量抽取的方案,即对原数据按照某种逻辑关系进行分段抽取,比如按照年月或者单位,将工作流全部成功导入到新环境的Informatica 9.6.1下后,需要对导入的工作流进行数据抽取,提取的数据源可以定义为来自营销分析与辅助决策系统中的数据,此类数据来源于营销业务系统、市场化售电系统、95598系统、基础数据平台中的基础数据。所以将数据提取直接定义在营销分析与辅助决策系统较为合理,同时符合业务应用规范。
在数据提取过程中工作流执行为人工手动触发,执行工作流启动按钮后,可以在ETL抽取界面对启动的工作流进行执行进程监控,抽取完成后可以监控执行的工作流的抽取时间,同时会有抽取结果日志的展现,可以从抽取日志中看到提取数据量、提取相关表、提取时间节点等相关信息。
3 操作过程及验证
营销分析与辅助决策系统Informatica迁移过程包括方案制定、环境备份、数据迁移和迁移验证,如图2所示。
图2 操作流程图
1)方案制定
迁移过程前需要先对安装程序包在新环境下进行安装部署,搭建合理的部署环境,主要是对Informatica 9.6.1版本安装包、Sysbase数据库安装包在新机上进行客户端和服务端的安装配置工作,创建正式账号以备后续进行工作流数据导入与业务数据抽取验证使用。
2)环境备份
安装客户端和服务端前后进行环境整体备份,在安装完成后导入工作流和抽取验证数据前对Informatica 9.6.1所含已有工作流进行备份处理,工作流备份主要对存储路径进行备份。
3)数据迁移
数据迁移是指将数据文件从现有数据库移到新数据库的过程。这些数据通常是需要在未来任何时间可进行方便访问的图像文档或历史信息。迁移工作与备份策略相结合,并且仍要求定期备份。
4)迁移验证
迁移工作完成后的验证是迁移必不可少的一个环节。将迁移验证分为工作流稳定验证、数据质量验证、业务系统功能验证等三方面,迁移验证流程如图3所示。
图3 迁移验证流程图
(1)工作流稳定验证。按照新旧环境的Informatica抽取工具进行工作流数量验证,检查新旧环境导出与导入的工作流数量是否一致,并核查导入的工作流是否均可用。不存在失效的工作流中部分工作流需要配置数据源连接,要正确配置数据源账号与密码,确保源端与目标端可以正确访问,验证结果见表1。
表1 工作流稳定验证结果
(2)数据质量验证。数据质量验证包含数据存量与数据无异常验证。即抽取完成或者备份迁移过来的数据存储量一致,不存在缺少历史数据的情况(无年月、单位层级缺失)。检查新环境中存储的数量是否都符合数模标准规定格式(即字符型、数字型),不出现不能识别的乱码标志,验证结果见表2。
表2 数据质量验证结果
(3)业务系统功能验证。这里主要指迁移完成后,根据迁移数据登陆前台营销分析与辅助决策系统,可以正常查询历史数据,无数据丢失现象,确保业务数据的完备性与可用性,验证结果见表3。
表3 业务系统功能验证结果
迁移验证成功标志着整个迁移工作的顺利完成。
本文在ETL工具迁移过程中,对导入工作流的一些关键问题提出了相关的解决方法和策略,并将整体现象做了记录观察,对存在的导入报错问题也做了一定的分析。在基于营销分析与辅助决策系统的Sybase数据库、Informatica抽取工具迁移实施方案中,本文对工作流异常导入进行了分析研究,攻克了技术困难,完成了营销分析与辅助决策系统Informatica数据迁移工作计划。
河北公司营销分析与辅助决策系统ETL迁移为其他网省公司提供迁移现行的指导方案,在一定程度上能够减少其他网省(市)公司的迁移工作量,从而提升工作效率,具有一定的借鉴价值和意义。