Сохраненный запрос из базы данных в качестве входных данных JDBC для Logstash

У меня есть таблица, например QueryConfigTable, которая содержит запрос в одном столбце, например, выберите * из таблицы клиентов. Я хочу, чтобы запрос в столбце выполнялся в качестве ввода для JDBC в logstash. I

он принимает запрос столбца как значение и сохраняет в elasticSearch

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"
    //MYDB will be set dynamically. 
    jdbc_user => "mysql"
    parameters => { "favorite_artist" => "Beethoven" }
    schedule => "* * * * *"
    statement => "SELECT * from QueryConfigTable "
  }
}

/// output as elasticSearch 
 elasticsearch {

    hosts => ["http://my-host.com:9200"]
    index => "test"
  }


final output is 
"_index": "test",
"_type": "doc",
"_source": {
"product": "PL SALARIED AND SELF EMPLOYED",
"@version": "1",
"query": "select * from customertable cust  where cust.isdeleted !=0"
}

но я хочу, чтобы значение запроса, т. е. «выберите * из клиентской таблицы cust, где cust.isdeleted! = 0», выполнялось как ввод JDBC для logstash


person David    schedule 18.07.2019    source источник


Ответы (1)


Ввод jdbc не будет выполнять такую ​​косвенность за вас. Вы можете написать хранимую процедуру, которая извлекает и выполняет SQL и вызывает ее из ввода jdbc.

person Badger    schedule 18.07.2019
comment
спасибо, есть ли другой способ, кроме хранимой процедуры @Badger - person David; 19.07.2019