Theo mặc định, plugin logstash-input-jdbc sẽ chạy câu lệnh SELECT của bạn một lần rồi thoát. Bạn có thể thay đổi hành vi này bằng cách thêm schedule
tham số
với biểu thức cron cho cấu hình của bạn, như sau:
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"
}
}
Kết quả là câu lệnh SELECT bây giờ sẽ chạy mỗi phút.
Nếu bạn có trường ngày trong bảng MySQL của mình (nhưng có vẻ như không đúng), bạn cũng có thể sử dụng sql_last_start
được xác định trước để không lập chỉ mục lại tất cả các bản ghi trong mỗi lần chạy. Tham số đó có thể được sử dụng trong truy vấn của bạn như sau:
statement => "SELECT * FROM transport.audit WHERE your_date_field >= :sql_last_start"