data Artisans應(yīng)用程序工程總監(jiān)Jamie Grier最近在OSCON 2016 Conference大會(huì)發(fā)言談到了使用Apache Flink構(gòu)建的一種數(shù)據(jù)流體系結(jié)構(gòu)。同時(shí)還談到了數(shù)據(jù)流應(yīng)用程序的構(gòu)建塊。
數(shù)據(jù)流體系結(jié)構(gòu)可用于處理隨著時(shí)間流逝以事件流方式持續(xù)生成的數(shù)據(jù),這一點(diǎn)不同于傳統(tǒng)的靜態(tài)數(shù)據(jù)集。相對(duì)于傳統(tǒng)的集中式“狀態(tài)化”數(shù)據(jù)庫(kù)和數(shù)據(jù)倉(cāng)庫(kù),數(shù)據(jù)流應(yīng)用程序可以處理事件流以及針對(duì)歷史事件匯總而來(lái)的應(yīng)用程序本地狀態(tài)。流式數(shù)據(jù)處理的一些優(yōu)勢(shì)包括:
降低從信號(hào)到?jīng)Q策的過程延遲 通過統(tǒng)一的方式處理實(shí)時(shí)和歷史數(shù)據(jù) Time travel查詢Apache Flink是一種開源的分布式流化和批量化數(shù)據(jù)處理平臺(tái)。Flink的誕生受到了Google Data Flow模型的啟發(fā),可支持Java和Scala語(yǔ)言開發(fā)的Stream Processing API。相比其他流式數(shù)據(jù)處理框架,F(xiàn)link中不存在微批量(Micro batching)數(shù)據(jù),而是使用了一種“一次一條消息”的流處理技術(shù)。
Jamie介紹了狀態(tài)流處理并展示了Flink應(yīng)用程序的代碼范例,以及使用開源時(shí)序數(shù)據(jù)庫(kù)和Graphana可視化工具Influxdb進(jìn)行監(jiān)控的方法。
同時(shí)他還介紹了流處理過程中窗口(Windowing)的概念以及處理時(shí)間(Processing Time)和事件時(shí)間(Event Time)的窗口概念。處理時(shí)間的窗口會(huì)對(duì)流數(shù)據(jù)的分析產(chǎn)生影響,并會(huì)導(dǎo)致數(shù)據(jù)處理過程中出現(xiàn)某些錯(cuò)誤。在事件時(shí)間方法中,窗口來(lái)自于數(shù)據(jù),而非時(shí)鐘時(shí)間。對(duì)于事件時(shí)間,可通過數(shù)據(jù)嵌入的時(shí)間戳對(duì)數(shù)據(jù)進(jìn)行處理,這樣即可獲得更精確的結(jié)果。
Jamie還介紹了在應(yīng)用程序中使用Flink時(shí)的錯(cuò)誤處理和容錯(cuò)機(jī)制。Flink中的Savepoints功能可在不丟失任何狀態(tài)的情況下對(duì)程序和Flink集群進(jìn)行更新。如果要對(duì)實(shí)時(shí)數(shù)據(jù)進(jìn)行流處理,此時(shí)Savepoints數(shù)據(jù)快照會(huì)顯得非常重要。
如果你想詳細(xì)了解Apache Flink,可訪問他們的網(wǎng)站。此外Flink Forward 2016 Conference活動(dòng)將于九月在柏林召開,提交提案的截止日期為2016年6月30日。
查看英文原文:Data Streaming Architecture with Apache Flink