Я пытаюсь синхронизировать c базу данных с Elasticsearch с помощью плагина JDB C, но почему-то эта конфигурация не работает для нескольких операторов (нескольких таблиц).
input {
jdbc {
jdbc_driver_library => ""
jdbc_driver_class => "Java::org.mariadb.jdbc.Driver"
jdbc_connection_string => "jdbc:mariadb://localhost:3306/DB"
jdbc_user => "username"
jdbc_password => "password"
jdbc_paging_enabled => true
tracking_column => "column1"
use_column_value => true
type => "type1"
tracking_column_type => "numeric"
schedule => "*/5 * * * * *"
statement => "SELECT *, UNIX_TIMESTAMP(date_column) AS unix_ts_in_secs FROM table1 WHERE (UNIX_TIMESTAMP(date_column) >= :sql_last_value) ORDER BY date_column ASC"
}
jdbc {
jdbc_driver_library => ""
jdbc_driver_class => "Java::org.mariadb.jdbc.Driver"
jdbc_connection_string => "jdbc:mariadb://localhost:3306/DB"
jdbc_user => "username"
jdbc_password => "password"
jdbc_paging_enabled => true
tracking_column => "column1"
use_column_value => true
type => "type2"
tracking_column_type => "numeric"
schedule => "*/5 * * * * *"
statement => "SELECT *, UNIX_TIMESTAMP(date_column) AS unix_ts_in_secs FROM table2 WHERE (UNIX_TIMESTAMP(date_column) >= :sql_last_value) ORDER BY date_column ASC"
}
}
filter {
mutate {
copy => { "id" => "[@metadata][_id]"}
remove_field => ["id", "@version", "unix_ts_in_secs"]
}
}
output {
elasticsearch {
hosts => ["localhost:9200"]
index => "test"
document_id => "%{[@metadata][_id]}"
}
}
Эта конфигурация работает просто отлично для одного оператора, но он не работает для нескольких запросов. Что я здесь пропустил? Мне нужно синхронизировать c эти данные с одним индексом в Elasticsearch.