Как отключить предварительную проверку количества строк в наборе результатов в выводе logstash

Я пытаюсь отключить предварительный выбор logstash для определения количества строк, но ExaSol DB не поддерживает никаких ограничений ни в какой агрегации, есть ли способ отключить его в logstash?

input {
  jdbc {
    jdbc_driver_library => "/opt/jdbc/exajdbc6.0.15.jar"
    jdbc_driver_class => "com.exasol.jdbc.EXADriver"
    jdbc_user => "am_mon"
    jdbc_password => "XXXXX"
    jdbc_connection_string => "jdbc:exa:xxx.xx.xx.xx..xx:xxxx"
    jdbc_default_timezone => "Europe/Berlin"
#    schedule => "05 7 * * *"
    statement => "select local_date, LOCAL_HOUR, events from DWH_MON.V.M_EVENTS"

  }
}

Журнал ошибок Logstash:

[2019-06-07T12:28:00,834][ОШИБКА][logstash.inputs.jdbc] Java::JavaSql::SQLException: LIMIT не допускается в агрегированных выборках [строка 1, столбец 127] (сеанс: 1635677142479452406): SELECT count (*) AS "COUNT" FROM (выберите local_date, LOCAL_HOUR, события из DWH_MON.V.M_EVENTS ограничение 1) AS "T1" LIMIT 1

[2019-06-07T12:28:00,838][WARN ][logstash.inputs.jdbc ] Исключение при выполнении запроса JDBC {:exception=>#}

Поскольку logstash хочет узнать, сколько ожидаемых строк, он использует ограничение 1, но exasol не может обработать какое-либо ограничение на агрегирование.


person d0mik    schedule 07.06.2019    source источник


Ответы (1)


Я думаю, это проблема LogStash. Часть LIMIT 1 не нужна и не должна быть там в первую очередь.

Вы можете попытаться использовать препроцессор SQL, чтобы попытаться идентифицировать такие запросы и удалить LIMIT вручную. Но, может быть, проще пропатчить сам LogStash.

person wildraid    schedule 08.06.2019