本文来源于:2018第二届农村中小金融机构科技创新优秀案例评选,作者:湖北农信

湖北农信:海量数据在线并发迁移模式创新与实践

2018-11-01 关键词:农信/农商行,数据存储,数据迁移6706

项目背景及目标

项目背景及面临挑战

《中华人民共和国国民经济和社会发展第十三个五年规划纲要》明确提出要实施创新驱动发展战略,强化科技创新引领作用。信息科技作为银行业金融机构的核心竞争力担负着重要使命。必须加大对新兴技术的探索研究,实现习主席提出的“加快推进国产自主可控替代计划,构建安全可控的信息技术体系”。积极推进新兴技术研究与成果应用,提升银行综合技术实力和科技创新能力,优化在线数据结构,发挥有效数据价值,是银行信息科技工作面临的重要课题。同时随着银行业务结构和业务系统复杂度的日益提高,以及业务量的快速增长,均对信息系统的业务连续性提出了更高的要求,可供计划性的维护时间窗口大大减少,给银行信息系统安全运营带来了巨大的压力。


一、银行业海量数据管理面临的挑战

随着银行业数据量的快速增长,银行业面临的海量数据管理困难总结如下:


1、传统数据清理方法和有效数据提炼间的矛盾。由于金融业务市场的快速发展、银行数据呈现井喷式增长,但数据质量又普遍不高,从海量数据中挖掘有效数据形同大海捞针,各行均面临数据管理的巨大压力。


2、传统数据清理方法与业务连续性间的矛盾。为保证金融业务不间断开展,可用于数据维护的时间窗口十分有限,传统的清理方法,处理效率低、速度慢、周期长,严重影响业务连续运行能力。


3、传统数据清理方法与系统安全运营间的矛盾。传统数据清理方法不仅时间长,而且操作风险高,易引起数据丢失或出错,会给客户带来损失,造成不良的社会影响。


4、传统数据清理方法与常态自动化清理间的矛盾。传统数据清理方法的特点是突击性、一次性,即使艰难的完成了一次数据清理也不能保证后续数据问题不再发生。


二、我社面对海量数据增长的解决目标

近来,随着业务的不断拓展,业务的多样化和数据量快速增长,且呈现逐渐加快的趋势。在此背景之下,一方面数据库的各方面性能出现开始降低的趋势(数据库备份时间长、增删改查效率低下、数据库重组时间长等);另一方面需要不断的进行存储设备扩容或新购来满足数据库增长的需求,存储设备扩容压力较大。并且随着数据量的增长,会导致系统运行效率变低的问题。


在此背景之下,本课题组于2018年1月开始启动海量数据在线迁移及自动化清理模式的创新及研究。旨在克服传统海量数据清理可行性低、风险高等困难,在不中断系统运行的前提下,在极短的窗口时间内完成海量数据的在线清理迁移,建立数据常态优化清理机制,消除数据库性能“天花板”效应,达到数据增长稳定的目标,为金融行业海量数据优化工作开创一种全新、高效的实施方法论。


项目方案

项目架构设计

 


初始阶段:业务数据通过数据入口写入数据容器 T1表 。


数据双写阶段:实施开始时,对数据口进行复制,使实施开始后,新建分区表T2


开始记录T1表增量、及变更数据。


在线转储阶段:线将实施前T1表数据转入至T3表。转入期间不影响业务使用。


数据同步阶段:通过哈希算法进行进程分配,将临时表T2数据追加至T3表中。


切换阶段:切断原表数据入口。将T3表投入生产,在线数据迁移完成。


1. 难点一:首次清理数据量巨大,如INCT表,存量数据就有28亿条记录。


解决方法及创新点:数据表迁移方法。

 


数据迁移步骤:

首先确定业务数据的保留期限和策略,通过数据迁移将原表(T1表)的有效数据迁移至新表(T1new表)。


2. 难点二:数据迁移清理时间长,不能满足业务下线需求,特别是INCT表,需要24小时在线 。


