0

我正在尝试关闭预选 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][ERROR][logstash.inputs.jdbc] Java::JavaSql::SQLException:聚合选择中不允许限制 [第 1 行,第 127 列](会话:1635677142479452406):SELECT 计数(*) 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] 执行 JDBC 查询时出现异常 {:exception=>#}

由于 logstash 想要查看预期有多少行,它使用限制 1,但 exasol 无法处理聚合的任何限制。

4

1 回答 1

0

我猜这是 LogStash 的问题。这LIMIT 1部分是不必要的,一开始就不应该在那里。

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

于 2019-06-08T16:21:58.990 回答