天天看點

DT時代阿裡雲流計算讓業務實時、讓資料發電

摘要:

如果說資料處理技術時代中資料是新能源,流計算就是讓新能源發電的關鍵技術。基于阿裡雲流計算天貓雙十一大屏可以實時展現上億條資料訂單。如何搭建具備億級QPS處理能力的流式大資料處理系統,本文就阿裡雲流計算在大資料實時進行中帶來的價值、流計算的顯著優勢以及應用場景和案例等方面的内容做了深入的分析。

本場視訊精彩回顧, 戳這裡! 本場視訊PPT下載下傳, 演講嘉賓簡介:

付空,阿裡雲進階産品專家

以下内容根據演講嘉賓視訊分享以及PPT整理而成。 本次的分享主要圍繞以下三個方面:

一、為什麼要用流計算

二、為什麼要用阿裡雲流計算

三、如何用流計算

一、 為什麼要用流計算
DT時代阿裡雲流計算讓業務實時、讓資料發電

随着DT(資料處理技術)時代的到來,資料作為生産資料包含使用者的需求,通過分析資料、挖掘使用者需求同時滿足使用者需求,可以産生一定商業價值,是以商業和資料之間可以産生閉環。

DT時代阿裡雲流計算讓業務實時、讓資料發電

流計算秉持資料價值會随時間延遲而迅速跌落的基本觀念,例如實時推薦、異常或欺詐檢測和實時的報表。實時推薦中,要求在使用者進行點選時,系統感覺使用者目前感興趣的東西,從内容庫中查找對應使用者感興趣的内容并推送給使用者,進而使使用者可以實時發現自己感興趣的東西,延長使用者活躍時間。相反當使用者通路離線的推薦系統時,即使擁有較高準确率的算法,使用者的興趣也可能會随着時間的推移而發生改變。在實時異常和欺詐檢測中,以電商系統為例,系統需要實時地監控使用者的行為判斷該使用者是否為羊毛黨,如果該系統為批處理系統,當發現問題時系統交易可能已經完成,追回損失成為困難。

DT時代阿裡雲流計算讓業務實時、讓資料發電

基于以上兩個方面,資料的閉環工作應該進行得越快越好,越快找到使用者的需求并滿足使用者的需求,就能擷取更好的商業競争力。是以大資料的實時化成為一種需求,實時化需求的解決方案就是流式處理系統。

DT時代阿裡雲流計算讓業務實時、讓資料發電

批處理系統中,使用者将作業送出給系統,系統讀取資料、計算、傳回結果後作業停止。批處理系統具有比較大的延遲,表現為兩個方面:

1) 每次計算都要計算所有的資料,産生較長的計算耗時。

2) 由送出作業驅動,送出作業和事件發生之間具有延遲。

流式處理系統中,使用者送出作業後,作業會在記憶體中常駐,隻要有資料過來就會觸發計算,産生實時的結果流。流式處理系統做到實時性表現為兩個方面:

1) 每次計算隻計算一個增量,計算耗時短。

2) 由事件觸發,事件到達即刻進行計算。

DT時代阿裡雲流計算讓業務實時、讓資料發電

在批進行中,資料相當于一個湖,無論湖有多大都是靜态的,離線(批量)計算相當于開船去湖中捕魚,将計算貼近資料進而擷取想要的結果。在流計算中,資料相當于一條河,河流不停地在流動,流計算相當于在河邊修水壩,資料流過時擷取想要的結果相當于電。基于以上例子,批量計算和流計算的差別在于:

1) 批量計算中資料是靜态的,流計算中資料是動态的,表現為湖與河的差別。

2) 批量計算是将船開到湖中,自己尋找資料,流計算是在河邊建壩,等待資料傳入。

DT時代阿裡雲流計算讓業務實時、讓資料發電

批處理是處理有限的資料,流處理是處理無限的資料。将有限作為無限的特例,具體來說,在流式進行中将視窗設定成批處理一樣的大小,進而擷取和批處理一樣的結果。然而在實踐中,人們會把兩個系統分開,實時的部分采用流式系統,離線的部分采用批處理系統。采用以上架構有兩點原因:

1) 由于大資料通過Spark等發展起來,本身采用離線的處理系統,批處理系統占據了公司的大部分業務,具有一定的先發優勢。

2) 從工程上來講,批處理是流處理的特殊場景,批處理系統在特殊的場景中可以進行特殊的優化。例如批處理系統不用考慮流計算視窗上的容錯,在設計内部資料結構或查詢優化時,可以假設資料是有限的,是以在批處理特殊場景下會有更好的性能,例如更高的吞吐量等。

二、 為什麼要用阿裡雲流計算
DT時代阿裡雲流計算讓業務實時、讓資料發電

阿裡雲流計算采用一站式、高性能、穩定、易用的流式大資料處理平台。下面從四個方面介紹阿裡雲流計算平台。

流式SQL
DT時代阿裡雲流計算讓業務實時、讓資料發電

阿裡雲的流計算平台采用流式SQL語言,圖中右側為基于storm的固定時間視窗下的單詞計數的java代碼,左側為實作相同功能的SQL代碼,兩者在代碼量上差别巨大,SQL對生産力的提升有着非常大的幫助,同時SQL的編寫較為簡單,進而降低了使用者的門檻。

一站式平台
DT時代阿裡雲流計算讓業務實時、讓資料發電

阿裡雲的一站式流計算平台相當于提供了一個web的IDE。流計算本身的開發、調試、運維和報警都可以在自己的平台中執行。流計算的上下遊例如資料的存儲、source、sink和中間的一些維表也可以通過自己的平台進行管理。該平台提供完善的支援,使用者遇到的業務問題可以很快得到解決,同時支援團隊根據使用者合理的需求可以進行功能上的擴充開發。

資料生态
DT時代阿裡雲流計算讓業務實時、讓資料發電

阿裡雲的流計算平台無縫對接阿裡雲上的十多種資料存儲,所謂無縫對接,是指使用者不需要進行資料遷移,使用者注冊後可以直接使用原來地方存儲的資料,表現為一鍵式的流式大資料環境建構的處理系統。

Blink
DT時代阿裡雲流計算讓業務實時、讓資料發電

阿裡雲的流計算平台采用Blink作為底層引擎。Blink可以認為是開源引擎Flink的企業版。阿裡巴巴在底層引擎方面進行了很多優化,包括二級排程、增量checkpoint和異步IO等,在關鍵部分上有着10倍的性能提升。

DT時代阿裡雲流計算讓業務實時、讓資料發電

上圖展現Apache Storm、Spark Streaming和Flink的差別,Flink将Apache Storm和Spark Streaming在流處理上的優點進行了集合,視窗作為流計算非常重要的特性,Flink在視窗方面表現得更好,想要在流計算中處理有限的資料通常需要使用視窗,Flink支援比較完善的事件視窗、時間處理視窗和會話視窗。

三、 如何用流計算
DT時代阿裡雲流計算讓業務實時、讓資料發電

如圖為流計算的典型架構,一般地當使用者擁有一個web、app或者作為IoT的廠商時,日常中會實時地産生日志,這些日志本身是流式的,可以推送到消息隊列的伺服器中,然後流計算訂閱這些消息,在這一過程中可以關聯一些使用者的靜态資料,進而得到結果,結果可以為流式的例如同樣為消息隊列的日志,也可以為靜态的例如流計算實時地更新使用者寫入的資料,使資料保持實時更新的狀态。

DT時代阿裡雲流計算讓業務實時、讓資料發電

進一步來說,流計算可以對資料流進行解析和過濾,兩個資料流可以進行join(結合),同時使用者可以定義一些函數即udf,處理一些特殊的邏輯,在流計算的過程中可能會關聯一些其它靜态的資料,擷取資料的一些屬性,最終經過彙總和統計産生結果。

DT時代阿裡雲流計算讓業務實時、讓資料發電

下面介紹流計算的典型應用場景包括實時推薦、工業IoT、欺詐檢測和實時報表。

實時推薦
DT時代阿裡雲流計算讓業務實時、讓資料發電

