自1970年关系型数据库被提出以来,至今已有50年历史。但在关系型数据库领域正在发生着巨大的变化,首先是互联网的发展,使得开源数据库越来越受欢迎,可扩展性成为支撑业务发展的重要特性,比如WebScaleSQL就是几个互联网公司共同推进的追求更高规模和性能的MySQL分支;然后是云计算的发展,传统关系数据库的市场面临巨大的挑战,用户倾向使用云服务和云数据库,传统线下数据库迁移到云原生数据库是主流趋势。
虽然企业有诉求,但异构数据库迁移本就不是一件容易的事,传统商业数据库如Oracle、DB2因为功能完整,语法丰富,很好地支持了事务和分析型场景,一般数据库很难替换掉。开源数据库一度被认为是传统数据库的挑战者,但最终还是难以动摇其垄断地位,直到近几年以AWS Aurora和阿里云PolarDB、AnalyticDB为代表的云原生数据库的发展,让大家看到了曙光。
据Gartner 预测,到2023年,全球3/4的数据库都会跑在云上,这意味着未来云数据库将主导市场。但是在传统数据库向云数据库进行异构迁移过程中,作为数据库使用者,我们如何评估异构迁移的兼容性、稳定性、性能风险呢?
越来越多的企业打算迁移,但从近几年的市场分析看,企业独立迁移成功的并不多。阿里巴巴从内部丰富的业务场景迁移开始,在异构迁移上通过项目实践,将科学的方法论最终沉淀为产品化的工具-ADAM(Advanced Database&Application Migration),ADAM将应用和数据库整体进行评估,制定迁移计划并提供智能转换能力,最大程度降低改造投入,将这个难题变为可规模化复制,阿里巴巴副总裁、阿里云智能数据库事业部总负责人李飞飞曾表示,“阿里云今年要帮1000家企业完成传统数据库上云”。
阿里云数据库团队这块款名叫ADAM(亚当)的产品,可以降低80%的迁移难度和项目成本,目前已支持多种异构数据库和应用迁移上云。
我们来看下ADAM是怎么做到的:
数据库智能选型推荐
传统异构数据库替换,一般要先找到精通传统商业数据库和云数据库的专业DBA,进行技术选型调研,找到可能合适的目标数据库,然后通过POC测试验证可行性。
ADAM通过对源库进行数据采集,分析客户对数据库的实际使用情况,结合400多项打标规则,识别出最适合的目标数据库,真正做到千库千面,无须经验丰富的DBA做技术调研,技术选型时间降为0;
如下图示例,针对某客户的语法使用特性进行分析,识别出该数据库属于“结构复杂、实时性要求高”的联机事务型,推荐OLTP型数据库;第二步,针对目前市面上主流的事务型数据库进行DDL和SQL的语法兼容性分析,并根据ADAM能支持的2000+自动转换规则评估出最终兼容性。ADAM不做强制捆绑,只提供公正的评估报告,由客户来最终决策要选择的目标数据库。
生成兼容评估报告供迁移决策
传统数据库替换,在构建完目标库后,进行POC手工迁移,并逐个验证,识别出不兼容点,评估是否适合迁移。ADAM通过自动采集的数据,根据语法识别和语义分析将源库应用特有语法进行兼容性评估,无须进行POC测试,即识别出风险点、兼容性、改造工作量、迁移成本等,确保项目可控。
如下图某客户示例,可以直观的看到数据库DDL兼容性、SQL兼容性,改造点数量、目标库成本(未打折预算)、风险数量等,点击详情可看到每个对象的具体兼容性情况。
数据库智能订正
传统数据库迁移改造,DBA识别出不兼容的DDL,根据官方文档逐条改造调试。ADAM通过智能学习,自动识别Oracle和业界通用数据库的语法差异,并进行智能订正,以SQL染色的形式将订正的差异点进行高亮标识;通过对数据库对象依赖关系梳理,提供按顺序执行的智能订正的对象DDL;例如Oracle数据库迁移到PolarDB-O,通过ADAM智能订正后,已可以做到95%的兼容性,即95%的DDL无需客户做任何操作即可以直接使用,并且对于其他不能通过软件自动化转换的5%,ADAM也提供了详细的专家建议和改造示例,DBA可根据示例很轻松的进行订正。
应用自助评估及改造
异构数据库迁移改造是地铁工程,所有环节打通才能通车,而异构数据库迁移一定涉及业务代码的改造,这是最复杂的部分。很多客户有几十个应用,已运行多年,改造无从下手。传统做法是数据库迁移完成后,部署应用进行测试,对报错的sql进行逐条修改。而ADAM的应用评估可帮助客户梳理应用和数据库的拓扑关系,分批改造,比如某客户有10套Oracle RAC,300个应用,通过应用拓扑分析,可以拆分为20多个应用分组,将应用分组和数据库的复杂关系变成清晰的拓扑依赖,将一个复杂的大规模应用和数据库迁移变为一个个库和应用组的迁移,大大降低改造风险。
同时经过应用评估可识别出所有不兼容的SQL及代码中的具体定位,并智能修订为兼容的SQL,客户根据代码定位可以一次性修改所有不兼容点。
可以看到,ADAM是从应用和数据库整体视角,端到端地帮助用户数据库进行迁移,同时生成评估报告、生成迁移计划、迁移对象智能订正、应用自助改造等核心功能沉淀。东南亚头部电商客户替换Oracle最终选择的就是ADAM+DTS+PolarDB的解决方案,阿里云数据库国际站产品负责人德迈介绍:“使用 ADAM 分析之后,我们发现,如果不使用 ADAM,从 Oracle 迁移到 PostgreSQL,80% 以上的数据库和应用代码是需要修改的,如果使用 ADAM 迁移到 PostgreSQL,只有10% 左右的代码是需要修改的,而通过ADAM+PolarDB,只有 5% 的代码需要修改”,这也是阿里云能够支持传统商业数据库大规模上云的主要原因。
ADAM集成内部数据迁移工具DTS、外部DSG等丰富的工具,为异构数据库迁移提供全链路服务和护航。