zl程序教程

您现在的位置是:首页 >  数据库

当前栏目

Elasticsearch和MySQL数据同步(logstash-input-jdbc)全量增量方式同步近千万数据

2023-09-27 14:29:07 时间

同步方案:

  • 同步读写:最为简单的方式在将数据写到mysql时,同时将数据写到ES,实现数据的双写。
  • 异步双写(MQ方式):MQ的性能基本比mysql高出一个数量级,所以性能可以得到显著的提高。
  • 定时器程序:相关表中增加一个字段为timestamp的字段,任何crud操作都会导致该字段的时间发生变化,原来程序中的CURD操作不做任何变化;增加一个定时器程序,让该程序按一定的时间周期扫描指定的表,把该时间段内发生变化的数据提取出来;逐条写入到ES中。
  • binlog日志:读取mysql的binlog日志,获取指定表的日志信息。将读取的信息转为MQ,编写一个MQ消费程序,不断消费MQ,每消费完一条消息,将消息写入到ES中。
  • logstash全量、增量同步解决方案logstash-input-jdbc插件,能实现mysql数据全量和增量的数据同步,且能实现定时同步,版本更新迭代快,相对稳定。作为ES固有插件logstash一部分,易用
  • go-mysql-elasticsearch:其由go语言开发,使用 mysqldump 命令处理现有存量数据,并借助 binlog 的方式跟踪增量数据,从而保证 Elasticsearch 的数据和 MySQL 数据库中的数据保持同步
  • mysqlsmom:·