我正在努力解決flink的卡夫卡用戶連接器的事件時間問題。 援引Flink docFlink卡夫卡連接器0.10.0事件時間澄清和處理功能澄清
因爲Apache卡夫卡0.10+,卡夫卡的消息可以攜帶的時間戳,表示當該消息已被寫入到卡夫卡該事件已經發生(參見阿帕奇弗林克「事件時間」)的時刻或時間經紀人。
如果Flink中的時間特徵設置爲TimeCharacteristic.EventTime(StreamExecutionEnvironment.setStreamTimeCharacteristic(TimeCharacteristic.EventTime)),則FlinkKafkaConsumer010將發出附帶時間戳記的記錄。
卡夫卡消費者不會發出水印。
一些疑問和問題浮現在腦海中:
- 我怎麼知道,如果它採取了時間戳的寫入卡夫卡經紀人它發生的時間或時間?
- 如果消費者不發射水印並且TimeCharacteristic.EventTime被設置,這是否意味着一條消息遲到幾天仍然可以進入並被處理?
主流程圖不包含窗口函數,基本如下所示:source(kafka) - > filter-> processFunction-> Sink。這是否意味着該事件在被卡夫卡連接器消耗的時刻被解僱?
我目前使用卡夫卡連接器0.10.0,TimeCharacteristic.EventTime設置並使用processFunction,每X分鐘做一些狀態清理。 但是,我收到一個奇怪的情況,其中OnTimerContext包含時間戳從0開始,直到當前時間戳,當我啓動flink程序並且很奇怪,這是一個錯誤嗎?
在此先感謝所有幫手!