解决方法及创新点:基于完整事务性的在线数据迁移(数据分段迁移清理 +数据库表并行双写)+ 多进程并发数据迁移。


 


3. 难点三:人工清理风险高 。


解决方法及创新点:建立常态化数据清理规则。


 


实施过程描述:

容器转换据阶段:基于分区表分区分离功能,时间 业务数据以日为单位进行逻辑分区,将数据装入成可自由分离的分区表中。实现以日为单位的数据,加工,查询,删除,调整。


数据分离阶段:将待加工区间内的数据进行分离。分离后小表数据量小便于加工,且加工数据时,不影响大表继续对业务系统提供服务。


数据加工阶段:对分离出的小表依据业务逻辑进行数据加工(过程中加入各类数据有效性检查步骤),提取有效数据。使用自动的维护脚本检查,在数据提取自动后核对数据完整性,避免数据混乱。


数据整合阶段:将加工完毕的数据加入至大表中,保证数据的完整性 。


自动维护阶段:使用TWS 调度、监控、管理自动维护作业。


在TWS作业流中加入自动维护脚本,设定报警机制。在整个过程中维护人员无需职守作业。减少了人员参与作业的人力成本,且降低了维护过程中实施人员的误操作风险。


实施方案

(1)普通表的数据清理步骤


我们以JOURNAL表为例来说明普通表数据清理流程,JOURNAL 表是卡系统流水表,保存卡交易的明细信息。

操作步骤

事项

操作

1

表空间建立

在卡库新建表空间:TBS01

2

临时分区表建立

1) 在TBS01 上建立分区表JOURNALTEMP。数据及索引都建立在此表空间上。

2) 以SYSTEM_DATE 栏位作为分区的关键栏位。

3) 每日建立一个分区,分区的命名规则为Pyyyymmdd ,其中yyyymmdd为会计日期。

4) 建立近一个月的分区(包括下一个会计日期的分区),同时建立兜底的分区,保存定义范围之外的记录。

 

(2)分区表建立

操作步骤

事项

操作

1

表空间建立

在卡库新建表空间:TBS01

2

临时分区表建立

1) 在TBS01 上建立分区表JOURNALTEMP。数据及索引都建立在此表空间上。

2) 以SYSTEM_DATE 栏位作为分区的关键栏位。

3) 每日建立一个分区,分区的命名规则为Pyyyymmdd ,其中yyyymmdd为会计日期。

4) 建立近一个月的分区(包括下一个会计日期的分区),同时建立兜底的分区,保存定义范围之外的记录。

 

(3)数据迁移

数据迁移是将JOURNAL 表中近一个月的数据导入到临时表中。

操作步骤

事项

操作

1

表空间建立

在卡库新建表空间:TBS01

2

临时分区表建立

1) 在TBS01 上建立分区表JOURNALTEMP。数据及索引都建立在此表空间上。

2) 以SYSTEM_DATE 栏位作为分区的关键栏位。

3) 每日建立一个分区,分区的命名规则为Pyyyymmdd ,其中yyyymmdd为会计日期。

4) 建立近一个月的分区(包括下一个会计日期的分区),同时建立兜底的分区,保存定义范围之外的记录。


(4)日常操作

卡journal 表建立完成后,按照规划,该表将在生产环境中保存1个月的数据,保存期之外的数据将自动清理。为实现此功能,卡系统需要新增一个批量步骤,以达到自动建立分区,其中清理分区的目的。


1.新增脚本,由TWS控制,在每日凌晨0点执行。 该脚本步骤如下:


2.从MFLAGS 文件中得到当前的会计日期,并且换算成bin格式。


3.通过当前日期得到下一个日期的bin及公历格式日期


4.得到1个月之前的公历格式日期(即需要detach分区的日期)


5.执行SQL语句,得到JOURNAL表中所有分区信息。


6.检查当日的分区是否存在,若不存在,建立当日的分区


7.检查次日的分区是否存在,若不存在,建立次日的分区


