从 SQL 服务器获取增量数据时出现 Logstash 异常

Logstash exception while fetching incremental data from SQL Server

我正在使用 LogStash 7.3.2 使用此查询从 SQL 服务器获取增量数据:

select * from mytable where lastupdatetimestamp > :sql_last_value

我还在 logstash 配置文件中指定了 last_run_metadata_path。

它工作正常,但有时会抛出异常:-

Exception when executing JDBC query {:exception=>#

transition (daylight savings time 'gap'): 1942-09-01T00:00:00.000 (Asia/Kolkata)>}

为什么我会收到此异常,由于此异常,它不会保存最后一个时间戳值,并且它会再次从 SQL 服务器获取重复记录。

如有任何帮助,我们将不胜感激。

如前所述here

Logstash 中,如果 datetime 字符串没有 TZ part,则假定为 UTC time.

如果您知道日期时间是本地时间字符串,那么您需要告诉日期过滤器生成日期的时区。您可以使用 Joda 时区之一,

例如America/New_YorkAmerica/DetroitEST5EDT - 这些仅仅是指向时区 Java 代码的标签,这些代码知道过去一段时间内所有时区的时钟发生了哪些变化。

有关如何跟踪更新的信息,请参阅此页面。 http://www.oracle.com/technetwork/java/javase/tzdata-versions-138805.html 100

一旦日期时间字符串被转换为时间戳对象(通过日期过滤器),它就被视为 UTC time