2019年1月18日,由阿里巴巴 MaxCompute 開發者社區和阿里雲棲社區聯合主辦的「阿里雲棲開發者沙龍大數據技術專場」走近北京聯合大學,本次技術沙龍上,高德數據技術專家苗翌辰爲你們分享了高德如何應用MaxCompute來管理數據架構,開發易用、高效以及彈性的高德應用,爲用戶提供更優質的出行服務。算法
如下內容根據演講視頻以及PPT整理而成安全
1、高德的業務和數據數據結構
地圖描繪須要不少支撐數據,包括現實中的道路信息、路形以及路況等。下面的軌跡熱力圖展現了高德地圖顯示的北京聯合大學的周邊路況,描繪了點、線和麪三種信息。經過地圖信息和軌跡數據疊加造成區域熱力。其中,不一樣顏色的軌跡展現了該區域一天內不一樣時間段的路況。
架構
下面展現了高德的一些業務場景。第一個場景是你們平常使用的高德APP。高德地圖是蘋果中國的戰略合做夥伴,第二個場景展現了高德爲蘋果提供的出行服務。高德向整個互聯網行業開放了其生態能力,第三個場景是高德爲APP應用開放者提供的位置服務接口,目前使用該接口進行開發的移動應用包括手機淘寶、今日頭條和小米運動等。另外,第四個場景是高德爲車載設備提供的完善的位置服務方案。運維
高德地圖的業務架構能夠用「442陣型」來形容,即分爲客戶端、中間層、服務引擎以及基礎地理信息等4層,同時包含AppleMaps、高德App、第三方App以及車載設備等4個業務入口。另外,數字「2」是指高德地圖依賴於兩個數據源,即自採數據、行業合做數據組成的基礎地理信息和軌跡數據、行車數據等服務引擎產生的數據。「442陣型」的業務架構給高德的發展帶來了質的飛躍。工具
下圖是高德總裁劉振飛先生正在慶祝高德十一DAU突破一個億的歷史時刻。十一期間,高德爲全網用戶提供導航的總里程超過135億千米,至關於在太陽和地球之間往返45次。高德提供海量服務的背後是高德強大的大數據計算能力、超過數千臺的高德集羣節點和承載超過百 PB數據的集羣存儲容量。
oop
2、如何管好數據性能
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/ 頁面訪問。下圖顯示了該產品給出的北京北二環某路段一週內的擁堵情況。
3、將來展望
技「數」高德表達了高德的將來規劃。做爲一家數據公司,高德致力於豐富數據源、優化SPA數據結構,獲得更強大的數據平臺,爲用戶提供更優秀的出現工具。從企業責任出發,高德但願能經過自身努力,幫助社會智能化地解決交通擁堵問題。從應用生態出發,高德但願可以幫助生態創建更加場景化的LBS服務,共同打造更專業的位置服務應用。
高德致力於在將來繼續聯手阿里雲,實現「鏈接真實世界,讓出行更美好!」的行業願景。