8.再次通过SQL 语句检查当日及次日分区是否正确建立,该分区的访问方式应为“F”。


9.执行删除分区动作之前,需检查需删除的分区是否存在,如果存在,执行detach动作,表名为JOURNAL_YYYYMMDD , 其中YYYYMMDD为该分区的系统日期。


10.再次检查该分区已经detach成功。


运维部门择期将JOURNAL_YYYYMMDD 表进行归档处理。


流程图如下:

 

 

(5)数据海量表的数据清理步骤

我们以INCT表为例来说明普通表数据清理流程,JOURNAL 表是日系统存款交易明细表,保存账户交易的明细信息。


(6)分区表建立

操作步骤

事项

操作

1

表空间建立

在日库新建表空间:TBS_INCT

2

临时分区表建立

1) 在TBS_INCT上建立分区表INCT_NEW。数据及索引都建立在此表空间上。

2) 以TRANS_DATE 栏位作为分区的关键栏位。

3) 每日建立一个分区,分区的命名规则为Pyyyymmdd ,其中yyyymmdd为会计日期。

4) 建立近三年的分区,同时建立兜底的分区,保存定义范围之外的记录。

 

(7)数据迁移

数据迁移是将INCT表中近一年的数据导入到临时表中。

操作步骤

事项

操作

1

临时表检查

1) 在日库检查表空间TBS_INCT是否建立

2) 检查临时表INCT_NEW和影子表INCT是否按要求建立,索引是否建立。

3) 分区表数据建立是否正确,需包括近一年及未来三年的分区,同时应建立兜底分区。

2

数据迁移

4) 此操作需要暂停日应用服务,在执行批后备份之前暂停应用,重新绑定新的程序包INCTDBIO。

阶段一

5) 确认正常后,恢复批后备份和正常业务。

3

数据迁移

6) 在非生产环境中恢复数据库。

阶段二

7) 将INCT表中T日(即执行此操作的日期)之前的一年数据导出到临时文件中。

 

8) 再将临时文件中的数据导入进新的分区表INCT_NEW中。

4

数据迁移

9) 待临时文件导入完成后,再次暂停应用,将影子表中的数据插入到临时表INCT_NEW中。

阶段三

10) 将INCT_NEW表更名为INCT,同时更改对应的索引名。

 

11) 重启应用

 

12) 检查日应用服务是否正常

 

13) 择期将原INCT表删除

 

项目创新点

项目在建设或推广应用等方面创新点


(一)传统数据库历史数据清理方法的创新,有效地解决了海量数据清理问题。

面对比部分全国性股份制银行及发达省份农信联社还要大的海量数据困境,湖北农信联社的数据清理工作,仅仅只用了9个月时间,历经论证、测试及实施等多个阶段,终圆满完成了以往认为是不可能实现的任务,行业内实属少见。究其原因是我们采用了创新思路,一是依赖优良的应用架构体系,通过应用层的双写技术,将应用层的逻辑和底层数据库操作分开;二是依靠自我创新,实现HASH数据分区并行插入;三是将分区表技术与自动化运维结合在一起,实现了历史数据的自动化清理。这些理论加实践的创新,助力我们取得成功的关键。


(二)在线并行与自动化清理相结合,解决了一直困扰银行业内历史数据安全迁移的担心。

一直以来,银行核心历史数据的安全清理都是困扰相关从业技术人员的难题,费时费力,风险性高,且可能面临多次重复劳动的问题。在吸取以往经验教训后,本次建立了在线并行清理和常态化自动清理机制,这样一劳永逸的解决了重复性劳动给相关管理员带来的挫败感。


(三)存储资源大量释放,应用性能大幅提升

一是通过清理大6张数据库表历史数据,共清理了3521GB数据空间,释放了大量存储资源,实现未来3年的发展需要;自动化定时清理,使数据的年度增长量大幅度缩减,又再节省未来1-2年的存储需要,也就是说现在在不增加存储空间的情况下,可以满足未来5年的需要。二是通过清理,大量历史数据从现有生产环境中得以剥离,使生产应用性能得到了大幅提升。


