大數據

實時計算案例:菜鳥物流

挑戰

菜鳥物流作為承接全國最大流量的快遞運輸平臺之一, 在重大購物狂歡節日中扮演了重要角色。近年來, 儘管菜鳥 物流的倉配系統進行了多業務端的優化, 但倉配業務鏈路長、節點多、分析維度複雜的業務特點, 使其在開發倉配 實時數據的過程中仍面臨了不少挑戰。如何保障其倉配實時數據的絲滑順暢, 建立帶有“倉配特色”的實時數據 版圖是菜鳥物流當前亟待解決的關鍵問題。

解決方案

實時數據的絲滑順暢離不開各業務系統的密切配合, 為此菜鳥物流從全局設計上制定了一套端到端的整體解決方 案。在數據模型、數據服務、數據應用、數據保障等多方面進行了優化。其中,與實時數據息息相關的數據計算, 菜鳥物流選擇了一站式、高性能實時大數據處理平臺阿里雲實時計算作為其主要的實時計算引擎。實時計算強大 的 SQL 功能, 提供 SQL 語義的流式數據分析能力(Flink SQL), 不僅支持兩條數據流 join ,並且可以在一段代碼 中實現多條數據流 join 操作;其子查詢功能、視圖功能、維表 join 功能等大幅降低了實時計算流數據分析的門 檻。實時計算強大的流計算性能,如 MiniBatch 優化、維表 cache&async、ignore delete、RocksDB 進行狀態管 理以及可以靈活配置資源參數等,經過菜鳥物流的多次壓測結果顯示阿里雲實時計算的數據處理速度遠超預期。

另外,簡單描述兩個阿里雲實時計算非常優秀的特性:高效的狀態管理機制, 實時計算過程中(如 group-by、join 等)都會產生大量的 state , 傳統的流計算引擎基本都是選擇外部存儲(如 HBase)作為 state 存儲方案,實時計 算的選擇是單機性能十分優異的 Gemini , 這個方案大大縮短了 IO latency , 從而獲得倍數的性能提升。強大的 Retraction 機制, 數據庫的同一記錄不斷變化,會往 TT 中流入多條消息, 如果依賴這個 TT 訂閱直接進 行一些彙總操作, 可能得到的記錄是不對的。舉例, 一筆訂單原計劃配送公司是 A , 後來計劃配送公司改為 B , 那麼 直接針對配送公司進行彙總可能得到的結果是 A 和 B 各一筆。此時, 藉助實時計算的 Retraction 機制即可處理類似 的“變 Key ”場景, 可以先使用 last 函數作特殊處理, 然後再做聚合, 這樣能確保最終彙總數據的準確性。

業務優勢

菜鳥物流從全局設計、數據模型、數據計算、數據服務、數據應用、數據保障等各方面進行業務系統的整體優化, 搭建了菜鳥物流的倉配實時鏈路體系, 完善了帶有”倉配特色”的實時數據版圖。在數據計算上, 2018 年雙 11 期 間經過實時鏈路壓測的檢驗實現了 100% 的數據可用性;在數據服務上,能夠針對不同應用場景提供相應服務; 在數據保障上建設了倉配實時鏈路的主備方案、數據服務的主備雙活方案以及多條實時鏈路壓測“特色”方案。

客戶評價

我們經過調研發現阿里雲實時計算強大的 Flink SQL 以及強大的流計算性能對菜鳥物流極具吸引力, 簡直是理 想的實時計算引擎。在實操中我們還用到了併發調優、MinBatch 調整、寫 TT 使用 hashFields 保序、特殊場景寫 ads ignore delete 等不少非常實用的開發和優化技能;當然,我們還挖掘出了實時計算非常驚豔的小功能, 如 First&Last、Retraction 機制、小而美的 nullValues 參數以及高效的狀態管理機制等。

實時計算 Flink 版產品交流群

test

阿里雲實時計算Flink - 解決方案:
https://developer.aliyun.com/article/765097
阿里雲實時計算Flink - 場景案例:
https://ververica.cn/corporate-practice
阿里雲實時計算Flink - 產品詳情頁:
https://www.aliyun.com/product/bigdata/product/sc

Leave a Reply

Your email address will not be published. Required fields are marked *