Я работаю над Elastic Stack с Mysql.все работает нормально, как logstash, получая данные из базы данных mysql и отправляя их вasticsearch, а когда новые записи вводятся в данные mysql, а затем для автоматического обновленияasticsearch, я использую параметр: Расписание, но в этом случае logstash постоянно проверяет наличие новых данных из своего терминала, которыймоя главная проблема.
input {
jdbc {
jdbc_connection_string => "jdbc:mysql://localhost:3306/testdb"
# The user we wish to execute our statement as
jdbc_user => "root"
jdbc_password => ""
# The path to our downloaded jdbc driver
jdbc_driver_library => "/home/Downloads/mysql-connector-java-5.1.38.jar"
jdbc_driver_class => "com.mysql.jdbc.Driver"
#run logstash at an interval of on minute
schedule => "*/15 * * * *"
use_column_value => true
tracking_column => 'EVENT_TIME_OCCURRENCE_FIELD'
# our query
statement => "SELECT * FROM brainplay WHERE EVENT_TIME_OCCURRENCE_FIELD > :sql_last_value"
}
}
output {
stdout { codec => json_lines }
elasticsearch {
"hosts" => "localhost:9200"
"index" => "test-migrate"
"document_type" => "data"
"document_id" => "%{personid}"
}
}
Но если данные большие, Logstash проверит наличие новых записей во всех данных без какой-либо остановки, тогда это уменьшит масштабируемость и потребит больше энергии.
Есть лилюбой другой метод или любой webhook, например, когда новые данные вводятся в базу данных, тогда mysql будет уведомлять Logstash только о новых данных, или Logstash будет проверять только новые записи. Пожалуйста, помогите