阿里構建實時大數據系統的祕訣——流計算

阿里構建實時大數據系統的秘訣——流計算

內容來源:2018 年 6 月 23 日,阿里巴巴雲計算平臺事業部產品經理郭華在“數據智能實踐技術沙龍”進行《基於流計算構建實時大數據處理系統》演講分享。IT 大咖說作為獨家視頻合作方,經主辦方和講者審閱授權發佈。

閱讀字數:2390 | 6分鐘閱讀

嘉賓演講視頻及PPT,請複製:http://t.cn/RFPk6th,粘貼至瀏覽器即可。

阿里構建實時大數據系統的秘訣——流計算

摘要

本次演講主要分享基於流計算如何構建實時大數據處理系統。

為什麼要用流計算

通過分析數據可以挖掘出用戶需求,進而滿足用戶需求,所以我們常說數據是重要的生成資料,商業和數據能夠形成閉環。而流計算有個非常典型的認知——數據的價值隨著時間延長會迅速降低。比如在實際推薦、異常檢測和欺詐檢測、實時調度等場景下對數據時效性的要求就會非常高。大數據實時化對此的解決方案就是流式計算。

批處理 VS 流計算

傳統的大數據採用的是批處理的方式,數據被靜態的存儲起來,通過提交作業讀取數據處理,處理完成後返回結果並停止作業。流處理則是實時數據流,提交的是流式作業且一直存在於內存中,每當數據過來的時候就會產生實時的結果流。

批處理存在延遲較大的問題,一方面是因為全量計算的計算過程耗時長,另一方面是由於作業提交和事件觸發之間的延時無法估計。流計算彌補了這兩方面的不足,首先它是增量計算在計算速度上有明顯提升,其次事件驅動能夠實現即時響應。

理論上來說批處理是流處理的一種特殊形式,流處理被設計用來處理無線數據,批處理則是處理有線數據。在實際應用中我們還是會將它們分隔開,實時部分使用流處理,離線部分使用批處理,然後通過某個業務系統來整合它們的計算結果。之所以出現這種情況,我個人認為有兩方面原因。第一批處理有先發優勢,大數據的興起是由hadoop或spark這樣傳統的批處理系統所引導的,一般人員提到大數據首先想到的就是構建hadoop或spark系統。第二批處理針對特定場景做了特殊優化,不需要考慮太多容錯。

為什麼要用阿里雲流計算

阿里雲流計算從2016年9月份開始公測,2018年3月21日正式商業化,歷時大概1年半,基本上解決了可用性方面的問題。下面從4個方面來進一步瞭解下。

我們平臺的流式處理可以通過SQL完成,相對與傳統的程序編寫,極大的減少了代碼量,同時SQL語法學習成本不高,降低了開發和運維的門檻。

作為一站式平臺我們提供了web IDE,便於流作業的開發、調試、運維、報警,流處理的上下游數據管理也可以在這裡完成,在平臺之外還有完善的支持團隊。數據生態方面平臺無縫對接了阿里雲上的10中數據存儲。

最後是關於Blink引擎(該引擎過段時間也會開源),它是開源引擎Flink的企業版,在它的基礎上我們做了一些優化,包括二級調度、增量checkpoint、異步IO,在一些關鍵部分更是有10倍的性能提升。

從趨勢上來看我們認為大數據會繼續發展,且由於批處理在離線場景下的優勢,批流會共存,不過流的比例會逐漸增加。基於這一考量我們在選擇引擎的時候設定了幾點要求。第一能夠滿足低延時,第二有exactly-once這樣的正確性保證,第三能夠支持大規模計算,第四支持複雜計算,第五能做到批流統一。

阿里構建實時大數據系統的秘訣——流計算

上圖是對市面上的流式系統的篩選比較,可以看到除開Flink之外,其他的系統多少會存在一些問題。

如何用流計算

典型架構

各種終端上的流式數據彙總到消息隊列上,流計算訂閱消息隊列進行處理,這個過程中可能會查詢靜態歷史數據做一些關聯,最終拋出結果,該結果可以是流式的,也可以寫到靜態數據庫中。

典型場景—實時推薦

推薦系統本質上是聯繫用戶的興趣和物品,不過一般情況下用戶和物品之間沒有直接聯繫,需要中間元素來銜接。根據元素類別,推薦系統大致可以分為三類,基於物品、基於用戶以及基於特徵。

接下來主要講的是基於標籤,標籤是特徵的一種表示形式,,實現起來較為簡單,效果可以預期,可解釋性較強。

實時推薦的關鍵在於將用戶的標籤劃分為長期和短期,長期標籤指的是變動不太頻繁的標籤,比如年齡、居住地、消費習慣等,這些可以使用離線系統處理。短期標籤指的是在一段時間內用戶感興趣的內容,短期標籤統計完後會進行匹配度的計算。

阿里構建實時大數據系統的秘訣——流計算

上圖為計算公式,第一個變量是用戶對標籤的興趣程度,第二個變量是商品在該標籤上的得分。對於推薦系統來說準確性不是唯一的要求,還要有覆蓋率、可信度以及新穎程度,基於這種思考我們還需要對熱門標籤進行懲罰,防止其佔比過大。

典型場景—工業IoT

工業IoT領域主要是用來實時監控生產線中的產品是否合格或者一段時間內的合格率。整個流數據處理是這樣的,首先在車床上部署一些傳感器將商品數據發送到消息隊列上,由流計算訂閱消息隊列,然後計算出商品特徵,外部的異常檢測模型接收這些特性並返回是否合格,流計算獲得返回值後根據具體業務決定何時報警。

典型場景—實時報表

實時報表的數據一般來自於交易數據和行為日誌,數據同樣也是發送到消息隊列中由流計算訂閱,然後根據統計維度關聯商品信息計算出結果推到展示數據庫中,可視化系統通過直接刷新數據庫就能更新報表。

新功能速覽

主要的新功能有獨享集群、Datalake ETL、CEP。獨享集群相對於共享集群,開放了UDX、VPC,支持GPU和FPGA。Datalake ETL是批處理功能,負責數據清洗、同步、分析。CEP 做的是流式複雜事件處理。

以上為今天的分享內容,謝謝大家!


分享到:


相關文章: