随着国家对自主可控的日益重视,目前在各个行业和区域中面临越来越多的国产化,采用有自主知识产权的国产数据库正在成为主流。长期以来,作为拥有纯国产自研背景的 TapData,自是非常重视对于更多国产信创数据库的数据连接器支持,旗下产品已陆续与阿里云、华为云、麒麟软件、优炫数据库、Apache Doris、人大金仓、OceanBase 等国产数据库及操作系统完成产品生态集成认证或产品兼容互认证。
本专题将以 TapData 正在支持的各国产信创数据源为原点,提供详细的数据库同步、迁移教程,为有需求的用户提供更灵活的工具选择。本文将介绍的 TapData 数据源为——达梦数据库管理系统(Dameng,DM)。
国产化浪潮之下,基础软件自主可控迫在眉睫,越来越多的国内企业开始从 Oracle、MySQL 这一类海外数据库向国产数据库迁移,TapData 的能力恰好满足企业快速、无痛实现迁移的需求,有效推动信创行业国产化建设更进一步。信创领域和基础软件设施的自主可控作为国家重点关注领域,全面国产化替代的进程仍在全速前进中。
同为国产基础软硬件生态的积极建设者,TapData 一直以来都在坚持拓展并持续深化与更多国产信创数据库的生态与战略伙伴关系,以期推动更多行业数据管理解决方案及创新应用的落地,提供更加广泛的基础设施选择及技术服务保障,从而为加速国产软硬件产品的应用普及与协同发展贡献力量。纯国产自研的背景更是为 TapData 的这一发展目标添翼。目前,TapData 已成功实现对主流国产数据库的广泛支持,以达梦数据库管理系统(Dameng,DM)为例:
DM 是新一代大型通用关系型数据库,全面支持 SQL 标准和主流编程语言接口/开发框架。行列融合存储技术,在兼顾 OLAP 和 OLTP 的同时,满足 HTAP 混合应用场景。凭借其丰富的产品架构、优异的性能表现、绝对的安全保证适应各种应用场景需求得到了众多客户的信任,不仅在国产数据库市场中成功占有一席之地,成为国产化替代的常见选项,也逐渐成为国际竞争中的一股重要力量。
在这样的背景下,如何高效地将现有数据迁移到达梦数据库也成了许多企业关注的重点。
一、达梦迁移流程
更多详情,参见《达梦技术文档-DM 数据移植》:https://eco.dameng.com/document/dm/zh-cn/start/
① 需求确认
移植会涉及诸多场景,如容灾备份、应用改造/替代、数据库版本升级/回退、数据库替代、业务分流等,不同的场景在数据流向、停机窗口、同步需求、数据处理等方面会有不同的需求,需要针对性地选择迁移工具和方案。
② 数据库调研
考虑迁移工具版本、驱动版本、基础环境、操作方式、对象个数、对象大小、数据量等均会影响迁移工作的开展,需要对源端和目的端数据库及服务器、业务系统进行调研,确保在满足相关需求的前提下稳定完成迁移。
确认迁移需求后,源端数据库需提前调研如下信息:
- 环境信息。提前了解操作系统层面,确定工具能否使用可视化界面,或者端口号开放情况,可以方便在后期部署安装过程中,及时避开处理问题时的一些干扰项。主要包括对服务器、内存、CPU、网络、端口、安全策略、是否具备可视化界面等信息的调研。
- 业务系统信息。提前了解应用系统层面信息,结合应用系统特性,为后面制定迁移策略、迁移时间评估等提供参考。主要包括对业务类型、业务运行时段、停机窗口、数据量、数据增量、并发访问量等信息的调研。
- 数据库信息。提前了解迁移数据量、字符编码、归档保留、数据库对象、表空间等信息,为后续迁移做好规划和相关准备工作。
③ 迁移评估
- 了解数据源特征
数据源分析是数据迁移的基础,帮助您评估数据同步所需的资源,制定精细化的任务配置策略,包括:
类别 | 说明 |
---|---|
确认源库类型 | 例如需进行异构数据同步,需在迁移前进行源端数据库兼容性评估,确保数据类型兼容性。 |
待同步表的数量 | 基于该数据估算同步任务的规模和复杂度,如果表数量众多,需要分批创建数据同步任务或优先同步关键数据。 |
数据变化量 | 估算日常数据变化量,以便于调整同步频率和性能参数,确保实时或近实时的数据更新。 |
单主键/唯一索引 | 主键或唯一索引对同步性能和数据一致性保障起到至关重要的作用,如果缺失可在后续任务配置时对该表进行特殊配置。 |
- 测试环境验证
通过在测试环境中进行细致的上线前测试,可以大大降低生产环境中遇到问题的风险,确保数据同步过程的平稳和高效,通常流程包括:
- 模拟真实环境:在测试环境中尽可能地模拟生产环境,包括数据量、数据类型和业务操作。
- 验证数据同步逻辑:确保所有同步逻辑按预期工作,包括数据转换、过滤和错误处理。
- 性能测试:检验数据同步对系统性能的影响,包括同步速度和系统资源消耗。
- 异常和错误处理:测试数据同步在面对网络中断、数据格式错误等异常情况时的表现。
- 恢复和回滚计划:确保有应对失败情况的恢复和回滚计划。
④ 移植工具选择
达梦在官方文档中提供了三种移植工具,分别是:数据迁移工具 DTS、数据复制软件 DMDRS 和数据集成软件 DMDIS,以满足不同移植场景的使用需求。除此之外,实时数据同步工具 TapData,也是非常常见的工具选择。他们各自的功能属性如下:
- 数据迁移工具 DTS
DTS 是一款免费的数据迁移工具,在数据库安装时自带有图形化的版本,同时也可以部署 DEM (达梦企业管理器),以 WEB 客户端方式提供。此工具主要适用于静态数据迁移场景。DTS 基于成熟的关系数据模型和标准接口,跨越多种主流大型数据库,能以极少的系统开销实现数据迁移工作。DM DTS 的技术原理图如下图所示:
DM 数据迁移工具提供了主流大型数据库迁移到 DM、DM 迁移到主流大型数据库、DM 到 DM、文件迁移到 DM 以及 DM 迁移到文件的功能,DM 数据迁移工具采用向导方式引导用户通过简单的步骤完成需要的操作,数据迁移粒度灵活,DTS 客户端部署简单,对移植环境要求较低。
产品特性
- 支持视图、存储过程/函数、包、类、同义词、触发器等对象迁移
- 支持数据类型的自动映射,编码转换
- 支持根据条件自定义迁移部分数据
- 向导式迁移步骤,上手简单
- 支持 Web 端操作、监控
- 支持迁移评估
典型场景
- 支持全量静态数据迁移,无法实现数据增量迁移方式;
- 为保障迁移全量数据的一致性,需要充足的业务系统停机窗口;
- 迁移过程中,源端数据库不能有数据变更以及对象变更。
- 数据复制软件 DMDRS
DMDRS 是支持异构环境的高性能、高可靠和高可扩展的数据库实时同步系统。通过秒级数据实时同步有效避免传统备份系统导致的无法完全满足企业对于信息系统不中断服务的问题;通过变化日志捕捉可以有效降低传统 ETL 工具因创建触发器、影子表等对业务系统带来的性能影响;通过实时的数据同步,构建“双活”的主备系统,解决传统基于数据库自身的主备系统中备机只读而无法对外提供写服务的问题。该产品可广泛应用于应急系统、容灾备份、负载均衡、数据移植、联机维护、订阅分发和多业务中心等业务领域。其基础实现原理如下图所示:
产品特性
- 部署形态支持单链路、文件转换、跨网闸、文件摆渡、主备、一对多同步、多对一同步、双向同步、级联同步、环状同步等
- 支持数据清洗转换 CVT 功能,比如:列名转换、字段映射、表合并、表拆分等
- 支持 Web 端操作、监控
- 支持 DMDRS 主备功能
- 支持目标端为 Kafka、Redis、HDFS( Hadoop 分布式文件系统)等
典型场景
DMDRS 移植场景下,源端数据库需要开启归档和逻辑附加日志。- 主要场景是停机窗口较短的业务系统,使用增量同步数据的方式缩短停机窗口,适用于平滑迁移或升级。
- 支持数据全量和增量实时同步,非介入式捕获增量对源端数据库几乎无影响。
- 可实现数据级灾备、业务分流,支持远距离异地容灾。
- 数据集成软件 DMDIS
DMDIS 实现了对数据抽取、传输、整合、以及装载的一站式支持,是构建数据中心、数据仓库、数据交换和数据同步等数据集成类应用的理想平台。其体系结构如下图所示:
产品特性
- 支持 TXT、CSV、Excel、XML 文件、消息服务器、WebService、Restful
- 支持全量抽取、增量抽取,双向同步、文件同步、批量文件读取
- 支持对于简繁体、汉字拼音、乱码处理、字符集转换、中文数字的中国特有的问题提供内置的转换规则进行处理
- 支持中英文日期时间格式自动转换
- 支持 Web 端操作、监控
- 支持二次开发接口,比如数据源的抽取装载接口、数据转换接口、元数据存取接口等
典型场景
- 周期性地从数据源中抽取变化数据加载到目的数据库中。
- 数据种类丰富,来源多样且数据质量参差不齐,需要数据清洗。
- 数据持续集成,不同类型数据集成周期可能不同,需要功能强大的作业调度与监控功能。
- 跨部门、跨地域的数据共享和业务协同,不同系统间需要同步共享的数据,而系统中的数据可能是异构的,结构和类型都不相同,无法使用常规手段。
- 实时数据平台型工具 TapData
作为一款开源的现代化数据平台型工具,TapData 支持将企业核心数据实时集中到中央化数据平台,并通过 API 或反向同步方式,为下游的交互式应用、微服务或交互式分析提供新鲜实时的数据。典型用例包括数据库到数据库的复制、将数据引入数据仓库或数据湖,以及通用 ETL 处理。TapData 专注于为企业提供高效、低延迟的数据管理方案,旨在以更加创新的方式解决长期存在的数据集成问题:
- 使用基于 CDC(Change Data Capture,变更数据捕获)的实时数据管道,相较于传统的批处理 ETL,CDC 技术能够显著减少数据延迟,使得数据在生成后立即被处理和传输,提高数据同步和更新的效率。
- 在点对点架构之外,还支持集中式数据中心架构,简化了数据流动路径,减少了点对点数据管道的数量,提高了系统的可管理性和扩展性。
其工作流程如下图所示:
(1) 使用内置连接器连接到现有数据库(需要准备好数据库的网络访问和凭证,同时可能需要对数据库进行一些配置)。
(2) TapData 将监控数据库日志文件(redo log、binlog 等),并捕捉变更(插入/更新/删除)。
(3) TapData 会将变更事件转化为一个以完整记录为负载的事件流。
(4) 用户可以将记录发送到 Kafka、另一个数据库或数据仓库。此外,还可以将数据存储在 TapData 平台中,以便调用 API 查询数据
产品特性
- 内置 100+ CDC 数据连接器,支持 TXT、CSV、Excel、XML 文件、消息服务器、WebService、Restful
- 支持全量抽取、增量、全增量一体抽取
- 无需编写代码,支持可视化的拖拉拽操作
- 数据管道支持 JavaScript 和 Python 用户自定义函数(UDF)
- 集中式缓存:减少管道数量,优化性能和资源利用
- 异构数据库支撑,打破 SQL 与 NoSQL 间的数据类型限制
- 多表连接 / 构建物化视图(beta)
- 支持 Web 端操作、监控
典型场景
除去周期性的静态数据迁移场景,TapData 还适用于低延迟数据传输需求至关重要的用例。例如:- 将数据导入数据仓库
- 将数据从 RDBMS 同步到 MongoDB、Redis、Elastic 以加速查询
- 为 Kafka 生成事件流
- 异构数据库复制
- 构建集中式数据平台
⑤ 制定移植计划
根据需求分析和数据库调研,结合每个应用系统的具体要求,选择合适的迁移工具,基于数据迁移的基本原则和迁移工具评估结果,制定合理的移植计划避免任何可能遗漏的步骤,保障迁移工作的稳定实施。
⑥ 移植实施
对于异构数据库移植到 DM,在正式迁移前,需要根据源端数据库的相关调研信息,对目标库的实例参数、表空间、用户等进行配置,提高 DM 对于 MySQL 数据库的兼容性,保障后续移植工作稳定进行。
同时,以上迁移工具均具有自动转换功能。大多数情况下,可通过相关迁移工具进行对象和数据移植,但由于异构数据库间语法并非 100% 兼容,少量数据则需要进行手动移植。
⑦ 移植结果校验
在进行正式环境的数据移植时,每一条数据都是真实的,有效的且完整的,在迁移完成后,必须源端数据库的所有对象都准确无误地迁移到目的端,一旦出现缺少对象、缺少数据和数据内容不正确的情况,可能会导致历史记录缺少,甚至某些功能模块失效等严重后果。因此在迁移完成后,需要确认是否存在迁移后的数据量、数据内容和对象个数与源库不一致的问题,如果不一致应进行对应的维护。
⑧ 移植后收尾工作
移植后的收尾工作包括:索引补录、更新统计信息、备份、整理对象脚本等内容,保障移植工作的完整性。
⑨ 应用移植与优化
一般情况下,源端数据库迁移完成后,直接修改应用连接到 DM。为了验证系统移植的完整性,还需要进行应用的相关功能和性能测试,确保改造后的应用系统和数据库处于一个最佳状态。
此外,在对应用系统进行全面测试后,排除移植过程中错误的地方,还应对数据库中的慢 SQL 进行优化,保证移植后的系统高效运行。
二、TapData 高效迁移教程:以 MySQL → Dameng 为例
更多详情,参见《TapData 帮助文档-连接数据源-自建数据库 Dameng》:https://docs.tapdata.net/prerequisites/on-prem-databases/dameng
完成 TapData Agent 部署后,即可跟随以下教程在 TapData 中添加 DM 数据源(支持版本:DM 7.x、8.x),后续可将其作为源或目标库来构建数据管道。这里我们将以 MySQL 为数据源,DM 为数据目标进行模拟演示。(*涉及工具版本为 Tapdata 本地部署版)
版本指路:
点击登录 Tapdata Cloud
申请试用 Tapdata 本地部署版
① 准备工作
在连接 DM 之前,还需完成数据库账号的授权等准备工作。TapData 同时支持 DM 作为源或目标,当 DM 作为目标库时,准备工作包括:
- 以拥有 DBA 权限的身份登录达梦数据库。
- 依次执行下述格式的命令,创建用于数据复制/转换任务的用户。
1. CREATE USER username IDENTIFIED BY "password" DEFAULT TABLESPACE table_space_name;
- username:用户名
- password:密码
- table_space_name:表空间名称
- 为刚创建的账号授予权限,也可以基于业务需求自定义权限控制。
1. -- 替换下述命令中的 username 为真实的用户名
2. GRANT CREATE TABLE, DELETE TABLE, INSERT TABLE, SELECT TABLE, UPDATE TABLE, CREATE INDEX TO username;
② 创建 DM 的连接
- 进入 TapData 控制台,在左侧导航栏,单击连接管理。
- 单击页面右侧的创建,在弹框中,搜索并选择 Dameng。
- 在跳转到的页面,根据下述说明填写 DM 连接信息:
连接信息设置
- 连接名称:填写具有业务意义的独有名称
- 连接类型:支持将达梦数据库作为源或目标库
- 地址:数据库连接地址
- 端口:数据库的服务端口
- 数据库:填写数据库名称
- Schema:Schema 名称,创建数据库用户时,达梦数据库会为自动创建一个与用户名相同的 Schema(全大写),如需连接多个 Schema 则需创建多个数据连接
- 账号:数据库的账号
- 密码:数据库账号对应的密码
- 连接参数:额外的连接参数,默认为空
- 时区:默认为数据库所用的时区,也可以根据业务需求手动指定
高级设置
- 包含表:默认为全部,您也可以选择自定义并填写包含的表,多个表之间用英文逗号(,)分隔
- 排除表:打开该开关后,可以设定要排除的表,多个表之间用英文逗号(,)分隔
- Agent 设置:默认为平台自动分配,也可以手动指定 Agent
- 模型加载频率:数据源中模型数量大于 1 万时,TapData 将按照设置的时间定期刷新模型。
- 开启心跳表:当连接类型选择为源头和目标、源头时,支持打开该开关,由 TapData 在源库中创建一个名为 _tapdata_heartbeat_table 的心跳表并每隔 10 秒更新一次其中的数据(数据库账号需具备相关权限),用于数据源连接与任务的健康度监测。
*提示:数据源需在数据复制/开发任务引用并启动后,心跳任务任务才会启动,此时您可以再次进入该数据源的编辑页面,即可单击查看心跳任务。
- 单击连接测试,测试通过后单击保存:
*提示:如提示连接测试失败,请根据页面提示进行修复。
③ 创建 MySQL 的连接
- 参照 DM 连接创建流程,完成 MySQL 连接配置信息填写,添加数据源 MySQL:
*提示:如提示连接测试失败,请根据页面提示进行修复。
③ 创建 MySQL 的连接
- 参照 DM 连接创建流程,完成 MySQL 连接配置信息填写,添加数据源 MySQL:
④ 创建数据复制/开发任务
- 左侧导航栏点击数据复制,并点击右侧创建:
- 进入 DAG 页面,构建数据复制任务,通过拖拉拽的方式添加源与目标节点,并连接源与目标:
- 单击源与目标节点,即可按需对二者进行设置:
- 保存任务:
⑤ 任务启动与监控
- 启动任务,任务全量同步正常运行:
- 增量事件正常同步:
以上,便是借助 TapData 快速实现 MySQL 到 DM 的全、增量同步的模拟教程。
后续,我们还将陆续输出 GaussDB、人大金仓Kingbase、Oceanbase、神州通用、南大通用、OpenGauss、瀚高、 TDengine、TDSQL、VastBase、TiDB 等热门国产数据源的连接教程,欢迎关注 TapData 官方公众号,了解更多。
【推荐阅读】
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。