日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
ApacheFlink漫談系列-時間

Apache Flink 為什么需要時間

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

站在用戶的角度思考問題,與客戶深入溝通,找到雙柏網(wǎng)站設(shè)計與雙柏網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗,讓設(shè)計與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個性化、用戶體驗好的作品,建站類型包括:網(wǎng)站設(shè)計制作、成都網(wǎng)站制作、企業(yè)官網(wǎng)、英文網(wǎng)站、手機端網(wǎng)站、網(wǎng)站推廣、域名與空間、雅安服務器托管、企業(yè)郵箱。業(yè)務覆蓋雙柏地區(qū)。

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

時間類型

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

  • Event Time
  • Ingestion Time
  • Processing Time

Event Time

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

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

Processing Time

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

當Streaming計算基于Processing Time時候,所有基于時間的操作(如Time Window)將使用運行相應算子的機器的系統(tǒng)時鐘。

Processing Time是最簡單的時間概念,它提供了最佳的性能和最低的延遲。然而,在分布式和異步環(huán)境中,Processing Time并不能提供確定性,因為它容易受到Event到達系統(tǒng)的速度(例如來自消息隊列)以及記錄在Apache Flink系統(tǒng)內(nèi)部的處理先后順序的影響.

Ingestion Time

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

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

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

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

Apache Flink 目前使用的時間

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

小結(jié)

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

作者介紹

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


當前題目:ApacheFlink漫談系列-時間
標題路徑:http://www.dlmjj.cn/article/coeeicj.html