气象历史数据批量迁移技术研究
2022-03-24胡丽丽
胡丽丽
(江西省气象信息中心,江西 南昌 330096)
气象事业关乎国计民生,气象因素的变化和服务对中国的民航、工业、农业以及居民的日常活动等等息息相关。围绕《全国气象发展“十三五”规划》 提出的“智慧气象”发展目标,提高气象工作的服务保障,规避自然灾害就显得尤为重要。随着江西省气象技术信息化、现代化的发展,气象业务系统和气象传输数据种类呈现了迅猛增长的态势。地面数据、高空数据、辐射数据、农气数据、卫星数据、服务产品等气象数据类别不断增加,数据体量也变得尤为庞大,给数据的存储和管理带来了新的要求和挑战。另外,为了提高气象服务质量、提升气象业务工作效率和气象防灾减灾保障工作水平,数据的资源、计算能力、数据环境以及数据质量等水平的提升就显得尤为重要。
气象大数据要实现从气象信息化走向气象现代化的过程,要实现基础支撑、人工智能、大数据处理、云计算建设等功能与模块的有效融合,就必定要实现气象数据平台进入“云”的时代的历程,全面实现支撑“云+端”的数据处理模式。在实现气象数据现代化的进程中,气象数据资源的建设是必不可少的一项工作。而气象历史数据是构成气象数据的一个重要组成部分,气象历史数据为天气预警预报、气象预测以及各类气象服务和科学研究的开展,提供了数据研究基础,促进了气象事业防灾减灾的工作发展。气象数据的迁移成为了气象信息技术现代化进程中不可缺少的一项。目前,气象历史数据迁移存在重复、遗漏等问题,而要确认这些问题必须要通过查询大量源数据,并把源数据与目标数据对比。然而,面对如此庞大的数据体量,这项工作将会变得十分复杂和烦琐,并且无法保证全部的重复数据和遗漏数据被发现,这将导致迁移过来的数据质量无法得到保障,同时也大大降低了工作效率。这个时候引入一种高效的数据迁移技术就显得十分重要。
数据的迁移技术是一种信息现代化的产物,其目的是为了提高各行业领域内的数据迁移工作的高效性、完整性,其主要的应用过程是选择目标数据、对选择的目标数据进行简单的校对和处理、加载目标数据,最后形成完整的数据库[1]。与此同时,对迁移过来的数据要求具备完整性、准确性、标准化和可靠性。
文献[2]中,介绍了ETL技术在数据仓库中的应用。ETL 是一种构建数据库的步骤和方法。依据实际数据库构建过程中的需求和特定数据关系,实现源数据库到目标数据库的数据转移。并且,同时完成数据的清洗和转换。ETL 应用于历史数据迁移的过程是从源数据抽取数据,根据源数据库中的表或者文件,源数据库和目标数据库的模型是否一致,目标数据库需要的字段来设置抽取的规则。接着就是数据的转换,数据的转换过程主要针对源数据库和目标数据库的结构是存在的差异,比如数据表命名方式、取值范围、字段的命名方式等情况进行数据转换处理,让迁移过来的数据满足目标数据库对数据的要求。最后是数据加载的过程,把处理好的规范数据加载到目标数据库中,从而建立目标数据,重新构成数据仓库。
ETL 工具在历史数据迁移时所表现出来的优点是:支持跨平台迁移数据;如果迁移的数据体量不大,就可以手动实现数据迁移的工作,操作简单;图形化的界面更有利于维护人员的日常管理;对日志和权限的管理很严格,进一步规范数据仓库。其缺点是:需要大量的目标数据库日志空间;如果需要迁移的数据体量过大,甚至到了亿级,那么就需要引入一款收费软件。由于气象历史数据体量庞大,一张表通常有几亿甚至几百亿的数据量,如果采用ETL 工具进行历史数据迁移,则需要采用Informatica 软件,然而Informatica 软件需要收费。因此,采用ETL 工具进行气象历史数据的迁移工作显得并不划算。再则,Informatica 软件需要充足的学习准备,在业务工作中应用会大大降低工作效率,也给业务维护管理人员带来困难。
文献[3]阐述了数据迁移自适应算法TCA、JDA、CORAL、GFK、BDA、EasyTransfer。在数据迁移的效果上来看EasyTransfer 最优。EasyTransfer 是一种基于PAI-TensorFlow 开发的深度迁移学习框架,通过线性编程取得浮点型权重,充分考虑样本与中心、样本与样本之间的关系[4-5]。
江西省气象2016年开始正式运行CIMISS 系统(全国综合气象信息共享系统),该系统实现了对气象数据的收集、传输、处理、分发、存储、共享、监控等功能,对江西省的气象事业发展起到了至关重要的作用[6]。然而,随着气象信息技术的发展,气象数据也呈现出爆炸式增长的趋势,为了更好地支持气象业务发展保障民生,气象大数据云平台应运而生。与此同时,数据库也由Oracle 数据库更换为现在的虚谷数据库。
1 Oracle 数据库
Oracle 数据库是一款比较经典的关系型数据系统,相对而言功能强大,应用比较广泛[7]。其发展历程可以追溯到1978年,由甲骨文推出,是一种大型的数据库,至今已发展33年。Oracle 数据库的特点是:①支持大量事务的处理,并且支持多用户;②相对而言在数据的安全性、数据的完整性以及稳定性方面比较好;③支持逻辑上的统一管理数据库,实现了分布式的处理数据方式;④在Linux、Windows 等平台上都可以较好地进行使用,同时也支持数据的平台之间移植[8-9]。其逻辑结构如图1 所示。
图1 Oracle 数据库逻辑结构图
2 虚谷数据库
虚谷数据库是一种国产的关系型数据库[10],它的功能十分强大,相对于早期的网状数据库和层次数据库而言具有安全性高、可靠性高、可移植性高、可管理性高、数据存储量级大、使用方便等特点,并且推出虚谷云大数据平台。2005年,虚谷数据库V1.0 版本在成都欧冠信息技术有限责任公司问世;2007年数据库完成产品化工作并且虚谷数据库V2.0 版本正式投入应用;2008年虚谷数据库V3.0 版本研发成功,并投入应用;2011年虚谷数据库V6.0 成功发布[11];2017年虚谷数据库发布V10.0 版本,并且研发出了云数据平台。引入虚谷数据库后,气象数据的存储方式发生了改变,数据利用同步的功能存入缓冲库,服务库和分析库。这种体系,保证了并发时的响应能力,也保证了数据的安全性,又有利于气象业务的正常展开[12]。现在已经在国产数据库里占有十分重要的位置。虚谷数据库的系统结构如图2 所示,其逻辑结构如图3 所示。
图2 虚谷数据库系统框架
图3 虚谷数据库逻辑结构
3 数据迁移方法
数据迁移最重要的是保证数据的完整性、安全性以及迁移的速度。因此在数据迁移之前应该做到先备份,这样就不会发生因数据迁移时出现故障而导致数据丢失。江西省气象历史数据对于研究江西省气象灾害特征和天气特征具有重要的意义,对于江西省的防灾、减灾、生态建设、人民生活、社会建设等都有重要的作用。因此,做好历史数据的迁移备份十分重要。从常用的数据迁移方法中找出相对高效、可靠的数据迁移方法尤为必要。
DATA PUMP 方法在数据迁移中运用十分广泛,是一种比较快速、高效的数据库与数据库之间数据传输的技术之一[13]。此次江西气象数据的迁移的需求是从Oracle 数据库迁移到虚谷数据库,然后再进行虚谷数据库和gbase 数据库之间的数据同步。DATA PUMP 方法数据迁移过程是先创建对应的用户和空间,让原数据库停止工作,并且保持静态,然后再进行数据的迁移备份工作[14]。这种迁移方法的优点是:支持数据库与数据库之间的跨平台传输,传输效率相对较高,操作相对方便。其缺点是数据迁移过程中需要停止原数据库的服务,对环境的要求较高。而根据气象业务的需要,迁移气象数据的时候需要保持两边数据库的业务应用正常进行。由此可以看出,从数据库的层面上来说,DATA PUMP 迁移方法是适用于气象数据的迁移的。但相对而言,面对庞大的气象历史数据,DATA PUMP 并不是最佳的迁移方法。
目前,江西大数据云平台的建设过程中,主要采用的气象历史数据迁移方式是国家局下发程序,从Oracle 数据库把历史数据导入到虚谷数据库,再从实时应用库(虚谷)将历史数据同步到历史分析库(gbase)中。这种气象历史数据迁移方法的原理是通过查询原数据库中相应表格的某一时间段内的数据,然后把查询到的数据插入或更新到目标数据库中。这种方法具体执行步骤如下:①在目标数据库内建立需要导入的表结构,包括表名、对应字段名、数据类型、分区以及约束等;②对照原数据库和目标数据库内相应的表结构和字段,写导入脚本;③执行导入程序;④通过查询导入程序执行过程中的日志,来判断数据是否导入成功。这种方法能满足气象历史数据的迁移需求。但是需要每张表都进行导入脚本的单独编写,操作起来并不简便。该迁移方法不能保证数据的完整性,亦无法判别数据是否有遗漏或者重复,只有通过人工的方式,在数据库中查询数据,进行分析判断,甄别定位问题,耗费的人力十分巨大,并且定位和甄别过程中也容易出现错误,使得工作效率非常低下。如果虚谷服务库没有目标数据,还需要从CIMISS 的数据库(Oracle)或者其他数据源进行补录,这又要涉及到异构数据体之间的迁移转换问题。
4 结语与展望
近年来,科技发展迅猛,人民的生活质量与需求也在不断提高,中国的气象事业也在不断前进。提高容灾减灾能力,提升气象数据质量,提高服务社会水平是气象人一生的追求。气象数据的完整、快速迁移对于气象事业的发展将起到至关重要的作用。因此,为了解决数据迁移过程中出现的问题排查以及应对方法,研究不同数据库的历史数据导入程序,提高气象历史数据的迁移效率,对气象数据迁移方法的研究将有重大意义。