Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Logstash nie czyta nowych wpisów z MySQL

Domyślnie wtyczka logstash-input-jdbc uruchomi raz instrukcję SELECT, a następnie zakończy działanie. Możesz zmienić to zachowanie, dodając schedule parametr z wyrażeniem cron do swojej konfiguracji, na przykład:

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

W rezultacie instrukcja SELECT będzie teraz uruchamiana co minutę.

Jeśli masz pole daty w swojej tabeli MySQL (ale wydaje się, że tak nie jest), możesz również użyć predefiniowanego sql_last_start parametr, aby nie indeksować ponownie wszystkich rekordów przy każdym przebiegu. Tego parametru można użyć w zapytaniu w następujący sposób:

   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. Aktualizacja MySQL zmieniająca wiele kolumn jest nieatomowa?

  2. Klucze SQL, MUL vs PRI vs UNI

  3. MySQL znajduje najlepsze wyniki dla każdej grupy

  4. MySQL a MongoDB

  5. Naruszenie ograniczenia integralności:1048 Kolumna „user_id” nie może mieć wartości NULL podczas przypisywania ról występuje błąd (Laravel 5.3)