mysql数据,通过logstash同步到elasticsearch,数据丢失

测试同学反馈,某业务商品数据查询不到,但数据库里面存在。
我们商品数据,从es中查询的。通过logstash,将mysql里面的数据同步到es中。
查看了下es中,该数据确实不存在。

重新构建index 然后做了一次全量数据同步,发现es中的数据总量低于mysql中数据源的数据总量。

mysql数据,通过logstash同步到elasticsearch,数据丢失

原因:
sql有问题。数据查询sql,未指定排序。使用的默认排序,库表使用的InnoDB引擎。
当数据发生delete、update时,排序会发生变化。
后来指定根据主键排序,数据同步正常。es中数据和mysql数据量一样