Tapdata 技术博客
Tapdata 技术博客

实录:电话咨询数据库数据迁移“100” 个问题

2024-11-08 16:38 TapData

参加 “央企” 项目改造会后的,“数据库瞎想”

这段时间国产数据库的话题频繁出现,新时代新需求,最近研究如何替换 MySQL 到国产数据库的过程中,发现有这样的需求。不乏一些老的系统,软件没人维护,之前编写软件的开发人员已经找不到踪影,应用系统的数据一直增长上涨,这些客户共同的特点,数据库要国产化,导致数据迁移的问题,说难不难,说简单也不简单,要求系统不停机,业务连轴转,增量数据快速上涨的情况下追平数据,业务代码不能改造,要求数据同步能及时,减少切换等待的时间,这里查询了一些资料,也咨询了一些成熟的产品。

比如“阿里云   DTS ” ,在央国企项目里面不能有国外产品,什么 OGG、Kettle   这些ETL软件不能出现在项目的名单上,产品涉及政治政策问题是不能妥协的,技术中有些开源的产品如 Datax,Canal   ,这些开源产品在出现问题后并不能保证 100% 解决其中开源软件的问题,满足不了形形色色的企业需求。最终方案必须在国产的软件里面寻找,必须保证满足核心项目中出现数据传输维内托后,有软件的厂商进行解决成为寻找软件的必要选项。关于需求目前比较笼统,几句话总结:


1 从 MySQL 同步到国产数据库,哪个国产库目前并不能完全确认,且 ETL 软件能支持的国产数据库越多越好。

2   需要进行增量的同步,且同步数据的速度要快要及时,尤其增量数据的同步部分。

3 需求比较模糊,在寻找解决方案的过程中需要落地详细的方案,以防后面客户收紧需求,让现在的工作变成无用功,这里对任务进行了拆解。

4 需要数据同步功能和数据迁移的功能完美的结合和切换

5 支持国产数据库产品种类要丰富,做到大部分国产数据库都支持,后期成为一个标准型的方案 。

6 需要长期稳定的增量同步,最小化影响生产库源库的性能 。7 纯国产软件,有商业支持,有后续的维保支持。

在传统方案中不花钱的数据同步和迁移的方案可以总结

1   Canal

2   Kettle

3   阿里云 DTS 迁移

4   各个数据库厂商自身的迁移软件

这些方案都有各自的优势,其中各个软件都有各自在国产化项目中的硬伤

1 Canal 本身对数据库的源库的种类有要求:

必须是 MySQL,作为通用性的方案显然是不实际的。

2 Kettle 国外的ETL软件:

这不符合国内央国企的,项目中的软件全面国产化的硬性要求。

3 阿里云 DTS:

在性能上阿里云的 DTS 是无可挑剔的,但使用的范围限于云上,这点使用的范围很窄,不能作为通用性方案。

4 各个厂商的迁移软件:

大部分厂商的迁移软件都是适配自身的数据库产品,对其他数据库产品的兼容性有问题,所以不能作为通用性方案。

以上这些软件和方案无法满足国产化项目中的数据同步或迁移工作的通用性方案

在为央国企大型客户服务的过程中,ETL 软件在整体项目中的作用不容忽略,甚至这是整体项目能否成功的关键因素之一,这些是数据库人需要考量和思虑的问题。因为之前并未对ETL软件有过多的研究,所以把这个问题抛给了一些数据库专业群群,看看大家的意见和方案,给出各种答案都有,其中一些群里的群友提供了一些国产的数据库数据同步的软件,有几个人都提到了 TapData。

虽然万能的群友给出了答案,这里还需要进一步对软件进行更多的了解,并且弥补一下 ETL 方面的缺少的知识,以便在后续的工作中,能应对甲方的质询和疑问,做到对答如流。随即这里找到了 TapData 的联系方式,直接拨打电话进行咨询,下面是通话的记录。

我:喂,你好,是钛铂数据对吧?

客服:是的,这边是 TapData

我:这边有一个需求,想和您咨询一下,您看方便吗?

客服:方便,您这边有什么需求

