我正在尝试关闭预选择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无法处理任何聚合限制。
答案 0 :(得分:0)
我想这是LogStash的问题。 LIMIT 1
部分是不必要的,一开始就不应存在。
您可以尝试使用SQL预处理器来尝试识别此类查询并手动删除LIMIT
。但是也许对LogStash本身进行修补会更容易。