我正在尝试关闭预选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"
}
}
日志存储错误日志:
[2019-06-07T12:28:00,834][错误][logstash.inputs.jdbc ] Java::JavaSql::SQLException:聚合选择中不允许限制 [第 1 行,第 127 列] (会话:1635677142479452406(:从(选择DWH_MON中的local_date、LOCAL_HOUR事件中选择 COUNT(*( 作为"计数"。V.M_EVENTS限制 1( 作为"T1"限制 1
[2019-06-07T12:28:00,838][警告][logstash.inputs.jdbc ] 执行 JDBC 查询时异常 {:exception=>#}
由于 logstash 想要查看预期有多少行,因此它使用限制 1,但 exasol 无法处理聚合的任何限制。
我猜这是LogStash的问题。LIMIT 1
部分是不必要的,首先不应该存在。
您可以尝试使用 SQL 预处理器来尝试识别此类查询并手动删除LIMIT
。但也许修补 LogStash 本身更容易。