雙11即時物流訂單最佳實踐

隨著雙11的開啟,物流業也迎來了年度大考。2021年雙11期間,遞四方作為物流倉儲服務方,佈局倉庫和分揀點超40+個,50w+平米作業場地,單日訂單峰值達千萬級別,海量購物訂單由遞四方配送到家,消費者由尾款人秒變收貨人。

一  業務介紹

遞四方成立於2004年,創業在深圳,是國內最早的國際物流和全球倉儲服務物流供應鏈服務商,主要為從事跨境電商的客戶、平臺以及普通使用者提供倉儲物流服務,以GPN(直髮訂單)和GFN(海外倉儲)兩張網路為客戶提供更好的全球跨境電商優質生態環境,致力於幫助中國企業走向全球,目前在全球超過100+家分支機構,服務全球約100萬家跨境電商商戶與超過2億跨境電商終端使用者。

二  業務挑戰

為了應對雙11單日峰值達到千萬級別訂單的狀況,遞四方運用大資料合理最佳化資源,提前做好全球倉儲人力、物力、運力配置,保障倉儲各流程高效、有序進行。從今年10月中下旬開始,上海轉運中心和東莞轉運中心相繼啟動。截至目前,遞四方陸續在華東、華北、華南新建、擴建超級樞紐、攬收倉至40餘個,繼續加大在全國的佈局;在國內擁有40個+分公司/分撥服務網點,全國50萬+平方米辦公/作業場地面積。
在業務方面,遞四方藉助自主研發分揀系統和雲技術,快速進行條碼識別,按指令分揀,實現稱重分揀一體化全面覆蓋,保證每一票貨物都可自動識別、精準分揀出庫。稱重及分揀,已從傳統人工模式升級為100%人工管控模式。此外,遞四方資訊科技的黑科技硬體——紅光在此次“雙11”首次亮相。在分揀效率不變的情況下,遞四方資訊科技用光幕等技術手段,對分揀機落格包裹進行核驗,將庫內錯分率降低至萬分之三,達到業界領先水平。尤其針對倉庫環節,不斷加大對庫內的自動化、數字化、智慧化建設,結合大資料、AI演算法、雲計算等手段進行系統的研發升級,引進高科技裝置來提升產能、保障時效。
隨著雙11期間訂單量劇增、應用的複雜度提升,我們的業務系統也經受著嚴峻的挑戰,原來的即時數倉架構已經不能滿足業務當前的需求。在尋找新的解決方案時,我們對比了業界常用的大資料即時查詢資料庫,比如HBase、ClickHouse、Druid,但在千億級別資料多表連線查詢時都遇到了瓶頸,無法滿足業務即時性、服務穩定性的要求。
即時數倉在遞四方的應用場景應用主要有以下幾個方面:攬收、庫內操作、倉間調撥、清關交郵預警監控,這裡麵包含著單票運轉操作的每一個步驟。這些場景都需要做到即時監控,並且即時做出決策來提高物流的的整體時效。尤其是在雙十一高峰期的情況下,如果人力或資源分配不足,很容易使某一環節堵塞,進而影響整體物流的時效。在技術的層面,我們有很多個業務系統,這些系統之間既有一致性也有獨立性,一個複雜指標涉及到多個系統多張表,因此我們即時數倉對錶連線查詢能力非常強,而且對資料的更新插入速度也有著很高的要求。
今年雙11,我們對支撐業務的即時數倉系統進行了升級,透過新一代基於flink+hologres的即時數倉系統,在物流訂單量相較於去年增加多倍的情況下,仍然能夠即時監控每一票訂單的物流情況、每一個倉庫的作業情況,並且即時數倉整體成本下降50%,真正做到了“多、快、好、省”。
下面我們將會具體介紹遞四方即時數倉的升級演進之路。

三  遞四方即時數倉之路

1  即時數倉1.0

