近日,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 的具体花费不详)。
图1: AWS 基于 Oracle 数据仓库所面临的挑战不仅仅是 AWS,近些年来传统数据仓库迁移已经在各个行业呈燎原之势,这在互联网行业尤其明显。除了上述几点之外,以下也可能是企业需要对传统数据仓库进行迁移的主要原因:
技术相对封闭:传统数据仓库技术体系相对较为封闭,对于技术实力较强的企业来说,需要更高的灵活性和自主可控的能力,可以根据企业自身的需求进行增强或优化,而不是去适应供应商的产品发展路线图。
应用单一:传统数据仓库主要用于存储和处理结构化数据,常服务于企业报表应用。随着企业数字化转型的不断推进,他们对数据仓库或者说是数据平台提出了更高的需求,以支持更多创新应用,比如自助分析、实时计算、图计算、机器学习等。
国产化:这在国内金融行业比较典型。传统数据仓库系统和软件基本被国外的产品所垄断,随着这次贸易战的不断升级,核心金融科技的国产化被提升到了战略高度,未来金融行业的数据仓库国产化也是势在必行。
数据仓库迁移面临的挑战
数据仓库迁移是一项规模浩大的工程,尤其是较大规模的数据仓库,需要耗费大量人力与物力,其过程会面临各种挑战。甚至有企业在迁移时由于对数阶段的工作艰苦枯燥,导致流失了一整个团队。
数据仓库迁移,总体来说需要面临着如下三大挑战:
技术挑战
如何合理设计技术方案,保障模型、数据、脚本以及上层应用的平滑迁移。这尤其需要处理好新老两个系统间的技术差异,比如如何处理数据类型、函数、SQL语法、存储过程、结果一致性等方面差异。而且这在两个系统的技术栈不一致时,比如当前比较主流的从传统数据库向大数据平台迁移时,尤为突出。
业务挑战
在迁移过程中,如何降低迁移给业务带来的影响,做到尽可能的平滑迁移。这不仅需要在技术上解决,也要从管理沟通层面去解决。尤其新平台刚上线时,系统不稳定的现象可能会时而发生,需要建立快速响应机制和应对方案,降低给业务带来的影响。
成本挑战
迁移过程需要投入大量人力与资源,如何去提高迁移的自动化程度,提升迁移效率,有效控制迁移成本。这需要开发各种自动化工具,比如数据血缘分析工具,SQL脚本迁移工具等,来大幅降低对人力的依赖。
企业如何迁移?
下图是 AWS 在演讲中分享的他们此次迁移的5点最佳经验,非常值得参考,比如里面提到了尽量利用自动化工具,设计双跑方案等等。
图2: AWS 数据仓库迁移最佳实践经验总结
以 AWS 为代表的互联网企业的成功迁移经验,他们各自方案、方法与过程不尽相同,我们无法给出一个标准的迁移方案。但有一个共同点就是他们都具备一支很强技术实力的团队,经历了精心设计,周密计划,不断验证、迭代甚至是试错。
加入 Kyligence 以来,我也有幸经历了多个传统数仓向大数据平台迁移的项目,就传统数仓迁移我们积累了许多宝贵的一手经验,初步形成了产品、工具、方法论和服务的整体方案。
近期我们将与大家分享在数仓迁移过程中遇到的具体挑战和最佳实践,欢迎关注我们。
网友评论