自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Apache Flink 漫談系列 - 時(shí)間

原創(chuàng)
開發(fā)
本篇介紹了Apache Flink的內(nèi)部的時(shí)間概念。

圖片

Apache Flink 為什么需要時(shí)間

Apache Flink 在進(jìn)行Streaming計(jì)算時(shí)為什么需要時(shí)間?回答這個(gè)問題我們先看看Streaming和Batch的一個(gè)明顯區(qū)別,即 從數(shù)據(jù)集的角度看,Streaming是一個(gè)Unbounded的數(shù)據(jù)集,Batch是一個(gè)Bounded的數(shù)據(jù)集。那么我們?nèi)绾螌?duì)一個(gè)UnBounded的數(shù)據(jù)集上面進(jìn)行計(jì)算呢?我們總不能等數(shù)據(jù)都流完在計(jì)算結(jié)果吧?當(dāng)然不能,因?yàn)榱魇荱nBounded的,永遠(yuǎn)沒有結(jié)束。那怎么辦?業(yè)界一個(gè)通用的解決手段就是Window機(jī)制。將Streaming的數(shù)據(jù)看做是一系列的events,每一個(gè)event都是一條Streaming數(shù)據(jù)記錄,都有自己產(chǎn)生的時(shí)間,也有在Streaming的算子處理的時(shí)間,那么Window就可以根據(jù)event產(chǎn)生時(shí)間或者event被處理的時(shí)間進(jìn)行分組。所以 Time 是Steaming計(jì)算必不可少的數(shù)據(jù)屬性。

在大多數(shù)Streaming處理場(chǎng)景中,Event的順序很重要,并且通常Event到達(dá)數(shù)據(jù)處理算子的順序與這些Event在現(xiàn)實(shí)世界中實(shí)際發(fā)生的時(shí)間不同。那么記錄Event在設(shè)備中產(chǎn)生的時(shí)間將為在Apache Flink中如實(shí)的按照Event的產(chǎn)生時(shí)間的順序進(jìn)行數(shù)據(jù)處理提供了機(jī)會(huì)。

圖片

時(shí)間類型

如上圖所示按照Event的產(chǎn)生時(shí)間、進(jìn)入Apache Flink系統(tǒng)時(shí)間和被處理的時(shí)間三個(gè)時(shí)間點(diǎn)劃分,在Blink系統(tǒng)中同一個(gè)時(shí)間或者說是數(shù)據(jù)流上的數(shù)據(jù)可以有的時(shí)間屬性有三種:

  • Event Time
  • Ingestion Time
  • Processing Time

Event Time

Event Time 是每個(gè)Event在其生產(chǎn)設(shè)備上發(fā)生的時(shí)間。這段時(shí)間通常嵌入記錄中,然后進(jìn)入Apache Flink,并且可以從記錄中提取事件時(shí)間戳。

Event Time即使在無序事件,延遲事件或從備份或持久性日志中重放數(shù)據(jù)時(shí),也能提供正確的結(jié)果。在Streaming數(shù)據(jù)處理期間,時(shí)間的進(jìn)度取決于數(shù)據(jù),而不是掛在任何系統(tǒng)時(shí)鐘上。后續(xù)章節(jié)要介紹的Watermark就是基于Event Time產(chǎn)生的,Apache Flink系統(tǒng)正是利用Event Time和Watermark機(jī)制處理數(shù)據(jù)亂序問題的(后續(xù)章節(jié)會(huì)詳細(xì)介紹).

Processing Time

Processing Time 是指執(zhí)行相應(yīng)操作的機(jī)器的系統(tǒng)時(shí)間。

當(dāng)Streaming計(jì)算基于Processing Time時(shí)候,所有基于時(shí)間的操作(如Time Window)將使用運(yùn)行相應(yīng)算子的機(jī)器的系統(tǒng)時(shí)鐘。

