Elasticsearch如何与MySQL同步

  • 这几天在尝试使用Elasticsearch,遇到一个问题。

  • 我现在通过如下将MySQL的数据通过elasticsearch-jdbc导入至Elasticsearch

curl -XPUT localhost:9200/_river/my_jdbc_river/_meta -d '
 {
     "type" : "jdbc",
     "jdbc" : {
         "driver" : "com.mysql.jdbc.Driver",
         "url" : "jdbc:mysql://localhost:3306/excel",
         "user" : "root",
         "password" : "123456",
         "sql" : "select * from excel.projects", 
         "index" : "excel",
         "type" : "project",
         "bulk_size" : 100,
         "max_bulk_requests" : 30,
         "bulk_timeout" : "10s",
         "flush_interval" : "5s",
         "schedule" : "0 0-59 0-23 ? * *"
     }
 }'
  • 当然这是存在问题的:"schedule" : "0 0-59 0-23 ? * *"会将新产生的数据连同原来的数据一起导入ES

  • 所以我现在的问题是如何应对MySQL中新产生的数据和被更新的数据(暂时不考虑被删除的数据),我在数据库的表中设置了一个时间戳,但是具体怎么利用它我还不清楚。

阅读 10.8k
2 个回答

如果你的是时间戳在更新数据的时候也会更新,那么只要每次导入指定时间区段的数据就就行了

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题