ElasticSearch从入门到精通 (Logstash把mysql中的增量数据到ElasticSearch中)

1、前言

在上一篇文章中,我们使用Logstash把mysql中的数据全量导入到了ElasticSearch,并且有定时任务,每隔特定的时间然后又会重新导入一遍,如何ElasticSearch中的数据和mysql中的数据一致,则不会更改。虽然这样也能实现增量数据的同步,但是效率极低,浪费资源。接下来,我们将实现如何增量数据的导入。

2、修改mysql.conf文件

 # 执行的sql 文件路径+名称
- #statement_filepath => "/home/dcs/soft/logstash-6.4.0/mysqltest/test.sql"
 +  record_last_run => true
 +  use_column_value => true
 +  tracking_column => "id"
 +  tracking_column_type => "numeric"
 +  statement =>"select id,name,dcs from persons where id > :sql_last_value"

-:代表删除的行,+代表新增的行。
record_last_run => true
use_column_value => true 这两行代表开启增量导入
tracking_column:使用表中那一列作为参照。
tracking_column_type:该列的类型,之前的填的是 int,启动报错,提示使用numeric
sql_last_value:代表目前保存的最新的id的值。

3、重新使用配置文件启动

./logstash -f ../mysqltest/mysql.conf

在这里插入图片描述
插入一条数据。
在这里插入图片描述
注意where条件判断,id值大小的变化。
此方案适合主键自动递增。

发布了136 篇原创文章 · 获赞 30 · 访问量 21万+

猜你喜欢

转载自blog.csdn.net/qq_33029793/article/details/103200751