我:这边我们需要将   MySQL 同步到一个国产数据库,现在这个国产数据库还不好说,我们就以 OceanBase   作为一个假设的目的库,这里需要数据的传输方式是同步性质的,不是仅仅是迁移数据,ETL   软件必须为国产自主,且适合云上云下进行部署,云下部分情况不能将数据库暴露走公网,要确保可以单独部署,云上部署时可以有托管的方式,数据同步的性能要有一定的保证,出现问题咱们要第一时间解决客户的问题,我这边的需求您清楚吗?

客服:我这边在重复一下,MySQL 同步到国产数据库,具体哪个国产数据库暂不清楚,暂定 OceanBase,部署的方式要灵活,在出现问题的情况下,需要 ETL 厂商进行干预和支持,大致需求是这样的对吗?

我:对,您看可以吗?

客服:您稍等,这样的需求是我们软件的基本功能,最近也经常有客户过来咨询,我来把之前一些客户数据同步方案中,技术的部分和您介绍一下,基于客户的信息的敏感性,我们只能对技术的部分进行阐述您看行吗?

TapData 有成熟的文档,您有微信吗?   这里把技术页面推给您,您边看,咱们边聊可以吗?我可以快速的和您过一下相关的内容。

我:可以的,您说的稍微慢一点,我这边记录一下。

客服:您看微信的链接,您点击一下,首先您看第一页,对您点击一下链接,您看我们目前支持国产的数据库有,达梦,人大金仓,南大通用,华为 openGauss,OceanBase ,阿里云全系的产品,腾讯云全系的产品,华为 GaussDB ,您看这些产品作为数据源都是可以的。https://docs.tapdata.net/prerequisites/supported-databases

我:好,这边时间有点紧,直接问比较快,我把我可能需要的同步源和目标库的情况给您,你看看行不行,咱们快速过一下。

1 MYSQL --- OceanBase   或者 OB Cloud

2 MYSQL --- 达梦

3 MYSQL --- PostgreSQL

4 MYSQL --- MSSQL (Sql Server)

5 MYSQL --- Doris

6 MYSQL --- GAUSSDB

7 MYSQL --- PolarDB for MySQL

8 MYSQL --- TDSQL

9 MYSQL --- TIDB

客服:看到了,您这边提供的信息,我看了一下,您问比较挺全,最近有大量的客户也在问,我们都支持,稍等我在对一下,OK 对我们都支持。

我:好的感谢。另外我们单位的客户,现在就有一个问题,我顺便问一下,他们购买了一个ETL软件,我就不提名字了,别的还行,就是做不了 MongoDB 的双向复制,我们也咨询了很多公司和方案,目前我们唯一得到确认可以做 MongoDB   双向复制的,只有阿里云,使用阿里云的托管的 MongoDB 产品,阿里云告诉我们,他们可以做 MongoDB 双向复制的原理是修改了 MongoDB 的源代码,但客户的 MongoDB 是线下的,目前我找不到方案解决这个问题。咱们有方案可以解决 MongoDB 双向复制的问题吗?

客服:您这个问题,我们有成熟的案例,还是一个比较大的国企的案例。

我:我打断一下,我说的是 MongoDB 双向复制,不是单向复制。现在阿里云也说线下的他们也没办法,通过开源的 Mongoshake 进行同步也不行,所以咱们这边是确认,MongoDB 双向同步是没有问题,有成熟的案例?

客服:您放心,我们做 MongoDB 是非常专业的,这边 TapData 还有MongoDB 的运维团队,最近我们和一个知名的国企大客户实施了 MongoDB 双向复制的工作,不用修改 MongoDB 的源码,稍后让我们的技术老师给您解释一下方案。

我:我再问一下,如果是 Oracle 同步到国产数据库,有方案吗,我发名单到您微信。

POSTGRESQL --Kingbase

POLARDB --- OceanBase

ORACLE---OceanBase

ORACLE --- 达梦

ORACLE --- OceanBase

ORACLE --- GAUSSDB

客服:您提出的这些源到目的,TapData 这边都可以进行同步。最近咨询的客户和您类似的情况有一些,我们一天能接到的 10 多个客户咨询,有 80% 是这样的需求,要求我们保证从原有的开源或国外的商业数据库迁移或同步到国产数据库,一部分客户开始 POC,并准备后续了。