(四)没有对现有系统硬件物理架构做任何调整

所有的改动都在应用层和数据库层,没有设计新的硬件架构的变更,也不用采购新的硬件设备,成本低,性价比高。

传统数据清理方式与本项目创新数据清理方式应用效果对比:

 

对比项

传统数据清理方式

本项目创新数据清理方式

实施时间

180小时

8小时20分钟

业务影响

须停止业务

在线或极短停机窗口

清理方式

定期脱机手动清理

每日在线自动清理

 

技术实现特点

系统架构、技术等实现特点

(一)独创性的采用“分区表、循环优化”的架构建设。数据库中的分区表虽然不是太新的技术,但以往只是将其用在诸如ODS、报表等系统中做历史统计信息使用,很少会在核心生产数据库中使用该技术,原因是分区表不能做到在线分离,但是IBM公司的DB2数据库可以做到在线数据分离(detach技术),且不影响正常业务的使用。


另一个不使用分区表的原因是需要管理员手动操作,增加了管理员负担和风险。但是我们自己写程序提供了分区轮转的方法,并放在夜间批处理流程中自动完成分区数据的清理工作。


新系统采用“分区表,循环优化”模式,使得业务需求与数据优化分离,实现业务流程的自动化运维,不需要人工干预,业务人员可以更加关注与业务本身的需求,运维部门也从繁重的数据优化工作中解脱出来,可以投入更多精力从事其它工作(关于具体实现方法请参见专利《常态化数据清理方法》)。


(二)应用层的双写技术。通过采用应用与数据库交互的模块化改造,实现了在无需中断业务运行的情况下,历史数据表和新增数据表进行分离,这种新模式我们定义为“双写”模式。新模块定制的“双写”的模式使历史数据和新增数据进行分离,这就为数据进行了大幅度缩减提供了条件,并且不损失数据质量,也没有对客户的使用造成影响,可以灵活的根据数据优化的要求,在不限定时间的前提下,对数据进行控制,允许数据在新老数据表中进行流动,适应不同的实施环节并可提供灵活性和扩展功能,这项创新手段不仅可以用于本次数据优化项目,甚至可以应用到以后的数据灾备等其它可以借鉴的项目中(关于具体实现方法请参见专利《基于完整事务性的在线数据迁移》)。


(三)基于HASH分块方法将增量数据快速插入到分区表中。在准备INCT表历史数据的这段时间—大约10天时间,影子表INCT会记录下所有的新增数据,以每天3千万记录数增量乘以10天,这段时间一共新增了3亿条记录,如何快速将此3亿条记录快速插入到新的分区表,对减少停机时间有很大帮助。我们特别为该操作定制了一个插入程序,该程序可以将影子表INCT中的数据分成若干份(份数由程序进程数指定),我们使用128进程数作为指定参数,程序会自动将数据按128因子做hash分块,这样插入程序可以分成128个进程执行并行插入,这极大的缩短了插入3亿条记录的时间,也大大节省了应用暂停的窗口时间(关于具体实现方法请参见专利《基于哈希算法的数据进程分配》)。


项目过程管理

项目各阶段的实施周期

2018年1月   任务书下达


2018年2月   需求分析完成


2018年7月   核心系统改造完成


2018年9月   自动化运行


2018年10月   智能规则学习研发规划


运营情况

推广应用、系统运行情况

项目试点的成功实施,取得了较好的应用效果。一是存储空间大幅释放,共释放空间3.5T,降低硬件扩容开销;二是各类数据库表条目大幅缩减,内部户交易明细、存款明细共减少近36亿条;三是系统重要指标大幅提升,联机处理效率提升了30%,夜间批量效率提升了50%,夜间追账效率提升了100%,数据库效率提升了50%;四是数据清理效率大幅提升,采用分区表机制每日自动清理仅需1分钟;五是核心数据库备份效率大幅提升,时间缩短8.5小时,效率提高30%;六是具有极强的行业适用性和可推广性,实施方案及技术创新不依赖特定的应用系统和数据库产品,适用于全行业。


