1,py-mysql-elasticsearch-sync《github 工具》
简介:
python版本的mysql导入es的插件
通过配置config.yaml文件,该插件可以将mysql的数据导入到es中。
使用:
es-sync config.xml
程序流程:
思路为:1分析mysqldump导出数据 - > 2分析binlog
该插件,首先会执行mysqldump指令,将mysql中的数据和数据表定义提取出来。然后使用xml解析出需要使用的部分。对比自定义的mapping规则,选择id和字段。最终批量上传给es服务器。
完成上一步操作后,程序会读取mysql的binlog,并从binlog第一行开始读取,直到binlog最后一行,同时将程序执行的binlog位置记录到binlog.info中,用于下次从此开始导入数据。
另外,若已经存在binlog.info。该插件不会执行第一步的操作,而是直接从binlog.info记录的位置开始导入数据。
以下操作说明:
如下操作是将数据库清空后,打开了数据库binlog,然后往数据库插入数据。数据插入完毕后,开始向es导数据。
因此遇到了409版本错误。 (因为mysqldump导出的数据就是binlog中对应的数据操作记录)
安装:
pip install py-mysql-elasticsearch-sync
注意可能会出现依赖包版本冲突 --- pip install --ignore-installed xxxx
添加开