我:刚才提到的数据的实时性的问题,也是需要关注的问题,一些主流的方案对数据的实时性并不能保证。向源端的 MySQL 写一条数据,要马上在 OceanBase 上查到,在不考虑目标数据库性能的基础上,ETL软件的流转和传输是关键。另外 TapData 部署的方式有哪些,不同部署的方式的区别是什么?

客服:实时性传输是 TapData 的一个优势,我找一下我们的技术人员来回答一下问题,他们对技术问题比我专业,我拉群。

技术人员:您好,这里看到我们客服和您讨论的问题了。

我:TapData 部署方式有哪些?安装的方式尽量的简单一些,如果不安装能试用更好,我们希望进行试用。

技术人员:这边可以,TapData 有免费的试用,也有开源的版本可以使用,已满足客户短时的需求。不安装软件使用云上的 TapData Cloud 版本进行数据的迁移或同步是一个好的选择。开源版本可以升级到企业版本,这里我们可以帮助客户进行试用后的产品升级。

我:麻烦您介绍一下,开源,企业,云上的版本有哪些特点、适应那些对应的场景。技术人员:这里简略的给您介绍一下,TapData 的产品部署,有三个方式:

1 TapData 云版:TapData Cloud 版本主要为客户短期迁移数据设计、云上的产品的数据迁移使用。举一个例子,客户想从A云将数据库数据迁移到 B 云上,通过 TapData 的云版,迅速的帮助您迁移数据。客户的短期数据迁移也可以用云版本,这样费用低,不占用客户的资源,即开即用,不需要安装和部署。即买即用的模式收到不少客户的青睐。

2 TapData 企业版:TapData 企业版是企业级别的产品。一些企业核心数据的传输场景非常适合,如数据的迁移、数据的同步、多数据副本传输、异构数据同步、异构数据迁移,多表数据合并(数据多源聚合)。同时企业版有丰富的操作界面,可以进行数据迁移中的图形化操作,方便客户的使用。


1-1.jpg

举例:比如A企业的实时数据,需要大数据通过 Diors 来处理,使用 TapData 将客户的数据库和 Diors 进行数据实时同步,不少客户担心,一些常见的问题。

如:数据链路断了(断点续传)、ETL 软件所在的主机死机、ETL 软件所在的主机资源不足的问题。TapData 企业版在设计之初对数据传输的环节提供高可用,在出现 ETL 设备异常情况下,进行 ETL 软件所在的主机进行高可用切换,保证 TapData 稳定运行持续为客户核心的数据传输做最完善的保证TapData 可以完成三节点,二节点高可用搭建和切换,我们有丰富的经验和可操作的管理界面方便客户进行监控和管理数据同步服务。


1-2.jpg


3 TapData 开源版本:TapData 开源 ETL 产品目前支持开源数据库产品之间的数据同步和迁移,其他部分未做任何限制。

我:这里有一个数据增量的问题,在使用 kettle 做数据同步一些大库,大表经常性因 kettle 读取增量数据的问题,导致数据抽取和业务争抢数据库资源,TapData 解决了类似的问题吗?

技术人员:这个问题的主要原因有两个

1 增量抽取数据的并发

2 增量抽取数据的方式 TapData

解决了这2个问题:

1 TapData 通过有效的灵活的参数,在发现数据抽取源库,产生资源争抢的情况下,调整并发立即生效。

2 利用 TapData 特有的功能,数据共享挖掘。通过数据共享挖掘,对增量数据仅一次进行读取。

TapData 有效的将这些数据存储在 TapData 的内部,从而不需要对源库进行频繁的数据扫描和抽取。与此同时我们建议用户,采用数据库日志增量的方式来对数据进行追取,数据的增量追取将不再影响源库的性能。这部分我们是有案例的,需要的话我发给您。这个功能也是我们在不断的迭代和客户的反馈中锻炼出来的,能及时的解决源库性能的问题。TapData 还采用了多线程和批处理技术,在数据库硬件资源充足的情况下,可以调节参数提高同步效率。

