Как отключить предварительную проверку количества строк в наборе результатов в выводе logstash - PullRequest
0 голосов
/ 07 июня 2019

Я пытаюсь отключить предварительно выбранный 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 limit 1) AS «T1» LIMIT 1

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

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

1 Ответ

0 голосов
/ 08 июня 2019

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

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

...