0

I'm trying to turn off the pre-select logstash does to determine the count of rows, but ExaSol DB does not support any limits in any aggregation, is there any way to turn it off in 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 Error Log:

[2019-06-07T12:28:00,834][ERROR][logstash.inputs.jdbc ] Java::JavaSql::SQLException: LIMIT not allowed in aggregated selects [line 1, column 127] (Session: 1635677142479452406): SELECT count(*) AS "COUNT" FROM (select local_date, LOCAL_HOUR, events from DWH_MON.V.M_EVENTS limit 1) AS "T1" LIMIT 1

[2019-06-07T12:28:00,838][WARN ][logstash.inputs.jdbc ] Exception when executing JDBC query {:exception=>#}

As logstash wants to see how many rows are to be expected it uses limit 1, but exasol can't process any limit on aggregations.

Mark Rotteveel
  • 100,966
  • 191
  • 140
  • 197
d0mik
  • 1

1 Answers1

0

It's a problem of LogStash, I guess. The LIMIT 1 part is unnecessary and should not be there in the first place.

You may try to use SQL pre-processor to try to identify such queries and remove LIMIT manually. But maybe it's easier to patch LogStash itself.

wildraid
  • 126
  • 4