官术网_书友最值得收藏!

1.2.2 數據分析應用程序

分析工作從原始數據中提取信息。傳統上,分析是作為對記錄事件的有界數據集的批處理查詢或應用程序執行的。為了將最新的數據合并到分析結果中,必須將其添加到待分析的數據集中,然后重新運行查詢或應用程序。結果被寫入存儲系統或作為報告發出。

使用復雜的流處理引擎,還可以實時執行分析。流查詢或應用程序不是讀取有限的數據集,而是攝入實時事件流,并隨著事件被消費而不斷生成和更新結果。結果要么寫入外部數據庫,要么作為內部狀態維護。例如,Dashboard應用程序可以從外部數據庫讀取最新結果,也可以直接查詢應用程序的內部狀態。

Apache Flink支持流及批處理分析應用程序,如圖1-5所示。

圖1-5 Apache Flink支持流及批處理分析應用程序

與批處理分析相比,連續流分析的優勢并不僅在于低時延(由于消除了周期性導入和查詢執行,從事件到洞察的時延要低得多),另一個方面是更簡單的應用程序架構。批處理分析管道由幾個獨立組件組成,用于定期調度數據攝入和查詢執行。可靠地運行這樣的管道并不簡單,因為一個組件的故障會影響管道的后續步驟。相比之下,流分析應用程序運行在復雜的流處理器(如Flink)上,它包含從數據攝取到連續結果計算的所有步驟,因此,它可以依靠引擎的故障恢復機制。

Flink為連續流和批處理分析提供了非常好的支持。具體來講,它具有一個符合ANSI的SQL接口,具有用于批處理和流查詢的統一語義。無論SQL查詢是在記錄事件的靜態數據集上運行,還是在實時事件流上運行,它們都會計算出相同的結果。對用戶定義函數的豐富支持確保可以在SQL查詢中執行定制代碼。如果需要更多的定制邏輯,Flink的DataStream API或DataSet API提供了更多的底層控制。此外,Flink的Gelly庫為批量數據集的大規模和高性能圖分析提供了算法和構建塊。

典型的數據分析應用程序包括:

(1)電信網絡質量監控。

(2)移動應用程序中的產品更新及用戶體驗分析。

(3)消費者技術中實時數據的即時(Ad Hoc)分析。

(4)大規模圖分析。

主站蜘蛛池模板: 洛浦县| 阳朔县| 鄱阳县| 岳西县| 安多县| 贵德县| 成安县| 陕西省| 高安市| 香格里拉县| 长子县| 渝北区| 象州县| 道真| 彭水| 望都县| 克山县| 侯马市| 东城区| 葵青区| 武平县| 治多县| 龙岩市| 平凉市| 银川市| 彰武县| 合阳县| 蕲春县| 辽中县| 永平县| 新郑市| 融水| 寻甸| 乾安县| 涞源县| 望奎县| 聂荣县| 天气| 丰台区| 达拉特旗| 奎屯市|