在剛開始做第一版即時數倉的時候,時間視窗比較緊,我們要把有限的精力放到資料建模以及業務開發中,所以在對比了資料庫的吞吐性以及處理能力後,我們選擇了ADB。ADB在數量大很大的情況下,查詢速度、插入速度都很快,而且支援DTS、OTTER等資料同步接入,同步效能很好。
資料來源是阿里雲的PolarDB、MySQL、RDS等資料庫,採用阿里雲的DataWork資料同步,把增量資料即時同步到ADB中,然後在ADB中做資料即時的計算,資料的任務排程在DataWork中完成。
但是當時遇到了一個非常大的問題,就是ADB的併發有限,計算任務耗費了大量的資源。在各種大屏、即時報表拉取資料的時候,高併發的情況下,ADB的延遲很高,給我們即時服務穩定性帶來了非常大的挑戰。

2  即時數倉2.0

經歷了第一個版本的即時數倉後,我們總結了即時數倉的兩個重要特性,一是即時,二是服務的穩定性。
第一個版本的即時數倉不能很好地滿足穩定性,我們決定對新的即時數倉進行一個深入的研究和探索,在阿里雲上看到了很多關於Hologres的應用,其效能表現極其出色,帶來了不錯的效果。在對比了業界不同的即時數倉架構後,我們最終選擇了Flink+Hologres組合作為即時數倉。
這裡一共有2條路徑:
  • 第一條路徑是:透過DTS把Binlog資料同步到DataHub,然後使用Flink從DataHub中消費資料,把計算結果儲存在Hologres中,這條路徑主要是用於計算一些訪問頻率高且資料量大的資料,比如待攬收單量、入庫單量、待完成單量等。
  • 第二條路徑是:業務系統的Binlog資料透過DataWorks同步到Hologres中。Hologres中分了3層,ODS層用於存放原始資料,直接載入原始日誌、資料,資料保持原貌不做處理。一般情況下,以增量的方式從業務系統匯入到ODS層,資料模型和粒度都與業務系統保持一致。DWD層資料明細層,對ODS層資料進行清洗。DWS為彙總層,主要存放寬表。這裡主要是考慮到粒度的不一樣,在Hologres中多表連線查詢能夠發揮其最大的作用。整個架構的任務排程依賴於DataWorks。
本次採用的批流一體即席計算查詢混合模式,既發揮了Flink流計算的能力,也充分利用了Hologres強大的連表查詢能力。網際網路普遍運用的HBase、ClickHouse、Druid等作為即時查詢資料庫,我們的業務複雜度是網際網路的若干倍,這些即時資料庫並不能完全滿足我們的需求,架構互有優劣,但我們的架構是未來五六年內業務高速增長的最佳選擇。

四  遞四方與即時數倉Hologres

1  為什麼選擇Hologres

那麼為什麼會選擇Hologres呢?透過調研發現它有幾個特點,比較適合實際情況。
  • 第一是Hologres的即時能力,滿足目前遞四方的即時數倉需求,支援百億級表與億級表之間的JOIN,秒級查詢響應,還支援即時寫入、批次資料匯入,擁有超高匯入效能,且併發能力極強。
  • 第二是Hologres 採用儲存計算分離架構,資料儲存在阿里雲分散式檔案系統pangu中(類比開源HDFS),方便按需單獨擴充套件計算或者儲存。對快速行業來說,大促和日常所需要資源不一樣,能夠快速擴縮容,滿足業務的動態需求。同時Hologres支援異構資料來源互動分析以及離線資料和即時資料的聯邦查詢,Hologres已經和MaxCompute無縫打通,能夠直接在Hologres中加速查詢MaxCompute離線表。
  • 第三是維護成本低、執行穩定,Hologres作為即時數倉儲存成本大約是ADB的1/3。資源靈活性高,可以像MaxCompute一樣靈活的升降配置,與阿里雲大資料元件相容性高,能降低運維成本和提高研發效能,不會對技術架構帶來很大負擔。

2  Hologres應用場景

在面向分析OLAP系統裡面,Hologres承擔了即時和離線資料的查詢,由於Hologres既支援高併發寫入,又能夠滿足及時查詢,同時還能夠支援OLAP分析,在我們的不同粒度的表進行連線的時候,能夠充分發揮其優勢。下面列舉2個不同的場景對其做一個詳細的說明。
場景一:庫內操作場景
即時的資料從Binlog解析到ODS層,同時微批任務將分鐘級別(範圍可調)的統計資料計算到DWS寬表,同時跟離線的資料進行插入更新,就可以得到即時的全量資料表,排程採取DataWorks的排程,每5分鐘排程1次。
場景2:倉間調撥場景
對於一些資料量小的表,依賴於Hologres強大的Join能力,透過檢視來構建DWS中間層,如下圖所示:
DWD是對ODS層過濾的檢視,DWS層是DWD層聚合層的寬表,每次查詢DWS層的時候,就相當於所有表重新查詢了一次。這種查詢語句是非常複雜的,對於關係型資料庫來說,可能有效能瓶頸會非常緩慢。但是對於Hologres來說,毫秒級別查詢完成毫無壓力,做到了即時響應,並且節省了排程資源,同時也提升了查詢的靈活性。

3  Hologres目前的不足

在使用Hologres期間也發現的一些不滿足實際需求的地方:一是非空列不能建立索引,多個億級別表連線在沒有索引的情況下,查詢速度下降。二是Hologres相容Postgre生態,但支援的函式不多,在開發上與MaxCompute相比有一定的難度。

五  業務價值

整個雙11期間,遞四方透過升級即時數倉技術,基於Flink+Hologres搭建的即時數倉支撐了即時大屏的高頻重新整理訪問,即時監控物流動態,促進了業務高效執行,讓消費者的快遞更快到家。整個架構升級給業務帶來的價值有以下幾個方面:
穩定:基於Hologres持續高穩定的輸出,整體雙11期間不論是即時資料寫入、還是資料的讀取都表現出了極強的穩定性。整個雙11期間,真正做到了0故障率。
即時:即時的攬收、庫內操作、中轉調撥等即時大屏,對我們的運營提供了非常強有力的即時資料支撐,整體時效比去年提高了不少,給使用者帶來良好的物流體驗,提高了公司的服務水平。
雲原生:除了上面兩個核心價值之外,由於雙11期間是流量高峰期,比日常流量高出上千倍,透過Hologres可以實現動態擴縮容,滿足我們對資源的不同需求,從而也降低了運維成本。
這是遞四方參與的第7個雙11狂歡節,遞四方在這次的物流大考中交出了滿意的答卷。隨著業務迅猛增長,遞四方也在不斷演進背後的即時數倉技術來支撐更豐富的倉儲物流場景,讓物流從“手工化”逐漸轉變為“智慧化”。

Cassandra資料庫入門與實戰

Apache Cassandra是一套開源分散式NoSQL資料庫系統。它最初由Facebook開發,用於儲存收件箱等簡單格式資料,2008年開源後,由於Cassandra良好的可擴充套件性,被Digg、Twitter等知名Web 2.0網站所採納,成為了一種流行的分散式結構化資料儲存方案。和其他資料庫比較,Cassandra有支援線性擴充套件、可以處理大量資料集、易於大規模部署、高度容錯等特點,因此也常年的權威資料庫榜單DB-Engines上排名前十,寬表領域排名第一。



為了更好地將阿里雲的資料庫技術能力回饋給開發者,和百萬開發者共同成長。阿里雲聯合Cassandra商業公司DataStax打造了本課程,邀請中美知名資料庫技術專家共同授課,帶你上手Cassandra,訓練營涵蓋Cassandra分散式資料庫、大資料分析、AI等多個前沿領域,讓我們一起探索雲計算與AI浪潮下的下一個職業風口,也讓你在MySQL、PG、MongoDB等資料庫基礎上,加持海量擴充套件的分散式資料庫技能。


相關文章