直击结构迁移和SQL转换痛点,华为云UGO要做愚公移山的事情

举报
技术火炬手 发表于 2020/09/21 11:28:41 2020/09/21
【摘要】 愚公移山的故事想必大家都听过,其实数据库领域也有愚公移山:移走传统主流商业数据库。

愚公移山的故事想必大家都听过,其实数据库领域也有愚公移山:移走传统主流商业数据库。

但数据库迁移哪是想迁就能迁的,其中涉及的问题繁杂,且不能出差错。尤其是令人头疼的兼容问题,不但涉及到结构迁移、语法转换、SQL转换等复杂操作,对数据库性能要求也很高。

针对此难题,华为云数据库和应用迁移 UGO(Database and Application Migration UGO,简称为UGO)应运而生。

UGO谐音愚公,寓意愚公移山,表示华为云将坚持不懈搬走传统主流商业数据库这座大山。

数据库迁移的12个难题

传统的数据库迁移可以说是充满荆棘与折磨,我们将迁移过程中可能遇到的12个问题抽象总结为四点:评估难、改造难、迁移难、优化难。

1.jpeg

既然找出了问题,就需要有解决方案,那么华为云是如何解决这些难点的?

华为云数据库迁移的整体解决方案,为线下/线上的数据库迁移至华为云,提供了完善的迁移工具集和开发运维工具集,通过结构迁移(UGO的定位)、数据迁移、数据校验、流量回放、开发运维,打通数据库迁移端到端各个环节,解决异构迁移难点,让客户的迁移过程省心、放心、安心。

2.jpeg

下面我们主要谈谈UGO。

UGO迁移方案解析,层层递进

UGO是华为纯自研的数据库结构迁移服务,专注于异构数据库对象及应用程序中SQL转换,助力用户快速实现异构数据库的上云搬迁。

3.jpeg

它的研发始于2015年,当时的目的是进行异构数据库到GaussDB的语法转换,为GaussDB的业务拓展立下赫赫战功。

随着GaussDB云化发展,UGO也从线下工具搬迁到云上服务,通过UGO,可以支持主流商用数据库到华为云上异构数据库的语法转换。

UGO的迁移方案包含五个层次:

第一层:数据源层,支持线下/其他云数据库作为源端,也支持应用程序作为源端。

第二层:采集层,对数据库或应用进行数据采集,采集信息除了对象结构和SQL之外,还包含容量、性能、复杂度、配置等信息。

第三层:迁移评估层,分析源库进行画像,对目标库的兼容性、选型、规格、工作量、风险等进行评估,提前预知风险。

第四层:改造层,对采集的对象进行等价语法转换,并对转换后的语法进行校验测试。

第五层:迁移上线,对验证通过的对象自动应用到目标端。

4.jpeg

同时,UGO提供了与华为云数据复制服务DRS、数据管理服务DAS的集成接口,通过DRS可以抽取数据进行性能测试,发现性能问题,并通过DAS进行性能诊断与优化。

6大核心功能,直击结构迁移和SQL转换痛点

本次UGO将发布6大核心功能:数据库源库画像、目标选型与规格、兼容性分析、工作量评估、数据库结构迁移、应用SQL迁移。

其中,源库画像以海量源库的业务场景为样本、以数据库关键指标为特性进行算法训练,以得出该源库实例的画像信息。

5.jpeg

目标选型与规格以源库画像作为输入,经过UGO目标推荐模型,为用户推荐合适的目标库和规格组合。目标库的选型方案会根据源库画像输入动态生成不同推荐组合。

兼容性分析以源库画像为输入,通过UGO内核对目标库的转化率,对14个核心对象类型进行兼容性分析。兼容性分析又包含原生支持、UGO支持和不支持。对不支持的对象,我们将TOP特性列举出来,并维护DBA知识库对其提供改造建议。经过过去几年对内核的持续建设,UGO在亿级别样本训练的基础上,语法转换率达到了80%。

6.jpeg

工作量评估以源库画像为输入,线下海量场景的人力迁移成本为评估基线,经过UGO的评估模型,可以分析该数据库实例的迁移成本,包括DBA、开发、测试的工作量。

7.jpeg

数据库结构迁移以预迁移评估为输入和方案指导,支持用户在转换前自定义过滤迁移对象,转换完成后,标记转换失败对象和失败原因,用户可以根据失败原因进行对象校正,校正之后进行验证测试,验证失败对象回到校正步骤进行重新修改,持续提交验证。直至所有对象验证成功后,整个迁移实施流程结束。

应用SQL迁移分为2部分:

8.jpeg

第一部分在应用侧部署Agent进行流量捕获,采集从应用侧提交到数据库的SQL语句,并通过UGO内核进行动态转换,转换后的SQL在目标侧进行回放,并生成性能分析报告。

第二部分对应用侧提交到源库的SQL进行采集,采集之后通过UGO内核进行转换,在目标库验证转换准确性,生成SQL翻译报告,供开发人员进行应用程序改造。

典型场景下,UGO最高节省80%+的工作量

技术解读之后,我们再以两大典型业务场景来描述用户在主流商业数据库替换过程中的痛点和诉求,以及UGO帮助用户快速实现搬迁。

9.jpeg

金融场景下,客户的交易类核心业务主要使用Oracle来承载,用户希望将核心业务从Oracle向GaussDB(openGauss)迁移,迁移的痛点一是业务模块太多,迁移成本高,二是手工迁移的错误定位困难。UGO的自动化迁移和错误定位能力,一举帮助用户节省80%+的工作量,也使得UGO的迁移方案在金融行业内可以得到批量的推广。

大企业场景下,用户的业务场景包含交易类型和分析类型,通常使用Oracle及Oracle Exadata来承载。用户在迁移过程中目标选型包含MySQL、PG、GaussDB(openGauss)等等,一方面不同业务场景的选型是用户的难点,另一方面大量业务实例下的人力迁移成本也是痛点之一。

UGO根据源库画像进行目标库的推荐、并通过自动化转换,综合可节省用户约70%+的迁移成本,让UGO在大企业业务场景中的适配和推广更加稳健。


【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。