Logstash:解析 JDBC 列 Logstash 时出现 TZInfo::AmbiguousTime 异常
Logstash: TZInfo::AmbiguousTime exception when parsing JDBC column Logstash
我在使用 Logstash JDBC 输入插件获取数据时遇到此异常:
error:
26413962
Sequel::InvalidValue
TZInfo::AmbiguousTime: 2017-11-05T01:30:00+00:00 is an ambiguous local time.
这可能是因为我已经在 JDBC 插件中使用此参数转换我的时区:
jdbc_default_timezone => "America/New_York"
因此1:30am在11月5日发生了两次,我怀疑Logstash不知所措陷入死循环
作为解决方法,我删除了 jdbc_default_timezone 参数,而是在 select 语句中将我的值转换为 UTC,如下所示:
DATEADD(hh, DATEDIFF(hh, GETDATE(), GETUTCDATE()), th.[DueDate]) as DueDate
但是这个解决方法很烦人,因为我需要修改我所有的 logstash 输入日期列。
有没有办法强制它选择两个可能时间中的任何一个,或者更优雅的方式?
这似乎是 Logstash JDBC 输入插件中的一个已知错误,它被标记为 P2 增强功能。
https://github.com/logstash-plugins/logstash-input-jdbc/issues/121
同时,解决方法是将 SQL 查询中的所有日期和时间戳转换为 UTC,如上文问题(MS SQL 版本)中所述,或者对于 Oracle版本:
select from_tz(cast(<column> as timestamp), 'CET') at time zone ('EST') "@timestamp"
from <table>
where ...
我们还需要删除输入文件和过滤器中的 jdbc_default_timezone 参数(如果适用)。
我在使用 Logstash JDBC 输入插件获取数据时遇到此异常:
error:
26413962
Sequel::InvalidValue
TZInfo::AmbiguousTime: 2017-11-05T01:30:00+00:00 is an ambiguous local time.
这可能是因为我已经在 JDBC 插件中使用此参数转换我的时区:
jdbc_default_timezone => "America/New_York"
因此1:30am在11月5日发生了两次,我怀疑Logstash不知所措陷入死循环
作为解决方法,我删除了 jdbc_default_timezone 参数,而是在 select 语句中将我的值转换为 UTC,如下所示:
DATEADD(hh, DATEDIFF(hh, GETDATE(), GETUTCDATE()), th.[DueDate]) as DueDate
但是这个解决方法很烦人,因为我需要修改我所有的 logstash 输入日期列。
有没有办法强制它选择两个可能时间中的任何一个,或者更优雅的方式?
这似乎是 Logstash JDBC 输入插件中的一个已知错误,它被标记为 P2 增强功能。 https://github.com/logstash-plugins/logstash-input-jdbc/issues/121
同时,解决方法是将 SQL 查询中的所有日期和时间戳转换为 UTC,如上文问题(MS SQL 版本)中所述,或者对于 Oracle版本:
select from_tz(cast(<column> as timestamp), 'CET') at time zone ('EST') "@timestamp"
from <table>
where ...
我们还需要删除输入文件和过滤器中的 jdbc_default_timezone 参数(如果适用)。