这几天在尝试使用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
中新产生的数据和被更新的数据(暂时不考虑被删除的数据),我在数据库的表中设置了一个时间戳,但是具体怎么利用它我还不清楚。
如果你的是時間戳在更新資料的時候也會更新,那麼只要每次匯入指定時間區段的資料就就行了
範例,看sql部分