Поглощение данных вasticsearch с базой данных, имеющей большое количество таблиц - PullRequest
0 голосов
/ 07 января 2020
input {
  jdbc {
    jdbc_driver_library => "mysql-connector-java-5.1.36-bin.jar"
    jdbc_driver_class => "com.mysql.jdbc.Driver"
    jdbc_connection_string => "jdbc:mysql://localhost:3306/mydb"
    jdbc_user => "mysql"
    parameters => { "favorite_artist" => "Beethoven" }
    schedule => "* * * * *"
    statement => "SELECT * from songs where artist = :favorite_artist"
  }
}

В приведенном выше файле конфигурации logsta sh как принимать данные?
Что делать, когда мне нужно выбрать несколько таблиц?

1 Ответ

1 голос
/ 08 января 2020

Данные будут поступать на основе запроса «Выбрать оператор». если вы хотите получать данные из нескольких таблиц, то вы можете иметь запросы на объединение, объединяющие все таблицы, и соответствующие выходные данные запроса будут переданы в ES. Все зависит от вашего конкретного c варианта использования. Вот образец, вставленный для вашей справки.

input {
jdbc {
jdbc_driver_library => "mysql-connector-java-5.1.36-bin.jar"
jdbc_driver_class => "com.mysql.jdbc.Driver"
jdbc_connection_string => "jdbc:mysql://localhost:3306/mydb"
jdbc_user => "mysql"
parameters => { "favorite_artist" => "Beethoven" }
schedule => "* * * * *"
statement => "SELECT * FROM songs INNER JOIN song_folder using song_number ORDER BY 
song_title;"
}
}

output{
elasticsearch{
hosts=>"http://xx:XX:XX:XX:9200"
index=>"song"
document_type=>"songname"
document_id=>"song_title"
}
stdout{codec=>rubydebug}
}


Please let me know , if you have any further queries.
...