如何建立有效的流數據架構
企業正被各種來源的實時數據所淹沒,包括來自網絡和移動應用程序、物聯網、市場數據和交易等。從理論上講,企業應該可以利用這些大量信息改善客戶體驗、節省資金和創造利潤。
這里的挑戰是弄清楚如何利用這些數據流,以及應使用哪些分析類型。
有效的實時分析架構可以幫助業務經理和數據科學家快速測試新想法,以識別和擴展最佳用例。
傳統的分析方法依賴于將數據結構化,并存儲在數據庫中,這些數據庫需針對特定查詢類別進行優化。實時分析可處理不斷變化的數據,并且必須實時進行結構化。
IT咨詢公司ITRenew的計算和存儲解決方案高級副總裁Erik Riedel表示:“通過流分析,可以隨時了解特定時刻企業中發生的事件并對其采取行動,以及利用這些信息做出更好的業務決策。”
同時,重要的是設計可以響應和擴展的實時分析架構,而不是僅僅構建一次性的流分析項目。
決定你的流數據架構的關鍵問題
所有流架構將具有相同的核心組件,其中包括流數據聚合器、代理-用于管理對這些數據訪問權限,以及分析引擎。但是這些組件需要針對不同類型的企業和用例進行定制。
Riedel說:“流傳輸所需的特定數據架構將隨數據大小、事務處理頻率以及分析所提問題的復雜性而變化。”
例如,我們會看到,在大型企業中提供不同種類的實時分析,以及向企業總部的少數分析師提供實時分析數據以發現季度趨勢,這兩者可能存在很大差異。
應考慮的關鍵問題包括:
- 數據大小如何?
- 更新或事務頻率如何?
- 查詢復雜性如何?
- 所需要服務的分析師或應用程序有多少?
Riedel說,這些問題的答案將會影響系統設計一直到硬件級別–在數據存儲、RAM和分布式內存訪問方面。流數據的地理分布可能給系統帶來額外的壓力,因為即使適度的交易速率也需要仔細的系統設計。
實時分析架構構建塊
國際IT咨詢和軟件開發公司ScienceSoft的數據分析部門負責人Alex Bekker表示,該公司使用以下模塊來構建IoT實時分析架構:
- 事物—配備傳感器以生成數據用于分析的對象;
- 網關—事物與架構的云部分之間的關鍵
- 數據湖—以數據原始格式存儲數據的臨時存儲庫;
- 大數據倉庫—存儲已處理和結構化數據的存儲庫,這些數據需要進一步分析以提供有意義的見解;
- 數據分析部分—即分析發生的地方;
- 控制應用程序—在該模塊,自動命令和警報發送到應用程序或IoT應用程序中的實際執行期。
規劃實時分析用例的增長
當有些實時分析應用程序取得成功時,對新型分析方法的需求就會淹沒數據管理者和數據工程師。
Riedel說:“當分析的商業價值變得明確,對系統的使用和對豐富分析的需求就會迅速增長。”
他發現開放標準和開放框架可以幫助解決硬件和軟件的關鍵基礎架構可擴展性和適應性挑戰,還可以消除供應商鎖定等障礙。當數據管理者現場要求突然改變分析方法或工具,而需要全面更改基礎結構,這一點很重要。
Riedel看到的常見挑戰在于,當需求和分析復雜性增加時,如何有效地擴大分析規模,而在事務或分析放慢時,如何有效地縮減分析規模。通過從最低級別開始追求開放基礎架構,可以更輕松地擴展應用程序。
明確目標
實時分析項目在處理太多流數據或關注錯誤目標時會出現問題。
AWS咨詢合作伙伴FuseForward Solutions Group Ltd.的創始人兼CTO Mark Damm說,很多IT團隊缺乏處理大型和復雜數據集的技能、資源或預算。其結果是,他們實際只利用了大約1%的數據。
他認為,從數據架構、基礎設施或工具入手是錯誤的。相反,最好是盡可能清晰地了解企業的近期和長期目標。
接下來,確定可用的數據流。只有這樣,才可能圍繞基礎架構和工具做出可行的信息選擇。Damm發現,在云端部署實時分析可以提供靈活性和敏捷性,以快速創建和發展新的解決方案。
他說:“傳統的本地架構面臨的挑戰是,提供流分析所需的適當存儲、處理和快速響應。”
Damm認為霧計算是一種日益流行的方法,可處理復雜數據流以滿足本地需求,因為它可更容易地將流處理移至邊緣。
減少數據處理中的噪音
分析和數據管理工具提供商Information Builders的產品管理高級副總裁Keith Kohl說,在構建支持流的基礎結構時,了解業務用例是的最重要的因素之一。這也可以更容易地構建反映業務功能的應用程序,并且應用程序更加模塊化和可重用。
很多流行的流處理工具包含針對特定功能過濾掉流數據的功能。例如,Kafka流數據架構使你可以使用與特定用例相關的消息來創建主題。分析應用程序可以配置為訂閱所需主題的適當子集。其他流行的工具也有類似功能,例如Apache Flink、Apache Spark和Apache Flume。
流分析組件
數據湖提取和轉換工具提供商Upsolver的首席執行官Ori Rafael說,隨著存儲成本的下降,企業可以更好地存儲流數據用于后續的分析應用程序。
傳統的數據架構是圍繞企業數據倉庫而構建,數據倉庫提供高性能SQL數據庫用于報告分析。但是,對于流數據架構,將無模式數據從流轉換為數據倉庫所需的關系格式可能會非常昂貴。
現在企業開始采用流數據架構,其中他們將數據直接存儲在消息代理中–使用Kafka持久存儲等功能,或者存儲在數據湖中–使用Amazon Simple Storage Service或Azure Blob等工具。這些工具減少了前期整理數據到表中的需求。但是,當需要新類型的分析時,數據管理者必須花費更多的時間來結構化這些數據。
企業備份工具提供商Sungard AS的CTO架構師Kiran Chitturi說,另一個可能影響架構選擇的因素是不同類型的分析所需的查詢類型。流行的用例包括使用分布式SQL引擎、數據倉庫存儲或文本搜索,或將低延遲流事件發送到業務應用程序。
保持數據來源也很重要,這樣業務用戶才能了解他們正在使用什么。生命周期管理軟件提供商PTC的分析副總裁Ed Cuoco表示,這可以包括了解數據質量以及各種來源的數據量。這可以幫助業務用戶確定數據適用性,以用于各種類型的描述性、診斷性和預測性分析。