Heim > Fragen und Antworten > Hauptteil
这几天在尝试使用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
中新产生的数据和被更新的数据(暂时不考虑被删除的数据),我在数据库的表中设置了一个时间戳,但是具体怎么利用它我还不清楚。
怪我咯2017-04-17 13:13:19
"type" : "jdbc",
"jdbc" : {
"url" : "jdbc:mysql://localhost:3306/test",
"user" : "",
"password" : "",
"sql" : [
{
"statement" : "select * from \"products\" where \"mytimestamp\" > ?",
"parameter" : [ "$metrics.lastexecutionstart" ]
}
],
"index" : "my_jdbc_index",
"type" : "my_jdbc_type"
}
示例,看sql部分