sql >> Databáze >  >> RDS >> Mysql

Logstash nečte nové položky z MySQL

Ve výchozím nastavení plugin logstash-input-jdbc spustí váš příkaz SELECT jednou a poté se ukončí. Toto chování můžete změnit přidáním schedule parametr s výrazem cron do vaší konfigurace, jako je tento:

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

Výsledkem je, že příkaz SELECT se nyní spustí každou minutu.

Pokud jste měli v tabulce MySQL pole data (ale nezdá se, že by tomu tak bylo), můžete také použít předdefinovaný sql_last_start aby nedošlo k přeindexování všech záznamů při každém spuštění. Tento parametr lze ve vašem dotazu použít takto:

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



  1. PL/SQL vytiskne referenční kurzor vrácený uloženou procedurou

  2. Název zdroje dat nebyl nalezen a není zadán žádný výchozí ovladač pro připojení mysql

  3. Vyhýbání se vkládání SQL do uživatelem generovaného regulárního výrazu SQL

  4. Auto-increment se v MySQL neresetuje