OBT商业科技观察

国内金融数仓下移GaussDB数据库经验总结与分享

数据仓库作为银行业海量数据汇聚、存储、分析的核心,支撑着银行业借记卡、财务等核心业务系统的正常运行,具有至关重要的作用。
大多数国内银行早年曾上线传统数据一体机架构的数据仓库(如Teradata数据仓库)。历经多年发展之后,随着分布式云计算架构的快速发展,传统数据仓库已难以满足银行业务快速发展要求,面临着存储空间使用率见顶、计算能力超负荷、日跑批窗口超限、增需求支撑力不足、扩展性差、无法处理实时数据流、半结构化数据和非结构化数据,以及数据存储成本高、软硬件升级扩容成本高等众多问题。
因此数据架构转型和数据迁移是国内银行数据仓库系统向新一代分布式云架构转型的新需求和必要需求。
 

金融业需要全流程数据迁移服务

由于数据迁移复杂度高、迁移涉及面广、缺乏DWS数据迁移专业人员、无经验可循等多种原因,因此数据迁移往往面临着无法如期推进,或迁移效果达不到预期等挑战。

举例来说,一次数据迁移至少涉及1000+表、10000+作业、PB级的数据量,数据库表之间复杂的关联关系,需仔细梳理,合理分配迁移批次,才能减少业务影响;数据迁移涉及10+业务部门、应用与平台多家厂商的协作,需要协调、联合验证、多方协作,贯穿数据迁移项目全流程;在极高的迁移复杂度下,大多数企业内部缺乏熟悉数据架构转型的人员;面对数据架构转型的新需求,行业内可借鉴度低,企业内部“0”经验可循。

总之,银行数据仓库迁移重构项目,存在着底层平台差异大、迁移数据量大、迁移任务及关联上下游系统众多等重重挑战;国内云原生数据仓库迁移替代项目,不仅面临着难度大的问题,也面临着不可预知的压力。

针对数据仓库迁移重构面临的挑战,在项目实施前,华为公司项目组会做足准备工作,提前在GaussDB数据库上进行研发储备。

举例来说,华为会率先和银行建立联合创新实验室,开展GaussDB数据库试点工作,全面攻克技术难关,包括ODBC连接GaussDB数据库、特殊字符集迁移等技术难题;还会开展交易型数据库测试、试点等。

为保证项目顺利实施,项目组遵循从迁移调研、规划设计、交付实施到验收保障的全流程数据迁移服务实施周期(见下图),全程服务银行的业务向融合数据平滑过渡,助力该银行实现数据重构、业务拓展、成本降低等目标。


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”,设置导入时,是否区分“导入文件记录数为空”和“导入文件不存在”、导入时的缓存个数以及数据缓存区大小。

数据服务器上需要安装的工具包括Oracle客户端、sqluldr2(一款免安装的开源软件)、Gauss数据服务工具(GDS, Gauss Data Service),以保证后续的业务搬迁和数据迁移效率。


2选择数据迁移方案

根据需要迁移搬迁的数据量差异,以及数据导入时间的限制,选择迁移搬迁方案。

从数据量上来区分,数据迁移方案分为两种。(1)全量迁移搬迁:即迁移搬迁源数据库中的所有历史数据,一般在第一次做业务迁移搬迁的时候使用,全量迁移搬迁大部分情况下涉及数据量巨大,耗时很久。(2)增量迁移搬迁:这种方式仅涉及到源数据库中的部分数据,数据量较小,迁移搬迁速度快,且方案处理灵活。增量迁移搬迁时的增量方式可以选择按表增量、按时间增量、按模块增量或其他自定义增量方式。
从迁移搬迁方式上区分,迁移搬迁方案还可以划分为两种。(1)使用GDS工具迁移搬迁(搬迁速度约2700M/S),该迁移搬迁方案需要使用到sqluldr2、Oracle客户端工具及GDS工具。(2)使用kettle工具迁移搬迁(约20M/S,该值为换算值,实际导入是以记录为单位进行导入的),该方案只需要用到第三方开源工具kettle。

3业务搬迁

在完成数据库迁移搬迁方案的选择后,需要将应用程序中的函数、DML、业务程序等进行手工识别和转换,从而实现由Oracle到Gauss数据库的业务迁移搬迁。因此首先要进行数据库建模。

数据库建模是指在设计数据库时,对现实世界进行分析、抽象、并从中找出内在联系,进而确定数据库的结构,这一过程就称为数据库建模。在数据库迁移搬迁场景下的数据库建模相对简单,只需通过数据库特性差异分析,把源库中的数据库结构迁移搬迁到Gauss数据库中。
数据库建模一般是通过SQL实现的,所以,要将Oracle中的业务迁移搬迁到Gauss,就必须了解两者之间的语法差异。DML语句搬迁示例见下表。


4数据迁移搬迁

在数据库迁移搬迁中,数据迁移搬迁占据着非常重要的位置,主要包括历史数据迁移搬迁和实时数据迁移搬迁。

Gauss提供了并行导入工具GDS(Gauss Data Service)和外表(Foreign Table)功能,可以快速、高效地完成大规模数据导入。


5数据一致性验证

数据从Oracle导入到Gauss之后,还需要对数据一致性进行校验,以证明迁移搬迁前后数据是一致的。Gauss是采用Shared-nothing架构的MPP(Massive Parallel Processor,大规模并发处理)系统,采用水平分布的方式,可以将业务数据表的元组按合适的分布策略分散存储在所有的DataNode节点。

举例来说,某银行项目历经7个多月的数据核验,新老数据仓库通过技术手段实现平滑过渡,实现上下游无感切换。之后,才正式对外服务。
 

数据迁移成果和收益

通过新一代数据仓库集群GaussDB(DWS)建设,某银行将实现数据应用系统的计算平台统一、资源调度统一、数据架构统一,以及存储空间、计算性能及存储单位成本的“两升一降”目标,数据存储量比原来提升了7.4倍、单位存储成本比原来降低超过80%、性能提升45倍,实现了优化数据仓库、增加存储资源、提升运行效率的总体目标。

数据迁移后,该银行提高了整体跑批效率,有效保障业务开门,大幅度提高数据仓库的批处理时效,除个别特殊任务需求外,八点前能完成绝大部分的任务跑批,数据集市亦可在八点前跑批完成并全部下发。

 
数据迁移后,重要任务时效大幅度提升,大大缩短对公回单、企贷/个贷/中小自定义明细、历史账单查询等重要任务的加工及下发时间,为下游系统预留验证数据和应急处理的时间。

相关推荐

    无相关信息