如何关闭Logstash输出中结果集中有多少行的预检查

时间:2019-06-07 10:43:10

标签: jdbc logstash logstash-jdbc exasolution

我正在尝试关闭预选择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(从DWH_MON.V.M_EVENTS限制1中选择local_date,LOCAL_HOUR,事件)AS“ T1”限制1

     

[2019-06-07T12:28:00,838] [WARN] [logstash.inputs.jdbc]执行JDBC查询{:exception =>#}

时发生异常

logstash要查看预期要使用多少行,因此它使用限制1,但是exasol无法处理任何聚合限制。

1 个答案:

答案 0 :(得分:0)

我想这是LogStash的问题。 LIMIT 1部分是不必要的,一开始就不应存在。

您可以尝试使用SQL预处理器来尝试识别此类查询并手动删除LIMIT。但是也许对LogStash本身进行修补会更容易。