北京軟件開發公司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日。