自從像AWS這樣的公共云產品開辟了大數據分析功能以來,小企業通過挖掘大量的數據做到只有大企業才能做到的事情,至今大約有10年時間。這些事情其中包括網絡日志、客戶購買記錄等,并通過按使需付費的方式提供低成本的商品集群。在這十年中,這些產品蓬勃發展,涵蓋了從實時(亞秒級延遲)流媒體式分析到用于分析批量模式工作的企業數據倉庫,而企業數據倉庫則可能需要數天或數周才能完成。
以下將介紹用于大數據堆棧的五個最有用的架構,以及每個架構的優點,以便更好地理解和權衡。此外,還對成本(按$ - $$$$$的規模)、何時使用、熱門產品,以及每種架構的提示和技巧進行了闡述。
在此并沒有什么特別的順序,用戶在AWS公共云旅程中可能遇到的五個頂級大數據架構是:
•流媒體- 允許攝取(并可能分析)任務關鍵型實時數據,這些數據可能會以爆發的形式出現在用戶面前。
•通用(或特定)的批處理集群—在可擴展、經濟高效的集群中提供通用存儲和計算功能,可以執行其他四種架構的任何和所有功能。
•NoSQL引擎 - 使架構師能夠處理“3V” —高速度、高容量,以及底層數據的多樣性/可變性。
•企業數據倉庫(EDW) - 允許組織為多年的歷史數據維護一個單獨的數據庫,并對該數據運行各種長期運行的分析。
•就地分析 - 允許用戶將數據“就地”保存在低成本存儲引擎中,并針對該數據運行高性能的即席查詢,而無需創建單獨的、昂貴的“集群”。
(1)流媒體
流媒體解決方案由以下多個因素定義:
•關鍵任務數據—即使丟失一筆交易也會給用戶帶來災難性的后果。
•負載中的爆發尖峰——物聯網的基礎設施可能會從完全無聲的狀態轉變為同時與其通話設備中的一個。
•實時響應 - 高延遲響應對用戶來說可能是災難性的。
這里有很多現實世界的例子,從特斯拉公司的電動汽車(基本上是移動的4G設備)不斷將汽車的位置發送到數據中心,通知司機下一個充電站在哪里。此外,人們喜歡的日本一家高度自動化的壽司專營店:Sushiro。Sushiro所做的是將RFID傳感器放在每個壽司盤底,然后,壽司傳送帶上的傳感器跟蹤每個盤子的動態,將數據點發送到AWS Kinesis,其后端響應儀表板的更新,通知壽司廚師,例如“丟掉即將過期變質的食物,或者制作更多的雞蛋壽司,或者解凍更多的金槍魚”,通過使用流媒體技術,該連鎖店不僅有上述的實時效率推薦,而且還可以獲得每家餐廳的歷史信息,并且可以了解顧客購買的趨勢。
Sushiro是一個很好的例子,因為它符合流媒體的所有三個要求。其儀表板現在對業務運營至關重要。
•成本:$$ - $$$$$(通常為RAM密集型)
•適用性:任務關鍵型數據,負載爆發尖峰,實時響應。用戶需要構建KPI的實時儀表板。
•注意事項:獨立的流媒體解決方案的構建和維護成本很高。擴展可能具有挑戰性,特別是如果在EC2上構建。失敗對企業來說可能是災難性的,但大多數產品都提供故障保護,例如復制優化、備份和災難恢復,以避免這種情況。
•受歡迎的產品:Kinesis(托管服務),Kafka(基于EC2),Spark Streaming(作為托管服務和基于EC2)和Storm。
•提示和技巧:使用Kinesis作為初學者(易于使用、體積小、成本低)。許多組織轉向基于EC2的Kafka(如果他們只需要流媒體)或Spark Streaming,以獲得更好的控制,并降低大批量成本。這是AWS中為數不多的幾次托管任務,像Kinesis這樣的托管服務最終會比基于EC2的Kafka解決方案花費更多的費用。
(2)通用(或特定)的批處理集群
使用Hadoop/Spark這些系統,用戶可以獲得高度可擴展、低成本(商用硬件和開源軟件)存儲和計算,這些存儲和計算可能會遇到大量問題,從而以盡可能低的成本對數據進行批量分析。
Hadoop技術非常成熟,提供了一個非常豐富的軟件生態系統,可以利用這些通用計算和存儲資源提供從數據倉庫到流媒體,甚至NoSQL的所有內容。
在Hadoop之上,現在可以運行Spark,它帶有自己的可擴展框架,以低延遲(高內存)方式提供上述所有功能,甚至適用于流媒體和NoSQL。
•成本:$ - $$$$(高度依賴于內存需求)
•適用性:最低成本、最大靈活性。如果希望采用一個集群完成所有任務,并從Hadoop或Spark內部部署轉移,那么這是一個不錯的選擇,非常適合機器學習。
•注意事項:一個全能的系統很少把每件事都做好,但這可以通過使用Spark和為每個工作量身定制的集群來大大減輕工作負荷。
•熱門產品:EMR(托管服務,也將運行Spark),Cloudera(基于EC2),Hortonworks(通過EMR作為托管服務,基于EC2)。