我:太好了,我这还有一个关于数据安全的问题和 ETL 部署的问题,现在一些央企国企的数据要传送到云上做数据备份,基于企业的性质和安全策略,数据同步软件是不能直接通过外网来访问企业的数据库将数据传输到云上,企业的数据库不能开通外网访问,TapData 有方案可以解决这类问题吗?

技术人员:这部分我们有详尽的方案可以支持对数据敏感的企事业单位的数据云备份的工作。一般 TapData 在这些企业指定的安全区域部署 TapData 企业版,并对 TapData 服务器进行安全加固,通过 TapData 服务器与云上的 TapData 服务进行数据的传输,达到二次数据保护。


我:后面的一些简单的问题,经过了解我觉得也就不用问了,比如在数据复制中,把原表的字段增加了一个,或减少,TapData 都能同步到目的库,且数据不丢失,这个也应该没有问题 ?对了刚才客服同学说您可以解释一下,TapData MongoDB 双向同步的功能实现,可以知道细节吗?

我比较关注 MongoDB 复制集同步的数据回环问题,阿里云可以进行 MongoDB 双向同步,再修改了 MongoDB 代码的情况下,在 oplog 上增加了可以辨别的信息,避免数据的回环,TapData 的方案是怎么做到的呢?

技术人员:微信一个图,您看一下

1-3.jpg



我:不好意思,我没太懂。

技术人员:这张图中的关键是在复制中通过 TapData 核验数据的来源,每条数据中都明确标识数据来源,防止数据回环同步的问题,在双向同步中,并不一定要去修改源代码,对传输数据本身来进行标识,对原有的系统破坏小,产生 Bug 的可能性更小。

我:明白了,TapData 更多利用了数据本身,采用轻量化的方案来解决客户的问题。方案很灵活,受教了。还有一个问题,TapData 和国产数据库的兼容互认的问题,TapData 和国产数据库之间互相兼容的认证有哪些?

客服:目前 TapData 已经和 OceanBase、Kingbase、GauseDB、TiDB、涛思数据 TDengine、海量数据库 Vastbase 等产品都进行了兼容性互认。您随时可以和 TapData 联系,随时可以协商 POC 的时间,您还可以去申请免费的线上 TapData产品,快速预约 TapData 产品的演示 https://tapdata.net/h-col-204.html。

我:谢谢您。

总结,经过这次电话的咨询,对数据库的迁移到国产数据库的工作,更加有信心了。在数据迁移的部分有专业的产品和公司可以帮助我们完成后续遇到的数据同步、迁移的难题。

关于 TapData

TapData Inc.「深圳钛铂数据有限公司」,成立于2019年9月,核心员工来自 MongoDB、Oracle、百度等,研发人员占比超80%,至今已获五源资本等多家头部风投数千万美元融资。已服务中国移动、中国联通、南方电网、中国一汽、中芯国际、周生生、富邦银行等数十家行业标杆企业。TapData 坚持“开放+开源”战略,推出 TapData Cloud,将无代码数据实时同步的能力以 SaaS 的形式免费开放,目前已积累 1,000+ 云版和企业版客户,覆盖金融、制造、零售、能源、政府等多个行业。此外,TapData 社区版也已发布,正在面向开发者逐步共享其核心功能。

TapData Live Data Platform是一个以低延迟数据移动为核心优势构建的现代数据平台。企业可以用来实现核心数据系统之间的实时同步、实时交换及实时处理。当实时数据需求日益增多时,企业可以结合分布式存储,使用 TapData 将孤岛数据无缝集中到中央数据平台,为众多下游业务提供一站式的实时数据交换和发布服务。


产品优势:

  • 开箱即用与低代码可视化操作

  • 内置 100+ 数据连接器,稳定的实时采集和传输能力

  • 秒级响应的数据实时计算能力

  • 稳定易用的数据实时服务能力

【推荐阅读】

服务行业的数据管理实践:TapData Cloud 如何助力连锁酒店物业的全球化运营优化

一文读懂什么是数据即产品(Data as a Product,DaaP)

高效数据移动指南 | 如何快速实现数据库 Oracle 到 Apache Doris 的数据同步?
行业认可 | 钛铂数据喜获2024爱分析 · 数据智能优秀厂商奖

TapData 知识库 | 一文吃透数据整合(Data Consolidation)

推荐阅读