Mysql
 sql >> база данни >  >> RDS >> Mysql

Logstash не чете нови записи от MySQL

По подразбиране плъгинът 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"



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySqlParameter като TableName

  2. Изтрийте от две таблици в една заявка

  3. mysql_real_escape повече от веднъж

  4. Лесно оптимизиране на индексирането

  5. Python+MySQL - групово вмъкване