宋一凡,黄晏辉,刘贺文
(1.中国铁路总公司资金清算中心 信息处,北京 100844;2.中国铁道科学研究院 电子计算技术研究所,北京 100081)
客运清算存储管理系统总体设计
宋一凡1,黄晏辉2,刘贺文2
(1.中国铁路总公司资金清算中心 信息处,北京 100844;2.中国铁道科学研究院 电子计算技术研究所,北京 100081)
为了解决铁路旅客运输清算系统海量数据与存储空间不足之间的矛盾,本文紧密结合业务实际,立足全局,从系统化角度提出了一套完整的存储管理系统方案,包括系统设计目标,处理流程,架构设计,系统实现,以及配套的管理规划。实践证明,客运清算存储管理系统设计方案合理,运行高效,达到系统设计目标,并为清算系统优化创造了有利条件。
铁路旅客运输;清算系统;存储管理
随着铁路旅客运输业务的迅速发展,互联网订票和电子支付业务的不断推进,铁路旅客运输清算系统(以下简称客运清算系统)每日处理的原始客票存根数据量也呈大幅增长趋势,截止目前,客运清算系统日均处理客票存根数据量约900万条。根据工作要求,不同类别的清算业务数据,包括原始存根数据、清算中间结果数据、清算明细结果数据、清算字典数据都需要在线保留一定的历史年限。原来客运清算系统规划的存储空间已不能满足清算历史数据在线时长要求,存储空间现状与系统安全生产的矛盾十分突出,按照历史数据分析,客运清算系统存储空间预计只能维持至2013年底。
客运清算系统是典型的数据仓库型应用,存储有海量的历史数据,这些历史数据主要应用于各类统计分析查询,不能进行增删改操作。为保证客运清算系统平稳运行,必须尽快研究客运清算存储管理新思路,对数据的存储方式和数据结构进行升级完善,实现存储空间利用效率最大化,解决系统存储供应紧张的矛盾。
客运清算存储管理系统(以下简称存储系统或系统)的开发建设就是在上述背景之下于2013年8月启动的,它是财会管理信息系统总公司硬件补强工作的重要组成部分。按照工作计划,系统必须在2013年底前投产运行。
1.1 规避客运清算系统存储空间不足风险
通过存储优化管理可以减少历史数据占用的存储空间,提高单位存储空间的利用率,有效规避客运清算系统存储空间不足风险。根据计算结果,在现有数据量下,6年内不应再出现客运清算系统存储不足的问题。
1.2 降低系统在硬件存储方面的投资成本
新的客运清算存储管理的思路就是将数据库数据转存于外部存储设备上,因此和磁盘阵列投资相比,外部存储的成本非常低。
1.3 提高客运清算系统运行速度
不仅包括后台日处理速度,而且包括前台程序的响应速度。当前后台日处理需要大约5个30 min,预计本系统实施后日处理速度提升20%,前台主要业务报表响应速度也能得到提升。
1.4 加强对历史数据的管理力度
制定相关历史数据管理制度,加强对清算历史数据的管理,确保历史数据的管理更加规范和灵活,以更好地适应未来数据增长趋势。对历史数据分类别、分时间段精细化管理,同时建立多个外部离线备份点,形成多点备份模式,实现“同地异介质存储”,并进一步实现“异地异介质存储”,有效规避存储风险。
1.5 方便历史数据的查询分析
通过对历史数据的存储进行优化,保证历史数据随时可查可用。同时根据存储需求,只需要增加外部存储设备,就可以方便地延长历史数据的保存年限。
1.6 减少日常磁带备份工作量
由于日常磁带备份的数据中包含了许多历史数据,而这部分历史数据不能增删改,不需要每次都进行全备份。因此通过存储优化管理可以明显减少目前客运清算系统数据库每次的整库全备份时间和系统I/O资源。
系统采用模块化设计,模块开发遵循高内聚、低耦合的原则,模块间采用简单的调用接口。本系统主要功能模块如图1所示。
2.1 系统运行监控
图1 系统功能模块
系统存在多个模块处理流程,在模块内部记录详细的模块处理日志,模块间记录流程控制日志。运行日志要记录成功标志或错误原因。对数据集的操作记录数据集存储空间、操作结果和存储状态等信息。同时,实时收集系统空间使用情况,记录到日志,对表空间资源进行监控。对系统运行状态、运行结果和表空间资源进行监控,前台有相关展示界面。当异常情况发生时,可以通过监控界面及时预警,找到错误原因。结果监控包括对数据集存储空间、操作结果和存储状态等信息的监控。表空间资源监控可以实时对各表空间在线状态、各表空间存储情况等进行汇总查询。
2.2 数据压缩处理
根据不同的压缩规则,对分区数据进行压缩处理,包括原始客票存根、中间过程数据和清算结果数据。原始客票存根包括售票存根、退票存根、废票存根和改签存根,采用原始存根列压缩方式和数据库段压缩方式。中间过程数据采用汇总压缩方式和数据库段压缩方式。压缩后的原始客票存根和中间过程数据存放到相同的压缩表空间。清算结果数据只采用数据库段压缩方式,压缩后的清算结果数据存放到单独的压缩表空间,与压缩客票存根和压缩中间数据分开存储。
2.3 历史数据转存
将压缩后数据表中的历史数据和当前数据分开存储,历史数据转存到专门的历史表中,使二者相对隔离,减小当前分区数据表的规模,提高系统处理速度。历史数据按数据类别分开存储,主要分为两大类:清算过程数据以及清算结果数据。两类数据按照分区规划,分别存储在不同的表空间。
2.4 历史数据恢复
当需要用到已转存的历史数据时,将已转存到历史表中的数据(还未进行离线存储处理的前提下)通过一定方式合并恢复到原压缩数据表,与当前数据合并存储。将历史数据合并恢复到原压缩数据表后,历史数据表中的相关数据也就不存在。合并恢复后的压缩表可以同时提供当前数据和历史数据。
2.5 表空间离线管理
根据系统空间使用情况,在空间资源紧张时,将历史表空间进行离线操作,并将离线后的表空间数据文件转出存储到外部存储设备,为提高离线数据文件的外部存储安全性,实行多点备份的方式,同时将离线数据文件保存到多个外部存储设备,并按照严格的管理办法保障数据安全。离线存储后,数据库服务器上相关离线表空间的数据文件即可删除,以释放空间。在进行历史表空间离线管理的时候,可以根据数据类型,实现差异化管理,即可以先对清算过程数据历史表空间进行离线,后对清算结果数据历史表空间进行离线。
2.6 表空间在线管理
当需要使用已经离线存储的历史数据时,通过FTP的方式,将离线存储的历史表空间数据文件放回数据库服务器上的数据文件存储目录,然后将表空间恢复为在线状态,这样离线的历史数据就可以提供正常的查询。对于清算结果历史数据,从离线状态恢复为在线状态后,还可以进一步执行“历史数据恢复”操作,将历史数据合并恢复到清算结果表,以提供前台报表的即时查询。
2.7 过期数据清理
根据清算办法要求,定期将超过存储期限的数据进行滚动清理。不同的清算数据有不同的保存年限,清理数据时要明细到各数据表,按照分区的大小进行删除操作。滚动删除历史数据如果已经离线,则需要先恢复为在线状态,再执行数据删除,最后删除外部存储设备中保存的相关离线数据文件。
(1)本系统采用人工处理和程序化处理相结合的方式,由具有专业技能的后台维护人员操作。
(2)人工手动处理的部分包括新数据表结构的建立,新表空间的建立,原表空间的空间回收,表空间只读模式、读写模式、离线模式、在线模式的切换操作,离线表空间数据文件的外部备份等操作。其中,人工处理所需的脚本能够半自动或自动地生成。
(3)后台程序处理的部分包括各种类别历史数据的压缩处理,压缩数据索引重建处理,表中分区数据独立存储处理,独立存储数据合并存储处理,系统运行全过程日志记录、数据监控核对日志的生成等。后台程序采用存储过程开发实现,采用模块化、参数化运行,支持中断续处理。
(4)前台监控界面包括监控系统运行状态,监控系统处理结果,系统存储空间占用情况监控等。
(5)系统支持单个功能模块处理方式,也支持流程一体化处理方式,模块间功能互斥,采用日志控制。维护人员根据系统不同需求,可以单独执行某个或多个功能模块程序。
系统处理流程如图2所示。
图2 系统处理流程
4.1 数据压缩处理
将清算数据根据数据类型按照不同的压缩规则进行压缩处理,压缩后的数据存储在新的压缩表空间,并根据数据类别采用分开存储方式。
4.2 历史数据转存处理
将压缩后的数据转存到新建的历史数据表中,同时从原压缩数据表中删除,这部分历史数据就与当前数据分不同表存储。
4.3 恢复历史数据
对已经执行转存操作的历史数据,将其从历史数据表中再次移动到当前数据表,实现历史数据与当前数据同一个表存储。数据的转存与恢复操作可以随时切换。
4.4 历史数据离线处理
对已经执行历史数据转存操作的数据,将相应数据文件分数据类型按不同顺序进行离线,然后将离线后的数据文件转储到外部存储设备。
4.5 历史数据在线处理
对已执行离线处理操作的历史数据,将其从外部存储设备放回到数据库服务器原数据文件存储位置,并执行在线操作,实现这部分数据的在线存储。历史数据的在线存储与离线存储操作可以随时切换。
4.6 过期数据删除
将过期的数据从数据库中彻底删除,并删除外部存储设备中相应的数据文件。
客运存储管理系统作为客运清算系统的一个辅助管理系统,是基于既有的网络结构和系统架构,以C/S模式实现的:采用.net技术实现简洁、方便、明晰的人机交互界面;以数据库存储过程方式,融合ORACLE数据库操作和管理技术,对数据压缩、管理、校验等处理进行封装和固化。
为确保数据安全和可用,在系统整个处理过程中,每一步处理都是在经过多个角度比对和核准,确认数据无误后,以事务的方式提交。系统辅以权限分配、控制日志等途径,进一步确保存储管理工作的安全性、严谨性和可控性。此外,处理过程中,系统自动生成详实的处理日志,以备相关人员查阅和使用。
客运清算存储数据分为在线存储数据和离线存储数据,在线存储数据包括在线日常工作数据和在线历史存储数据;离线存储数据分为离线日常存储数据和离线历史存储数据;在线日常工作数据、在线历史存储数据和离线日常存储数据均纳入清算数据库日常管理范畴;离线历史存储数据(简称“离线历史数据”)的管理按照财会档案管理要求,通过本系统开展。因此,必须制定具体的系统应用管理办法,以规范和控制客运清算存储管理系统应用过程中涉及到的各个环节,确保客运清算存储数据在其整个生命周期内的安全性、完整性、保密性及可用性,进一步提高客运清算系统维护工作质量。
6.1 适用范围
本办法适用于围绕客运清算存储系统开展的全部工作,客运清算系统的管理部门和具体维护单位按照本办法执行。
6.2 工作职责
明确客运清算存储系统应用管理工作应遵循的原则,细化系统应用管理单位和具体维护单位的工作职责。
6.3 应用管理内容
客运清算存储系统应用管理工作内容包括:数据压缩、数据离线、数据在线、数据恢复等方面。需要明确每个工作内容的具体流程,标准化作业程序,确保工作的闭环管理。
6.4 离线历史数据管理
按照财会档案管理的规定,必须规范离线历史数据文件命名规则、存放介质、保管条件;明确移动介质的启封、使用和封存流程;触发离线历史数据重置的条件;说明离线历史数据销毁的依据。
6.5 其他
包括安全保密管理的规定和要求,以及系统应用考核等方面。
该系统由中国铁路总公司资金清算中心和中国铁道科学研究院电子计算技术研究所联合研制开发,已于2013年底投产运行。截止目前,系统运行效果良好,客运清算数据整体压缩率达到85%,有效缓解了客运清算存储矛盾,证明了系统设计思路清晰,数据压缩方案合理,设计功能实用,达到系统设计目标。
在本系统项目实施和推进的基础上,经过充分分析和整理,可以为客运清算系统进一步大规模优化升级、以及新的系统构建提供实践经验和基础。
责任编辑 杨利明
General design of Clearing Storage Management System for railway passenger transport
SONG Yifan1,HUANG Yanhui2,LIU Hewen2
( 1. Information Department, Capital Settlement Center of China Railway, Beijing 100844, China;2.Institute of Computing Technologies, China Academy of Railway Sciences, Beijing 100081, China )
In order to solve the contradiction between the storage space and mass data of Clearing Shortage System for the railway passenger transport, this paper combined with the actual business, based on the overall situation, proposed a complete set of Storage Management System from the point of system, including system design, process flow, architecture design, system implementation,and supporting management planning.Proved by practice, the result indicated that the System was reasonable, ef fi cient, reached to the design target,and proved favorable conditions in system optimization.
railway passenger transport; Clearing System; storage management
U293.2∶TP39
A
1005-8451(2014)05-0028-04
2014-01-05
宋一凡,高级工程师;黄晏辉,工程师。