MySQL数据实时接入Easysearch,零代码迁移全流程

随着业务对数据搜索与分析能力的要求不断提高,越来越多的团队开始将关系型数据库中的数据迁移至搜索引擎中。
本篇文章将分享如何通过AWS DMS,实现 MySQL 数据无缝迁移到EasySearch,并打通实时同步链路的全过程。

注意:AWS DMS 原生仅支持托管的 OpenSearch 和 Elasticsearch,不直接支持 EasySearch。本文将介绍如何通过一些配置技巧,优雅地解决这个问题。


一、准备 MySQL 源数据库

1. 创建数据库与数据表

首先,我们需要准备好待迁移的 MySQL 数据库。我这里使用的是DBeaver工具,当然你也可以选择更专业的 MySQL Workbench 或 DataGrip。

新建数据库时,选择utf8mb4编码,库名命名为source(后续 DMS 迁移任务中会用到)。

新建数据库

接下来创建数据表并定义字段。图形化工具可以避免手写 DDL,对非 DBA 用户非常友好。

新建表

2. 插入测试数据

为了验证迁移效果,我们先写几条假数据。

填充数据

确认数据已成功写入并提交。

确认数据


二、配置 AWS DMS 迁移

1. 创建源端点(MySQL)

在 AWS DMS 中,首先需要定义源端点。MySQL 作为数据源,EasySearch 作为目标端。

创建源端点

2. 创建目标端点(EasySearch)

我的 EasySearch 部署在公网的 Linux 服务器上。配置目标端点时,有两个重点:

  • 关闭认证与 TLS,将传输协议改为 HTTP
  • 伪装为开源 Elasticsearch,绕过 DMS 的原生认证要求

配置Easysearch端点

只需要调整这两个关键参数,即可完成兼容。

Easysearch端关键参数

3. 创建复制实例

迁移任务需要一个复制实例,即 DMS 后台自动启动的迁移代理服务器。

复制实例

4. 测试连接

实例启动后,记得测试源端(MySQL)和目标端(EasySearch)的连通性,确保网络正常。

测试MySQL连通

测试Easysearch连通


三、创建迁移任务并启动

在控制台新建迁移任务

新建迁移任务

1. 预检查:开启 MySQL Binlog

为了支持 CDC(持续复制),需要提前在 MySQL 开启 binlog,并调整格式为ROW

开启binlog

修改binlog格式

2. 创建迁移任务

在 DMS 中创建任务,选择持续复制模式,源库填写source,EasySearch 会自动将数据表转为索引。

迁移任务

注意:目标端为 EasySearch 时需要关闭数据验证,否则迁移任务会因兼容性问题失败。

关闭验证


四、验证迁移效果

1. 启动任务并查看索引

EasySearch 初始化状态下只有默认索引。
启动任务后,DMS 自动创建了一个新索引newtable,映射 MySQL 的数据表。

EasySearch初始状态

newtable索引

打开索引,可以看到 MySQL 数据已转换为 EasySearch 的文档格式。

查看数据

2. 模拟实时数据同步

因为是 CDC 持续复制模式,我继续向 MySQL 插入新数据,模拟上游系统的实时写入。

继续插入数据

EasySearch 这边几乎实时就收到了新数据,验证了迁移链路的连贯性。

查询新数据


五、总结

本次实战中,借助 AWS DMS,我们实现了从 MySQL 到 EasySearch 的实时数据同步,具备以下优势:

  • 无需改造业务系统,兼容现有 MySQL 数据结构
  • 支持 CDC,保证数据的实时同步与一致性
  • EasySearch 原生接入,数据即迁即用

虽然 AWS DMS 默认并不支持 EasySearch,但通过合理配置与兼容策略,我们依然实现了两者的高效打通。

如果你的业务需要将 MySQL 数据实时同步到 EasySearch,这套方案值得一试。

MySQL数据实时接入Easysearch,零代码迁移全流程

https://xu-hardy.github.io/mysql数据实时接入easysearch,零代码迁移全流程/

作者

Xu

发布于

2025-07-02

更新于

2025-07-01

许可协议

评论