MaxCompute在高德大數據上的應用
以下內容根據演講視頻以及PPT整理而成
一、高德的業務和數據
地圖描繪需要很多支撐數據,包括現實中的道路信息、路形以及路況等。下面的軌跡熱力圖展示了高德地圖顯示的北京聯合大學的周邊路況,描繪了點、線和面三種信息。通過地圖信息和軌跡數據疊加形成區域熱力。其中,不同顏色的軌跡展示了該區域一天內不同時間段的路況。
下面展示了高德的一些業務場景。第一個場景是大家日常使用的高德APP。高德地圖是蘋果中國的戰略合作夥伴,第二個場景展示了高德為蘋果提供的出行服務。高德向整個互聯網行業開放了其生態能力,第三個場景是高德為APP應用開放者提供的位置服務接口,目前使用該接口進行開發的移動應用包括手機淘寶、今日頭條和小米運動等。另外,第四個場景是高德為車載設備提供的完善的位置服務方案。
高德地圖的業務架構可以用“442陣型”來形容,即分為客戶端、中間層、服務引擎以及基礎地理信息等4層,同時包含AppleMaps、高德App、第三方App以及車載設備等4個業務入口。另外,數字“2”是指高德地圖依賴於兩個數據源,即自采數據、行業合作數據組成的基礎地理信息和軌跡數據、行車數據等服務引擎產生的數據。“442陣型”的業務架構給高德的發展帶來了質的飛躍。
下圖是高德總裁劉振飛先生正在慶祝高德十一DAU突破一個億的歷史時刻。十一期間,高德為全網用戶提供導航的總裏程超過135億公裏,相當於在太陽和地球之間往返45次。高德提供海量服務的背後是高德強大的大數據計算能力、超過數千臺的高德集群節點和承載超過百 PB數據的集群存儲容量。
二、如何管好數據
SPA架構
高德的數據架構稱為“SPA架構”。“S”指代Source,即數據源層,收容了高德內部所有的位置、地圖和圖像數據。“P”指代Platform,即數據平臺,提供了數據倉庫、數據適配和數據挖掘能力來支撐上層的數據應用層,也就是Application(“A”)。在“SPA架構”中,高德最關註獲取數據的權限,即要求所有數據操作都應該符合安全規範。此外,高德還要求所有部門都明確其開發目標,並且使用統一的平臺工具進行開發。
數據研發
數據研發的全鏈路過程包括數據集成、數據開發、運維中心、數據質量、數據地圖、數據安全以及數據服務等。高德對數據平臺的要求不僅僅是以上全鏈路都 All in One,還希望都能以可視化的方式進行用戶交互,以提高開發效率。以運維中心為例,希望所使用的工具能夠將調度節點可視化,並方便進行不同時間粒度的任務依賴。同時,我們還希望擁有可視化的數據地圖用於管理元數據信息,方便上下遊即時查看。MaxCompute正是符合高德數據業務訴求的給力產品。
MaxCompute平臺特點
高德使用的MaxCompute平臺具有以下三個特點:
第一, 易用性,具有零學習成本和完善的IDE等優勢。
第二, 效率,高德內部迄今為止最大的公共項目“魔方”就是運用阿裏雲和MaxCompute實現的。
第三, 彈性,高德於十一期間的流量遠遠超出想象。
易用-上雲
2014年,高德的數據架構依賴Flume進行數據采集,依賴一個僅含幾百臺機器的hadoop集群和Hive等軟件實現數據處理。2014年9月份高德內部提出“上雲”,即將數據遷移到阿裏雲,使非流程化的作業得到流程化的管理。與其他復雜的數據遷移工作相比,2014年高德實現了“一鍵”上雲,將源數據的同步從Flume切換成TimeTunnel,後續再可配置化地切換數據。此外,遷移還伴隨著代碼修改,2014年高德“上雲”僅修改了非常少的代碼,比如修改老版本M2中的接口等。上方的數據存儲層將數據介質替換成OTS等雲端產品,以支持更加穩定的前臺應用。高德將所有集群數據都遷移到“雲上”僅花了兩個月時間。
“上雲”為高德帶來的收益不可估量。圖1展示了“上雲”後由雲端管理所有代碼;圖2展示了一鍵式運維管理;圖3展示了可計量的計算資源管理,量化地顯示各個任務的資源使用情況;圖4展示了流程化的可視化安全審批操作。從2014年“上雲”到如今2018年,高德經歷了飛速的發展,同時也暴露出了一些問題。
效率-魔方
煙囪過多是數據倉庫中比較麻煩的問題,高德同樣存在該問題。數據使用者可能需要花費一個月尋找數據所在部門、數據的相關產品負責人以及研發人員以索要數據。2017年高德盤點數據倉庫時發現,高德內部存在二十個數據倉庫項目,並且各個數據倉庫間的數據冗余度高達百分之三十,嚴重影響了團隊工作效率。此外,高德數據倉庫還存在高時延缺點,核心數據無法保證每天“7點產出”。基於以上兩個問題,高德發起了“魔方”項目,將二十個倉庫合並成一個以實現全集團的數據治理。
顯而易見,要實現全集團的數據治理項目存在嚴峻的挑戰。首先,數據量非常大,“魔方”項目要求實現百PB級數據的全域數據治理。其次,參與人員眾多,“魔方”項目涉及到高德全產線的所有數據開發人員,項目團隊超過百人。最後,排期緊,為了使數據架構升級不影響正常業務,高德要求“魔方”項目的主體開發工作應在兩個半月內完成。此外,數據遷移工作在越短時間內完成對企業的收益就越大,因此高德要求“魔方”項目應在盡量短的時間內完成。應對這幾個挑戰的主體思路就是引入高效率的研發工具,在規範化的流程中實現協同開發,提高團隊的工作效率。
為此,高德首先統一了工具平臺,引入了MaxCompute,下圖藍色部分皆為MaxCompute 為我們帶來的業務收益。在數百人的團隊中統一規範無疑是困難的,而MaxCompute提供了代碼編寫規範、調度配置規範以及研發自測規範等規範化模塊。其中,代碼編寫規範模塊使用 SQL Scan 工具自動化地檢查代碼是否符合規範,調度配置規範模塊提供了完善的用戶手冊及各種模板輔助開發人員完成配置。統一流程要求實現定制化地管理數據開發流程,包括研發測試、開發自測、調度測試、QA測試以及最後的上線部署等流程。此外,統一建模和語言、統一數據核定標準也非常重要。
阿裏雲提供了一些優秀工具以構建規範化流程。第一,提供了數據血緣可視化工具,幫助數據開發團隊及時地跟蹤源數據、數據的上遊和下遊等信息。第二,提供了開發/測試流程並行的能力,以支持完善的協同開發和高效運轉的工作。第三,提供了代碼雲端版本管理工具,允許實時查看代碼變更、代碼管理狀態並支持回滾。第四,提供了一鍵數據探查工具,允許數據開發人員通過簡單的配置探查海量數據的字段空值率,有效值率,表重復率等信息,極大地提高了數據開發人員的工作效率。
在規範化的流程以及眾多效率工具的幫助下,高德在規定時間內完成了“魔方”項目開發,得到了一致好評。高德最終統一了數據倉庫,將內部所有百P級數據的月增速降低了40%,同時數據計算效率提升了30%。即使在2018年十一的流量轟炸時期,高德仍然實現了核心數據的“5點產出”目標(5點到7點需完成核心數據計算任務)。
彈性-十一
2018年十一期間,高德的數據處理量隨業務快速增長,數據計算任務的性能和平臺的穩定性都受到了極大的考驗。
數據血緣可視化工具允許數據開發人員可視化地查看系統資源配置,下圖展示了高德在2018年9月2日的系統實際使用計算水位,其中,藍線是系統配額水位,黃線是系統的實際計算水位。阿裏雲提供的彈性計算能力允許在一定彈性數據量範圍內保證系統資源的正常計算和輸出。此外,阿裏雲還提供了穩定的計算環境,保證計算任務高效地運轉,同時避免資源競爭問題。另外,為了更好地利用系統計算資源,高德團隊提出了“提高藍線、打散黃線”方案,申請擴大集群資源配額提升算力空間,通過調度錯峰打散實際資源水位。在擴容方面,MaxCompute為高德帶來了一鍵資源擴容能力,使得集群擴容在小時級別的時間內完成。最後,高德還實現了計算優化,提供了人員在線值守等保障。下圖同時展示了高德在2018年10月2日的系統計算水位,藍線代表的“系統配額水位”遠高於9月2日的,說明集群擴容工作已順利完成。同時,×××代表的“實際資源配額水位”已完全被藍線cover,更好地保障了資源計算任務。此外,×××高峰被明顯打散,一些重要非核心數據被錯峰調度到7點,說明計算資源的錯峰調度工作也已順利完成。阿裏雲提供的一鍵運維調度工具能夠保證系統方便的進行調度錯峰,節省人力。MaxCompute為高德帶來的彈性能力使得高德於2018年10月2日實現了核心數據“3點產出”的驕人成果。
業務成果
下圖展示了中國的路網覆蓋圖,華東、華北和華南地區基本實現了道路全網覆蓋,西部等偏遠地區的道路交通還不夠發達,許多道路仍在建設。路網覆蓋對高德而言非常重要,高德需要用盡可能少的成本自動地發掘新路和過期路。
高德將軌跡數據資產和地圖建設能力結合起來構建軌跡熱力圖,輔以現有路網和數據挖掘算法以自動化地發現新路和過期路。此外,高德還結合區域通車流量和該區域相關的用戶上報事件來動態地發現封路、交通事件,更好地實現路網挖掘。
路況預測是高德的另一個重要業務,即實時預測道路的通車狀況、道路是否擁堵等。左圖展示了高德對右圖路段從早到晚的平均車速預測,紅線表示數據累計得到的歷史均值,藍線表示模型預測值,黑線表示真實數據值。藍線和黑線基本重合,有力地說明了高德應用的數據挖掘能力和統一數據倉庫建設取得的成果。
此外,高德還面向全網用戶開放了一個城市級數據產品,允許用戶隨時查看城市的道路擁堵狀況和城市擁堵指數等相關數據,該產品可在http://report.amap.com/ 頁面訪問。下圖顯示了該產品給出的北京北二環某路段一周內的擁堵狀況。
三、未來展望
技“數”高德表達了高德的未來規劃。作為一家數據公司,高德致力於豐富數據源、優化SPA數據結構,得到更強大的數據平臺,為用戶提供更優秀的出現工具。從企業責任出發,高德希望能通過自身努力,幫助社會智能化地解決交通擁堵問題。從應用生態出發,高德希望能夠幫助生態建立更加場景化的LBS服務,共同打造更專業的位置服務應用。
高德致力於在未來繼續聯手阿裏雲,實現“連接真實世界,讓出行更美好!”的行業願景。
MaxCompute在高德大數據上的應用