В Logstash имею такой конфиг
input {
jdbc {
jdbc_driver_library => "/usr/share/java/mysql-connector-java.jar"
jdbc_driver_class => "com.mysql.jdbc.Driver"
jdbc_connection_string => "jdbc:mysql://localhost:3306/xf"
jdbc_user => "xxxx"
jdbc_password => "xxxxx"
schedule => "0 * * * *"
statement => "select xf_post.username, count(*) as posts, count(xf_thread.best_answer_id) as best_answers, sum(xf_post.likes) as likes from xf_post left join xf_thread on (xf_post.post_id = xf_thread.best_answer_id and xf_thread.best_answer_id > 0) where xf_post.post_date between UNIX_TIMESTAMP('2018-01-01 00:00:00') and UNIX_TIMESTAMP('2018-02-01 00:00:00') group by xf_post.username order by posts desc limit 25"
}
}
output {
elasticsearch {
hosts => ["http://xxxx.com:9200/"]
user => logstash_internal
password => xxxx
index => "forum_stat"
document_type => "forum_stat"
document_id => "%{id}"
}
# stdout { codec => rubydebug }
}
Проблема в том, что эти 25 записей постоянно дуплицируются каждый час. А хочется, чтобы они перезаписывались каждый час и их оставалось всегда 25.
Вроде читал, что document_id => "%{id}" должен эту задачу решать, но у меня не работает.