天天看點

Apache Flink 實作的資料流體系結構

data artisans應用程式工程總監jamie grier最近在oscon 2016 conference大會發言談到了使用apache flink建構的一種資料流體系結構。同時還談到了資料流應用程式的建構塊。

資料流體系結構可用于處理随着時間流逝以事件流方式持續生成的資料,這一點不同于傳統的靜态資料集。相對于傳統的集中式“狀态化”資料庫和資料倉庫,資料流應用程式可以處理事件流以及針對曆史事件彙總而來的應用程式本地狀态。流式資料處理的一些優勢包括:

降低從信号到決策的過程延遲

通過統一的方式處理實時和曆史資料

time travel查詢

apache flink是一種開源的分布式流化和批量化資料處理平台。flink的誕生受到了google data flow模型的啟發,可支援java和scala語言開發的stream processing api。相比其他流式資料處理架構,flink中不存在微批量(micro batching)資料,而是使用了一種“一次一條消息”的流處理技術。

jamie介紹了狀态流處理并展示了flink應用程式的代碼範例,以及使用開源時序資料庫和graphana可視化工具influxdb進行監控的方法。

同時他還介紹了流處理過程中視窗(windowing)的概念以及處理時間(processing time)和事件時間(event time)的視窗概念。處理時間的視窗會對流資料的分析産生影響,并會導緻資料處理過程中出現某些錯誤。在事件時間方法中,視窗來自于資料,而非時鐘時間。對于事件時間,可通過資料嵌入的時間戳對資料進行處理,這樣即可獲得更精确的結果。

jamie還介紹了在應用程式中使用flink時的錯誤處理和容錯機制。flink中的savepoints功能可在不丢失任何狀态的情況下對程式和flink叢集進行更新。如果要對實時資料進行流處理,此時savepoints資料快照會顯得非常重要。

如果你想詳細了解apache flink,可通路他們的網站。此外flink forward 2016 conference活動将于九月在柏林召開,送出提案的截止日期為2016年6月30日。