實時推薦中,系統擷取使用者畫像,在内容資料庫中進行相似度的比對,找到與使用者畫像比較相近的内容推送給使用者。為了解決實時性,将使用者畫像分為長期興趣标簽和短期興趣标簽兩部分。長期興趣标簽指基本不太發生變化或者發生變化頻率比較低的使用者畫像,例如使用者的性别、年齡、地理位置、消費習慣等,由于長期興趣标簽對實時性要求不高,可以通過離線的方式進行更新。短期興趣标簽例如使用者5分鐘一直對汽車比較感興趣,不斷重新整理汽車相關的網頁。系統通過web或app記錄使用者的行為,發送到消息隊列,流計算訂閱消息隊列實時地計算使用者的短期興趣标簽,例如統計使用者最近1分鐘對所有類别的點選率,然後進行排序,擷取點選率高的類别作為短期興趣标簽,經過内容比對的搜尋将結果傳回給使用者。

工業IoT
DT時代阿裡雲流計算讓業務實時、讓資料發電

工業IoT中,相當于使用者擁有一條生産線,想要獲得生産線上實時的名額或者監控生産線上的良品率,防止産生更大的損失。在該資料流中,使用者在車床上部署傳感器實時地采集産品的特征,然後将特征的原始資訊例如日志發送到消息隊列伺服器中,流計算訂閱消息隊列擷取産品的原始資料計算産品的特征,通過udf調用産品合格率的檢測模型進行判斷,最後将結果個性化地展現給使用者。

欺詐檢測
DT時代阿裡雲流計算讓業務實時、讓資料發電

欺詐檢測中,假設電商系統實時地監控使用者的行為是否在薅羊毛,它的資料流類似于工業IoT,使用者的行為通過日志發送到消息隊列伺服器,流計算實時地将使用者行為特征化,然後調用風險模型對使用者的行為進行一對一的判斷。在這一過程中CEP規則引擎是流式系統中複雜的分析歸類引擎,例如可以在CEP中定義使用者先做了A,過了3分鐘又做了B,之後做了3次C和1次D,将這些動作綜合起來認為使用者做了異常行為。綜合CEP和風險模型可以實時地檢測使用者的行為是否有問題,進而發出報警避免更大的财産損失。

實時報表
DT時代阿裡雲流計算讓業務實時、讓資料發電

實時報表中,例如天貓的雙十一大屏,将使用者的交易資料和行為資料歸組到消息隊列中,消息隊列讀取資料關聯到商品的屬性,按照想要的次元進行統計,将結果存儲在RDS中,展示系統讀取RDS的内容進行結果展示。實時報表不僅僅隻有展示作用,同時會産生一定的業務價值。

DT時代阿裡雲流計算讓業務實時、讓資料發電

流計算應用的典型案例中,天貓雙十一大屏的TPS(系統吞吐量)峰值是過硬的,每秒可以處理幾億條事務,從使用者下單到資料彙總到大屏的整個全鍊路的延遲為3秒,同時擁有秒級别的流計算處理延遲。除了天貓,菜鳥和支付寶也在使用流計算進行實時的大資料處理,例如菜鳥通過流計算進行實時的倉庫管理。流計算同時應用在城市大腦和工業大腦中,例如通過流計算進行實時地異常檢測、實時地車輛檢測、實時地監控、報表等。

DT時代阿裡雲流計算讓業務實時、讓資料發電

如圖所示除了阿裡集團内部,阿裡雲流計算平台在公共雲中已經擁有很多使用者。實時化其實是一個非常橫向的需求,覆寫行業範圍廣泛包括網際網路、金融、IoT、國企和政府等。具有實時化大資料處理需求的使用者都可以免費體驗一個月的阿裡雲流計算平台服務,同時在試用的過程中會有專業人員進行輔導。

DT時代阿裡雲流計算讓業務實時、讓資料發電

阿裡雲流計算平台在最近添加了一些新功能,包括獨享叢集、Datalake ETL和CEP。獨享叢集6月7日正式開始邀測,獨享叢集相對于公共雲上的共享叢集,在共享叢集中所有的使用者共享同一個叢集,在獨享叢集中每個使用者使用自己的叢集,獨享叢集更加開放,使用者可以定義很多的udf,網絡與VPC的互通變得更加便捷,同時獨享叢集支援非常多的底層硬體例如GPU、FPGA等,可以實時地處理圖像和視訊。在Datalake ETL中使用者可以進行資料的清洗、同步、分析等。CEP是在流式系統中進行複雜規則比對的工具,內建于SQL,通過SQL定義複雜的模式進行比對。

DT時代,資料是新能源,流計算讓業務實時,讓資料發電!

本文由雲栖志願小組丁勻泰整理