По подразбиране плъгинът logstash-input-jdbc ще изпълни вашия оператор SELECT веднъж и след това ще излезе. Можете да промените това поведение, като добавите schedule
параметър
с cron израз към вашата конфигурация, като това:
input {
jdbc {
jdbc_driver_library => "C:/logstash/lib/mysql-connector-java-5.1.37-bin.jar"
jdbc_driver_class => "com.mysql.jdbc.Driver"
jdbc_connection_string => "jdbc:mysql://127.0.0.1:3306/test"
jdbc_user => "root"
jdbc_password => ""
statement => "SELECT * FROM transport.audit"
schedule => "* * * * *" <----- add this line
jdbc_paging_enabled => "true"
jdbc_page_size => "50000"
}
}
Резултатът е, че командата SELECT вече ще се изпълнява всяка минута.
Ако сте имали поле за дата във вашата MySQL таблица (но не изглежда така), можете също да използвате предварително дефинирания sql_last_start
параметър, за да не се индексират отново всички записи при всяко изпълнение. Този параметър може да се използва във вашата заявка по следния начин:
statement => "SELECT * FROM transport.audit WHERE your_date_field >= :sql_last_start"