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