基於流計算構建實時大數據處理系統


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

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

獲取嘉賓演講視頻及PPT:http://suo.im/4vMRAI微信

摘要

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

爲何要用流計算

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

批處理 VS 流計算

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

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

理論上來講批處理是流處理的一種特殊形式,流處理被設計用來處理無線數據,批處理則是處理有線數據。在實際應用中咱們仍是會將它們分隔開,實時部分使用流處理,離線部分使用批處理,而後經過某個業務系統來整合它們的計算結果。之因此出現這種狀況,我我的認爲有兩方面緣由。第一批處理有先發優點,大數據的興起是由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 作的是流式復瑣事件處理。

相關文章
相關標籤/搜索