揭秘建行数据迁移:何以一年完成海量数据“长征”?

绿树阴浓夏日长 ,楼台倒影入池塘。又是一年盛夏了,忽然想起了三年前的盛夏,和一帮兄弟们在机房挥汗如雨,加班加点搞“迁移长征”的场景。现在依然能想起当时机房里面满满的汗臭味,黏黏的鼠标,脏脏的键盘…

建行的数据平台从Teradata迁移到Greenplum挺早之前就开始了,本文所说的就是Teradata迁移到Greenplum第一期,从2016年的12月开始筹划,2017年3月算是正式开始,2017年9月迁移完成,2017年11月上层应用系统正式切换。  

由于当时是第一次做这种大型的迁移,行内没有过先例,业界也没有找到这么大规模迁移的案例。里面有多少坑、要多久、需要多少人,完全没有个参考。所以当时中心领导和处室领导决定先找个团队做个一期项目,趟出一条路,产出一些迁移工具、迁移经验、迁移的方法论,为后面的迁移寻找最快路径。

最终这个一期的迁移派到了P9平台团队。建行的P9平台团队是专注于以技术服务仓库、数据线各项目的,技术上有沉淀、有积累,但对数据模型、仓库内加工的应用不是很熟悉。所以当时接到这个任务时,有点“风萧萧兮易水寒”的感觉,但对即将到来的挑战也是充满期待的,毕竟这种迁移怎么说也是业内首次,做好了就是业内领先,甚至国际领先嘛,所以我们当时的内心还是蛮激动的。

一、为什么要迁移

建行的数据平台为什么要进行TD到GP的迁移?这个问题的答案主要来自以下两个方面:

1.新一代要求的开放性

由于TD采用一体机,且系统相对封闭,不符合新一代建设原则,所以需要寻找基于x86的开放数据处理产品。经过充分的调研、选型测试、专家评审,最终确定新一代大数据处理产品采用GreenPlum。

2.当时现状

由于前面的原因,决定了建行后期不会再大规模采购TD数据库,但数据建设的需求却不会停,在迁移开始之前,建行的两套TD库里面跑了大几十个系统,各个系统不断的在增加数据接入、数据加工任务,所以导致TD的负载压力越来越大,上面跑的应用加工经常发生延迟、跑不动,尤其是上线时候,更是亚历山大!

在迁移开始前,像反洗钱这样的复杂系统,时常发生报送延迟的情况,严重的时候甚至延迟到一周以上。改善反洗钱监管报送时效性刻不容缓。在这样的背景下,中心和处室领导,决定开始TD迁移GP的“长征之旅”。

二、如何迁移

首先,还是要明确要做什么,到底迁移哪一些。当时领导选择了反洗钱作为迁移工作的第一期,因为当时反洗钱延迟影响比较大,又是比较重要又比较复杂的系统,如果迁移完成,既能提升反洗钱系统的时效性,又能大量减轻TD数据库压力!为了能够更加彻底达到迁移的效果,我们选择了从源数据接入、仓库各层加工、反洗钱基础数据加工一整条线整体迁移的方案

接着需要梳理具体有哪些工作,哪些事项,再对各项工作进行计划安排。当时我们梳理出主要工作有范围分析、环境准备、数据模型迁移、数据初始化、脚本迁移、调度迁移、数据一致性校验、应用切换等工作。

当然,首先要清楚的是,迁移绝对不是一次成功的,必然是要迭代进行的,一定是迁移-数据校验-发现问题改进-迁移-数据检验-发现问题改进-….

具体的各项工作如何开展,我们做了哪些工作将在后续的系列文章中陆续讲解,先就各项工作做简单介绍:

1.范围分析

范围分析工作看着比较虚,实则非常重要,在迁移迭代过程的深入中,我们越发感觉范围分析精确的重要性。因为如果在范围分析阶段,少分析了一张表,甚至一个视图,这种缺失经常在最终的数据校验阶段才能被发现,这意味着,必须有下一轮的迁移迭代,这个成本无疑是巨大的。

2.环境准备

主要是测试环境和生产环境中数据库、ETL、调度等环境的准备。

3.数据模型迁移

模型这个词用的地方太多了,容易产生歧义,此处的模型指的是表、视图等结构。要实现迁移,首先要把模型迁移到GP。

4.数据初始化

主要是将TD上的初始化截面数据复制到GP中,作为初始化数据。

5.脚本迁移

脚本的迁移其实就是语法的迁移。整个迁移中,脚本迁移是重中之重,虽然不是耗时最长、最困难的,但一定是最具技术挑战的。所幸,经过我们P9平台迁移团队的努力,最终制作出了实现95%以上的脚本自动迁移工具。在此需要特别感谢林舒杨同学,在我们原本只能做到90%,实在无法更进一步的情况下,找到林舒杨同学,其凭借强大的技术能力硬是生生的做到了95%以上。

6.调度迁移

主要是将原本在数据仓库调度系统中的作业配置迁移到P9的新一代调度系统中。

7.数据一致性校验

如果脚本迁移是最具技术挑战的环节,那么数据一致性校验就是最困难、耗时耗力最大的一个环节。迁移完后,经常被邀请去和别的团队交流,我经常会说一个数字‘334’,意思是如果迁移时间是10分,那么数据初始化要占3分,所有的模型迁移、脚本迁移、作业迁移、性能优化等一堆工作占3分,最后的4分都是在做数据的一致性校验,而且这还是在我们的数据一致性校验工具在做到极致的情况下。整个迁移产出的一系列工具中,让我们最有成就感、做得最极致的,也是这个数据一致性校验工具。

8.应用切换

应用系统在确认迁移数据质量满足其加工需求后,将数据源从TD切换成GP。

三、迁移成果如何

迁移的过程还是蛮艰苦的,尤其是数据一致校验阶段,感觉就像是长征路上的过雪山、过沼泽地,但最终我们迁移团队顺利的到达了延安。经过半年多的努力,最终我们成功迁移了300T左右的初始化数据,1000多个物理表,1500多个作业,1200多个脚本,迁移系统至今稳定运行。

对迁移系统影响:

反洗钱系统切换到我们迁移后的GP仓库数据后,这两年甚少听到报送延迟问题,这与迁移之前时常报送延迟一周以上的情况对比,效果是非常明显的。而且切换后,整个反洗钱日常报送时效性提升了7~8小时,月末提升2~3天(2018年1月统计数字)。

对TD影响:

反洗钱系统切换到GP以后,正常运行了一段时间后,TD下线了一些不再需要加工的作业,并且减少了原本反洗钱每天需要从TD复制基础数据的大量复制作业,整个TD的负载下降也相当明显,TD上的各应用加工时效也实现一定程度提升。

对后续TD2GP迁移项目影响:

作为第一期项目,我们成功的制作出了一系列迁移工具,包括自动化脚本迁移工具、自动化模型迁移工具、自动化数据一致性校验工具,使后续的迁移项目直接使用工具实现自动化的迁移,极大地减少了人力迁移成本,缩短了迁移周期,实现了敏捷迁移。此外产出了整体迁移方案,使后续迁移项目实现清晰的项目管控,项目、成本计划,有的放矢!


关注微信公众号

VMware 中国研发中心