1、通过采用独创的银行海量数据在线并发迁移方法论,利用“基于完整事务性的在线式数据迁移方法”、“基于哈希算法的多进程数据迁移方法”、“常态化数据清理方法”三个原创专利技术,实现了一次性数据迁移及清理,无需后续不断投入。以较小的成本实现了传统方法需投入大量人力、时间、物力等才能完成的工作。


2、可清理历史数据,减少存储耗费。 以湖北省农信社项目为例,项目的成功实施共释放存储空间3.5TB,内部户交易明细表GECT记录数由原21亿条降至1.4亿条,大存款明细表记录由之前的26.7亿条降至12.2亿条,提高数据库运行效率50%。初步测算每年节省扩容采购费用约为600万元,节约了新购存储设备投入和机房空间、能源等整体使用成本。


3、自动化清理机制的建立与成功实施可为银行节省在数据管理方面的人力投入。以湖北省农信社项目为例,初步测算成本每年可节约维护费用200万。


项目成效

经济效益或社会效益

项目的经济效益

1、清理存量数据、建立自动清理机制、实现数据清理常态化。

清理存量数据共计3521G约现有核心数据量的1/2,核心日库使用率由90%降低至65%,卡库由95%降至56%,夜库由85%降至56%,卡库由95%降至56%,夜库由85%降至56%;



2、提升核心数据库处理效率,实现核心系统精简化。


批量季度结息由7小时缩短至3小时、查询及更新效率及追账效率提高近30%,ODS抽数INCT表由7小时降低为3.5小时、GECT表由3.6小时降低为0.6小时,报表生成时间缩短近1小时;


3、缩短核心数据备份时间,提升核心数据备份效率,实现备份高效化。

夜库备份时间降低近1/3约0.5小时,卡库备份时间降低近1/2约2.5小时,日库备份时间降低约1/4约5.5小时。


4、释放存储空间,提升核心存储可用性。

本项目实施完成后共释放存储空间3.5T,内部户交易明细表GECT记录数由原21亿条降至1.4亿条,大存款明细表记录由之前的26.7亿条降至12.2亿条,进一步缩短夜间批量运行时间和联机处理效率,提高数据库运行效率50%,保障了今后两年内存储使用空间,降低了存储扩容采购成本,初步测算为600万元。


5、数据分级管理,查询交易分流,降低核心系统负载。

通过分区表改造将各核心表按业务数据时间周期分别存放至核心、历史库、ODS中实现核心数据分级管理。依托数据分级对业务流程和应用程序改造,根据查询交易日期分别查询核心、历史库和ODS数据库达到查询交易分流的目的,有效降低核心系统负载。


专利申报:

基于本项目的创新性和独创性,正在申请三个专利和一个软件著作权,如下:

ü 专利申报名目:


1、常态化数据清理方法。


2、基于哈希算法的数据进程分配方法。


3、基于完整事务性的在线数据迁移方法。


ü 软件著作权获批名目:

湖北省农村信用合作社业务数据自动清理系统。

 

经验总结

项目建设、推广经验总结

本项目的推广价值:

1.业内适用及推广价值

大数据迁移是银行业普遍面临的数据库难题,经过本次项目实际验证,采用基于完整事物性的在线数据迁移方法对于大数据的迁移具有很深刻的推广价值,能够满足银行数据量庞大、维护窗口有限的特点。同时建立数据常态化清理机制不但减轻了数据运维的压力,也大大降低了银行运维风险。本项目创新数据清理方法在大数据清理方面,不仅在银行业内具有广泛的推广价值,在全行业都有一定的借鉴意义。


2.实践深度及广度价值

