前不久在商業智能實時圖表解決方案的選擇中,我們簡單講了壹下實時分析的工作流程。今天我們就來詳細討論壹下這個話題。
如果妳已經使用過實時儀表盤或者正打算搭建壹個,本文可以幫助妳了解實時儀表盤背後的故事,以及實時數據是如何在妳的儀表盤中展現的,從而實現數據可視化。
除了極短的端到端時間,實時數據可視化主要有四個步驟。這裏我們用壹張圖來表示壹下。
1,捕獲數據流
使用收集器、收集器、代理和監聽器捕獲實時數據流,並存儲在數據庫中。數據庫通常是NoSQL數據庫,比如Cassandra,MongoDB,或者有時候妳只是Hadoop Hive。關系數據庫不適合這種高調的分析。NoSQL數據庫的崛起也加強了實時數據分析向他靠攏的趨勢。
2.數據流處理
數據流可以通過多種方式進行處理,例如拆分、合並、計算以及與外部數據源組合。這些任務是由壹個容錯的分布式數據庫系統來完成的,比如Storm和Hadoop,這些都是常用的大數據處理框架。但是它們對於實時數據分析並不理想。因為它們依賴MapReduce進行批處理。但Hadoop 2.0允許其他計算算法替代MapReduce,使得Hadoop在實時分析系統中的應用更進了壹步。處理後,數據可以由可視組件讀取。
3.數據可視化組件讀取處理後的數據。
處理後的數據以結構化格式(如JSON或XML)存儲在NoSQL數據庫中,並由可視化組件讀取。在大多數情況下,它將是嵌入在內部BI系統中的圖表庫,或者是更廣泛的可視化平臺(如Tableau)的壹部分。JSON/XML文件中已處理數據的刷新頻率稱為更新間隔。
4.可視化組件更新實時儀表板。
可視化組件在圖表界面中從結構數據文件(JSON/XML)中繪制圖表、工具或其他可視化行為。客戶端上顯示已處理數據的頻率稱為刷新間隔。在壹些應用中,比如具有圖表渲染功能的股票交易應用,會預置基於數據流的觸發函數。
會不會很復雜?只是這些過程會在幾秒鐘甚至更短的時間內完成。由於數據庫和實時功能的不斷改進,特別是NoSQL數據庫,這些操作已經成為現實。借助Storm等專用於實時進程處理的工具,其性能效果可以進壹步提升。今天的可視化數據已經支持了需求場景,在今天的大數據應用中已經建立了實時分析生態系統。