sql >> Database >  >> RDS >> Mysql

Logstash leest geen nieuwe items van MySQL in

Standaard zal de logstash-input-jdbc-plug-in uw SELECT-instructie één keer uitvoeren en vervolgens afsluiten. U kunt dit gedrag wijzigen door een schema parameter met een cron-expressie naar uw configuratie, zoals deze:

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"
 }
}

Het resultaat is dat de SELECT-instructie nu elke minuut wordt uitgevoerd.

Als u een datumveld in uw MySQL-tabel had (maar dit lijkt niet het geval te zijn), kunt u ook de vooraf gedefinieerde sql_last_start gebruiken parameter om niet alle records bij elke run opnieuw te indexeren. Die parameter kan als volgt in uw zoekopdracht worden gebruikt:

   statement => "SELECT * FROM transport.audit WHERE your_date_field >= :sql_last_start"



  1. Hoe de array-sleutels in php te controleren om array-waarden op te slaan in mysql

  2. Doctrine DBAL setParameter() met matrixwaarde

  3. Wat is de juiste syntaxis voor partitionering in SQL?

  4. Afbeeldingsbestanden of URL's opslaan in de MySQL-database? Wat is beter?