Processing Time是最簡(jiǎn)單的時(shí)間概念,它提供了最佳的性能和最低的延遲。然而,在分布式和異步環(huán)境中,Processing Time并不能提供確定性,因?yàn)樗菀资艿紼vent到達(dá)系統(tǒng)的速度(例如來自消息隊(duì)列)以及記錄在Apache Flink系統(tǒng)內(nèi)部的處理先后順序的影響.

Ingestion Time

Ingestion time是事件進(jìn)入Apache Flink的時(shí)間。在Source算子處產(chǎn)生,每個(gè)記錄都將源的當(dāng)前時(shí)間作為時(shí)間戳記,而基于時(shí)間的算子(如Time Window)會(huì)引用該時(shí)間戳記。

Ingestion Time在概念上位于Event Time和Processing Time之間。

Ingestion Time與Processing Time相比,它的成本稍高一些,但可提供更可預(yù)測(cè)的結(jié)果:由于攝取時(shí)間使用穩(wěn)定的時(shí)間戳(在源處分配一次),不受系統(tǒng)內(nèi)部處理Event的先后順序和數(shù)據(jù)傳輸?shù)难訒r(shí)所影響.

Ingestion Time與Event Time相比,Ingestion Time方式無法處理任何亂序事件或遲后數(shù)據(jù),Ingestion Time 在Apache Flink內(nèi)部機(jī)制上與Event Time非常相似,具有自動(dòng)時(shí)間戳分配和自動(dòng)水印生成功能。

Apache Flink 目前使用的時(shí)間

目前Apache Flink SQL 層面向用戶開發(fā)的時(shí)間類型是 Event Time和Processing Time.

小結(jié)

本篇介紹了Apache Flink的內(nèi)部的時(shí)間概念,在Apache Flink內(nèi)部有Event Time , Processing Time和Ingestion time三種時(shí)間類型,目前向用戶開放的是Event Time和Processing Time 兩種。時(shí)間在Streaming計(jì)算中至關(guān)重要,時(shí)間是數(shù)據(jù)分組的主要依據(jù),時(shí)間也是Streaming計(jì)算中處理數(shù)據(jù)延時(shí)和數(shù)據(jù)亂序的核心元素。

作者介紹

孫金城,51CTO社區(qū)編輯,Apache Flink PMC 成員,Apache Beam Committer,Apache IoTDB PMC 成員,ALC Beijing 成員,Apache ShenYu 導(dǎo)師,Apache 軟件基金會(huì)成員。關(guān)注技術(shù)領(lǐng)域流計(jì)算和時(shí)序數(shù)據(jù)存儲(chǔ)。

責(zé)任編輯:張燕妮 來源: 孫金城
相關(guān)推薦

2018-09-26 08:44:22

Apache Flin流計(jì)算計(jì)算模式

2018-09-26 07:50:52

Apache Flin流計(jì)算計(jì)算模式

2018-10-16 08:54:35

Apache Flin流計(jì)算State

2018-10-09 10:55:52

Apache FlinWatermark流計(jì)算

2022-07-13 12:53:59

數(shù)據(jù)存儲(chǔ)

2018-11-14 09:01:23

Apache FlinSQL代碼

2018-10-22 21:43:39

Apache Flin流計(jì)算Fault Toler

2018-11-29 09:01:26

Apache FlinJOIN代碼

2018-11-20 07:59:43

Apache Flin JOIN算子代碼

2018-12-11 17:28:22

Apache FlinJOIN代碼

2022-07-13 13:03:29

流計(jì)算亂序

2019-01-03 10:17:53

Apache FlinTable API代碼

2019-01-15 08:50:12

Apache FlinKafka分布式

2018-11-07 08:48:31

Apache Flin持續(xù)查詢流計(jì)算

2022-07-12 10:38:25

分布式框架

2018-10-30 14:08:45

Apache Flin流表對(duì)偶duality

2018-12-29 08:16:32

Apache FlinJOIN代碼

2020-04-09 11:08:30

PyFlinkJAR依賴

2018-10-30 11:10:05

Flink數(shù)據(jù)集計(jì)算

2022-04-22 09:05:12

蔚來汽車Flink實(shí)時(shí)數(shù)倉
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)