2017-11-07 2 views
0

JDBC列を解析するときLogstash JDBC入力プラグインで自分のデータを取得するときtzinfoの:: AmbiguousTime例外私はこの例外を取得しています:私はすでに私のタイムゾーンを変換していますので、Logstash:Logstash

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:30 11月5日に二回起こった、と私はLogstashは何をすべきか分かっていない疑いがあると、それが無限ループに落ちます。

は回避策として、私はjdbc_default_timezoneパラメータを削除し、代わりに私はこのようなselect文でUTCに私の値を変換:

DATEADD(hh, DATEDIFF(hh, GETDATE(), GETUTCDATE()), th.[DueDate]) as DueDate 

しかし、私は私のすべてを変更する必要があるため、この回避策は迷惑ですlogstashは日付の列を入力します。

強制的に2つの可能な時間のいずれかを選択する方法はありますか?

答えて

0

これはLogstash JDBC Inputプラグインの既知のバグであると思われますが、P2拡張としてフラグが立てられています。 https://github.com/logstash-plugins/logstash-input-jdbc/issues/121

Oracleのバージョンの問題(MS SQLバージョン)で、またはこのように上記のような一方、この問題を回避するには、SQLクエリ内のすべての日付とタイムスタンプUTCに変換することです:

select from_tz(cast(<column> as timestamp), 'CET') at time zone ('EST') "@timestamp" 
    from <table> 
    where ... 

また、該当する場合は、入力ファイルとフィルターでjdbc_default_timezoneパラメーターを除去する必要があります。