从 AWS 完全去 Oracle,看传统数据仓库的迁移

陈晓杰
Kyligence 金融行业高级业务顾问
2019年 10月 23日

近日,AWS 首席布道者 杰夫·巴尔(Jeff Barr)在官方博客发布标题为《迁移完成–亚马逊的消费者业务部关闭最后的 Oracle 数据库》的文章,正式宣布其核心交易系统数据库迁移完成。在此之前,AWS在2018年就完成了传统数仓向Redshift的迁移。AWS 的迁移对我们传统数仓有何借鉴意义呢?我们邀请了 Kyligence 金融行业高级业务顾问 陈晓杰,为大家带来这篇文章。陈晓杰在数据仓库与 BI 领域工作 10 多年,参与过多个大型企业传统数据仓库迁移项目。

早在 2018年 的 AWS re:Invent 大会上,AWS 就已经宣布了所有基于 Oracle 的数据仓库下线,迁移至以 Redshift 为主的云数据仓库上。在名为《Under the Hood: How Amazon Uses AWS Services for Analytics at a Massive Scale》的主题演讲中,AWS 介绍了 Oracle 数据仓库的迁移过程。有幸我在现场听了这次演讲,结合自己的工作切身体会,分享一些关于数据仓库迁移的想法。

为什么要迁移传统数据仓库?

在去年的那次演讲中,AWS 分享了为什么要迁移基于 Oracle 的传统数据仓库的三大原因:

  • 可扩展性差:Oracle 基于计算与存储紧耦合的一体机架构,在数据量爆发性增长时,无法快速响应扩展需求。
  • 维护成本高:每个月要宕机100个小时以上进行系统升级和打补丁。
  • 价格昂贵:很多企业每年花在数据仓库上费用是以亿计算的(AWS 的具体花费不详)。
AWS 基于 Oracle 数据仓库所面临的挑战

不仅仅是 AWS,近些年来传统数据仓库迁移已经在各个行业呈燎原之势,这在互联网行业尤其明显。除了上述几点之外,以下也可能是企业需要对传统数据仓库进行迁移的主要原因:

  • 技术相对封闭:传统数据仓库技术体系相对较为封闭,对于技术实力较强的企业来说,需要更高的灵活性和自主可控的能力,可以根据企业自身的需求进行增强或优化,而不是去适应供应商的产品发展路线图。
  • 应用单一:传统数据仓库主要用于存储和处理结构化数据,常服务于企业报表应用。随着企业数字化转型的不断推进,他们对数据仓库或者说是数据平台提出了更高的需求,以支持更多创新应用,比如自助分析、实时计算、图计算、机器学习等。
  • 国产化:这在国内金融行业比较典型。传统数据仓库系统和软件基本被国外的产品所垄断,随着这次贸易战的不断升级,核心金融科技的国产化被提升到了战略高度,未来金融行业的数据仓库国产化也是势在必行。
数据仓库迁移面临的挑战

数据仓库迁移是一项规模浩大的工程,尤其是较大规模的数据仓库,需要耗费大量人力与物力,其过程会面临各种挑战。甚至有企业在迁移时由于对数阶段的工作艰苦枯燥,导致流失了一整个团队。
数据仓库迁移,总体来说需要面临着如下三大挑战:

  • 技术挑战

如何合理设计技术方案,保障模型、数据、脚本以及上层应用的平滑迁移。这尤其需要处理好新老两个系统间的技术差异,比如如何处理数据类型、函数、SQL语法、存储过程、结果一致性等方面差异。而且这在两个系统的技术栈不一致时,比如当前比较主流的从传统数据库向大数据平台迁移时,尤为突出。 

  • 业务挑战

在迁移过程中,如何降低迁移给业务带来的影响,做到尽可能的平滑迁移。这不仅需要在技术上解决,也要从管理沟通层面去解决。尤其新平台刚上线时,系统不稳定的现象可能会时而发生,需要建立快速响应机制和应对方案,降低给业务带来的影响。 

  • 成本挑战

迁移过程需要投入大量人力与资源,如何去提高迁移的自动化程度,提升迁移效率,有效控制迁移成本。这需要开发各种自动化工具,比如数据血缘分析工具,SQL脚本迁移工具等,来大幅降低对人力的依赖。

企业如何迁移?

下图是 AWS 在演讲中分享的他们此次迁移的5点最佳经验,非常值得参考,比如里面提到了尽量利用自动化工具,设计双跑方案等等。

AWS 数据仓库迁移最佳实践经验
总结

以 AWS 为代表的互联网企业的成功迁移经验,他们各自方案、方法与过程不尽相同,我们无法给出一个标准的迁移方案。但有一个共同点就是他们都具备一支很强技术实力的团队,经历了精心设计,周密计划,不断验证、迭代甚至是试错。

加入 Kyligence 以来,我也有幸经历了多个传统数仓向大数据平台迁移的项目,就传统数仓迁移我们积累了许多宝贵的一手经验,初步形成了产品、工具、方法论和服务的整体方案。