因此数据架构转型和数据迁移是国内银行数据仓库系统向新一代分布式云架构转型的新需求和必要需求。
金融业需要全流程数据迁移服务
举例来说,一次数据迁移至少涉及1000+表、10000+作业、PB级的数据量,数据库表之间复杂的关联关系,需仔细梳理,合理分配迁移批次,才能减少业务影响;数据迁移涉及10+业务部门、应用与平台多家厂商的协作,需要协调、联合验证、多方协作,贯穿数据迁移项目全流程;在极高的迁移复杂度下,大多数企业内部缺乏熟悉数据架构转型的人员;面对数据架构转型的新需求,行业内可借鉴度低,企业内部“0”经验可循。
总之,银行数据仓库迁移重构项目,存在着底层平台差异大、迁移数据量大、迁移任务及关联上下游系统众多等重重挑战;国内云原生数据仓库迁移替代项目,不仅面临着难度大的问题,也面临着不可预知的压力。
针对数据仓库迁移重构面临的挑战,在项目实施前,华为公司项目组会做足准备工作,提前在GaussDB数据库上进行研发储备。
举例来说,华为会率先和银行建立联合创新实验室,开展GaussDB数据库试点工作,全面攻克技术难关,包括ODBC连接GaussDB数据库、特殊字符集迁移等技术难题;还会开展交易型数据库测试、试点等。
为保证项目顺利实施,项目组遵循从迁移调研、规划设计、交付实施到验收保障的全流程数据迁移服务实施周期(见下图),全程服务银行的业务向融合数据平滑过渡,助力该银行实现数据重构、业务拓展、成本降低等目标。
GaussDB数据迁移服务流程图 来源:华为制图
五项核心技术攻关
1环境准备
包括组网设计(见下图)和数据迁移工具安装等。
在数据迁移前,需要合理设计软硬件环境,最大化使用系统资源,以提高数据导入性能。具体环境要达到以下几点。
(1)确保内网环境为万兆网,同时数据磁盘组I/O性能应大于GDS单核处理能力上限(约400MB),才可能将单文件导入速率最大化。
(2)并发导入场景,与单表导入相似,至少应保证I/O性能大于网络最大速率。
(3)单个DN处理一个导入时,目前没有SMP的情况下,性能瓶颈在CPU约30MB/s,因此单文件导入场景需要保证集群DN数需大于12。
(4)由于DN导入数据需考虑日志、数据和主备的I/O开销,大约为数据大小的4倍左右,因此单raid(4sas盘)上部署DN数不应超过3个。考虑到后续并发场景,应预留I/O提升空间,单raid配置1-2个DN更为合适。如果采用列存压缩则可适当增加DN 。
(5)I/O占满时,I/O请求将排队处理,会有一定性能下降。从压力平均和给数据盘减压的角度考虑,建议将CN,GTM,CM部署在空间稍大的系统盘(CN可能因计算下盘占用磁盘空间)。同时log等其他可能的IO业务也应在系统盘上。
(6)配置GUC参数“raise_errors_if_no_files”、“partition_max_cache_size”和
“partition_mem_batch”,设置导入时,是否区分“导入文件记录数为空”和“导入文件不存在”、导入时的缓存个数以及数据缓存区大小。
2选择数据迁移方案
根据需要迁移搬迁的数据量差异,以及数据导入时间的限制,选择迁移搬迁方案。
3业务搬迁
在完成数据库迁移搬迁方案的选择后,需要将应用程序中的函数、DML、业务程序等进行手工识别和转换,从而实现由Oracle到Gauss数据库的业务迁移搬迁。因此首先要进行数据库建模。
4数据迁移搬迁
在数据库迁移搬迁中,数据迁移搬迁占据着非常重要的位置,主要包括历史数据迁移搬迁和实时数据迁移搬迁。
Gauss提供了并行导入工具GDS(Gauss Data Service)和外表(Foreign Table)功能,可以快速、高效地完成大规模数据导入。
5数据一致性验证
数据从Oracle导入到Gauss之后,还需要对数据一致性进行校验,以证明迁移搬迁前后数据是一致的。Gauss是采用Shared-nothing架构的MPP(Massive Parallel Processor,大规模并发处理)系统,采用水平分布的方式,可以将业务数据表的元组按合适的分布策略分散存储在所有的DataNode节点。
数据迁移成果和收益
数据迁移后,该银行提高了整体跑批效率,有效保障业务开门,大幅度提高数据仓库的批处理时效,除个别特殊任务需求外,八点前能完成绝大部分的任务跑批,数据集市亦可在八点前跑批完成并全部下发。