“基于完整事务性的在线数据迁移”是经过我社核心应用实际投产验证的行之有效的迁移方法,完成了理论到实践的大胆探索,在对应用影响小、短停机窗口的前提下,有效完成了大数据量的在线迁移,在可实践性、可推广性方面有很深的价值。而“基于哈希算法的数据进程分配”可有效缩短数据迁移时间,适用于在线迁移或对于停机窗口有限的离线数据迁移。建立数据常态化清理机制是银行数据运维体系迈向“自动化”的里程碑,只有实现了数据清理的自动化,才能真正实现数据运维自动化。


本文由2018年度农村金融科技创新优秀案例评选组委会授权发表,转载请注明出处和本文链接。

本网站案例,除特殊标明来源的,版权归金科创新社所有,未经许可不得转载,否则将视为侵权,对于不遵守此声明或者其他违法使用本文内容者,本网站依法保留追究权。另,本网站部分案例、观点文章来源于网络素材,如有侵权,请邮件联系 fenglei@fintechinchina.com 处理!
特别提示: 本网站免费为广大金融企业提供IT选型咨询服务,详情点击 【 需求提交 】

推荐阅读

更多

河南农信:基于大数据平台的智能审计管理信息系统

随着河南省农村信用社各项业务的飞速发展及信息化建设的不断深入,创新性金融产品和金融服务不断涌现,业务数据和业务流程复杂程度不断提高,交易信息和管理信息不断膨胀。

2018第二届农村中小金融机构科技创新优秀案例评选 河南农信 2018-11-01

安徽农信:基于人工智能的滨湖数据中心基础设施能效优化

数据中心基础设施能耗巨大,数据中心节能能够带来显著的经济和社会效益。而在数据中心基础设施中,空调能耗又占到全部能耗的70%,本项目通过将人工智能应用到数据中心基础设施空调系统运行控制中,为安徽省联社乃至金融行业数据中心基础设施节能降耗探索一条智能化创新的道路。

2018第二届农村中小金融机构科技创新优秀案例评选 安徽农信 2018-11-01

湖北农信:智慧学习平台

智慧学习平台的建设广泛运用互联网新媒体技术,集教、学、练、考评等要素,通过数字化学习运营将其打造为兼容、开放、共享、规范的多元一体化学习载体,成为全省农商行系统的学习中心,考试中心、直播中心、制度图书中心、员工交流中心,有效地提高了员工学习的时效性、便捷性和覆盖面,成为全省农商行“智慧银行”的建设重要载体。

第五届农村中小金融机构科技创新优秀案例评选 湖北农信 2018-11-01

江西农信:“百福快贷”项目

网络信贷项目依托互联网技术,采用全流程“不落地”线上操作模式,以大数据应用为基础,实现贷款申请受理、审批、放款、回收和贷后管理全部在线完成,整个贷款审批流程无需人工参与,实现了系统几分钟内自动产生审批结果,真正意义上达到了可足不出户就可完成贷款申请和收到贷款的目标。

2018第二届农村中小金融机构科技创新优秀案例评选 江西农信 2018-11-01

江苏省联社:风险偏好与限额管理系统

本项目旨在建设统一风险数据集市,打通风险管理相关数据,建立风险偏好与限额管理系统,提高各类风险识别、计量、监测和数据分析的能力,并提供给农商行风险管理相关的数据支撑,以帮助农商行进行合理的业务拓展与风险管理决策。

第五届农村中小金融机构科技创新优秀案例评选 江苏省联社 2018-11-01

重庆农商行:基于数据决策的全线上零售信贷产品“渝快贷”

“渝快贷”是重庆农商行推出的基于数据决策的个人全线上信用消费贷款产品。

2018第二届农村中小金融机构科技创新优秀案例评选 重庆农商行 2018-11-01

案例库

金融行业全面的数字金融创新案例,涵盖历届“鑫智奖·金融机构数智化转型优秀案例评选”、“农村金融机构科技创新优秀案例评选”、“城市金融服务同业案例征集活动”等科技创新参评案例

  • 农信/农商行
  • 数据迁移
  • 数据存储

微信
咨询

微信咨询

扫码添加金科小助手微信号
咨询案例和解决方案相关信息
或联系对应机构