使用Logstash我想知道如何在不重复的情况下将数据发送到ES。这意味着我要发送ES实例中尚不存在的数据,而不要发送实例中已存在的数据。
今天,我要删除ES中特定索引上的所有数据,然后重新发送数据库中的所有数据。这样可以防止重复,但是并不是很理想,因为我必须手动删除数据。
这是我当前正在使用的.config:
input {
jdbc {
jdbc_driver_library => "/Users/Carl/Progs/logstash-6.3.0/mysql-connector-java/mysql-connector-java-5.1.46-bin.jar"
jdbc_driver_class => "com.mysql.jdbc.Driver"
jdbc_connection_string => "jdbc:mysql://*****"
jdbc_user => "****"
jdbc_password => "*****"
schedule => "0 * * * *"
statement => "SELECT * FROM carl.customer"
}
}
filter {
mutate {convert => { "long" => "float"} }
}
output {
#stdout { codec => json_lines }
elasticsearch {
hosts => "localhost"
index => "customers"
}
}