做黑網(wǎng)站賺錢嗎濱州網(wǎng)站建設(shè)
時(shí)間相關(guān):
Watermark 水位線
- 水位線是插入到數(shù)據(jù)流中的一個(gè)標(biāo)記,可以認(rèn)為是一個(gè)特殊的數(shù)據(jù)。
- 水位線主要的內(nèi)容是一個(gè)時(shí)間戳,用來表示當(dāng)前事件時(shí)間的進(jìn)展。
- 水位線是基于數(shù)據(jù)的時(shí)間戳生成的。
- 水位線的時(shí)間戳必須單調(diào)遞增,以確保任務(wù)的事件時(shí)間時(shí)鐘一直向前推進(jìn),進(jìn)展。
- 水位線可以通過設(shè)置延遲,來保證正確處理亂序數(shù)據(jù)。
- 一個(gè)水位線 Watermark(t),表示在當(dāng)前流中事件時(shí)間已經(jīng)達(dá)到了時(shí)間戳 t,這代表 t之前的所有數(shù)據(jù)都到齊了,之后流中不會出現(xiàn)時(shí)間戳 t‘ ≤ t 的數(shù)據(jù)。
Watermark 多并行度下的生成、傳遞
生成:
- 間歇性更新(punctuated watermarks):
遇到新事件后更新
With punctuated watermarks, Flink calls checkAndGetWatermark() on each new event, i.e. right after calling assignWatermark(). An actual watermark is emitted only if checkAndGetWatermark() returns a non-null value which is greater than the last watermark.
來自stackoverflow回答
- 周期性更新
定期更新
With periodic watermarks, Flink calls getCurrentWatermark() at regular interval, independently of the stream of events.
設(shè)置周期性更新的時(shí)間
// 設(shè)置Watermar