从ECS上的自建MySQL同步至Elasticsearch
更新时间:2020-04-28 14:13:07
阿里云Elasticsearch完全兼容开源Elasticsearch的功能及Security、Machine Learning、Graph、APM等商业功能,致力于数据分析、数据搜索等场景服务,支持企业级权限管控、安全监控告警、自动报表生成等功能。通过数据传输服务DTS(Data
Transmission Service),您可以将ECS上的自建MySQL同步至Elasticsearch,帮助您快速构建数据。
前提条件
- 已创建目标Elasticsearch实例,详情请参见开通阿里云Elasticsearch服务。
- 自建MySQL数据库版本为5.1、5.5、5.6、5.7或8.0版本。
注意事项
- DTS在执行全量数据初始化时将占用源库和目标库一定的读写资源,可能会导致数据库的负载上升,在数据库性能较差、规格较低或业务量较大的情况下(例如源库有大量慢SQL、存在无主键表或目标库存在死锁等),可能会加重数据库压力,甚至导致数据库服务不可用。因此您需要在执行数据同步前评估源库和目标库的性能,同时建议您在业务低峰期执行数据同步(例如源库和目标库的CPU负载在30%以下)。
- 不支持同步DDL操作,如果源库中待同步的表在同步的过程中,已经执行了DDL操作,您需要先移除同步对象,然后在Elasticsearch实例中移除该表对应的索引,最后新增同步对象。详情请参见移除同步对象和新增同步对象。
- 如果源库中待同步的表需要执行增加列的操作,您只需先在Elasticsearch实例中修改对应表的mapping,然后在源MySQL数据库中执行相应的DDL操作,最后暂停并启动DTS同步实例。
支持同步的SQL操作
INSERT、DELETE、UPDATE
数据类型映射关系
由于MySQL和Elasticsearch实例支持的数据类型不同,数据类型无法一一对应。所以DTS在进行结构初始化时,会根据目标库支持的数据类型进行类型映射,详情请参见结构初始化涉及的数据类型映射关系。
准备工作
为自建MySQL创建账号并设置binlog操作步骤
查看同步后的索引和数据
数据同步作业处于同步中状态后,您可以连接Elasticsearch实例(本案例使用Head插件进行连接),确认创建的索引和同步的数据是否符合业务的预期。
说明 如果不符合业务预期,您可以删除该索引及对应的数据,然后重新配置数据同步作业。
