天天看點

MaxCompute在高德大資料上的應用

摘要:2019年1月18日,由阿裡巴巴 ​​MaxCompute ​​開發者社群和阿裡雲栖社群聯合主辦的“阿裡雲栖開發者沙龍大資料技術專場”走近北京聯合大學,本次技術沙龍上,高德資料技術專家苗翌辰為大家分享了高德如何應用MaxCompute來管理資料架構,開發易用、高效以及彈性的高德應用,為使用者提供更優質的出行服務。

以下内容根據演講視訊以及PPT整理而成

一、高德的業務和資料

地圖描繪需要很多支撐資料,包括現實中的道路資訊、路形以及路況等。下面的軌迹熱力圖展示了高德地圖顯示的北京聯合大學的周邊路況,描繪了點、線和面三種資訊。通過地圖資訊和軌迹資料疊加形成區域熱力。其中,不同顔色的軌迹展示了該區域一天内不同時間段的路況。

MaxCompute在高德大資料上的應用

下面展示了高德的一些業務場景。第一個場景是大家日常使用的高德APP。高德地圖是蘋果中國的戰略合作夥伴,第二個場景展示了高德為蘋果提供的出行服務。高德向整個網際網路行業開放了其生态能力,第三個場景是高德為APP應用開放者提供的位置服務接口,目前使用該接口進行開發的移動應用包括手機淘寶、今日頭條和小米運動等。另外,第四個場景是高德為車載裝置提供的完善的位置服務方案。

MaxCompute在高德大資料上的應用

高德地圖的業務架構可以用“442陣型”來形容,即分為用戶端、中間層、服務引擎以及基礎地理資訊等4層,同時包含AppleMaps、高德App、第三方App以及車載裝置等4個業務入口。另外,數字“2”是指高德地圖依賴于兩個資料源,即自采資料、行業合作資料組成的基礎地理資訊和軌迹資料、行車資料等服務引擎産生的資料。“442陣型”的業務架構給高德的發展帶來了質的飛躍。

MaxCompute在高德大資料上的應用

下圖是高德總裁劉振飛先生正在慶祝高德十一DAU突破一個億的曆史時刻。十一期間,高德為全網使用者提供導航的總裡程超過135億公裡,相當于在太陽和地球之間往返45次。高德提供海量服務的背後是高德強大的大資料計算能力、超過數千台的高德叢集節點和承載超過百 PB資料的叢集存儲容量。

MaxCompute在高德大資料上的應用

二、如何管好資料

SPA架構

高德的資料架構稱為“SPA架構”。“S”指代Source,即資料源層,收容了高德内部所有的位置、地圖和圖像資料。“P”指代Platform,即資料平台,提供了資料倉庫、資料适配和資料挖掘能力來支撐上層的資料應用層,也就是Application(“A”)。在“SPA架構”中,高德最關注擷取資料的權限,即要求所有資料操作都應該符合安全規範。此外,高德還要求所有部門都明确其開發目标,并且使用統一的平台工具進行開發。

MaxCompute在高德大資料上的應用

資料研發

資料研發的全鍊路過程包括資料內建、資料開發、運維中心、資料品質、資料地圖、資料安全以及資料服務等。高德對資料平台的要求不僅僅是以上全鍊路都 All in One,還希望都能以可視化的方式進行使用者互動,以提高開發效率。以運維中心為例,希望所使用的工具能夠将排程節點可視化,并友善進行不同時間粒度的任務依賴。同時,我們還希望擁有可視化的資料地圖用于管理中繼資料資訊,友善上下遊即時檢視。MaxCompute正是符合高德資料業務訴求的給力産品。

MaxCompute在高德大資料上的應用

MaxCompute平台特點

高德使用的MaxCompute平台具有以下三個特點:

第一, 易用性,具有零學習成本和完善的IDE等優勢。

第二, 效率,高德内部迄今為止最大的公共項目“魔方”就是運用阿裡雲和MaxCompute實作的。

第三, 彈性,高德于十一期間的流量遠遠超出想象。

MaxCompute在高德大資料上的應用

易用-上雲

2014年,高德的資料架構依賴Flume進行資料采集,依賴一個僅含幾百台機器的hadoop叢集和Hive等軟體實作資料處理。2014年9月份高德内部提出“上雲”,即将資料遷移到阿裡雲,使非流程化的作業得到流程化的管理。與其他複雜的資料遷移工作相比,2014年高德實作了“一鍵”上雲,将源資料的同步從Flume切換成TimeTunnel,後續再可配置化地切換資料。此外,遷移還伴随着代碼修改,2014年高德“上雲”僅修改了非常少的代碼,比如修改老版本M2中的接口等。上方的資料存儲層将資料媒體替換成OTS等雲端産品,以支援更加穩定的前台應用。高德将所有叢集資料都遷移到“雲上”僅花了兩個月時間。

MaxCompute在高德大資料上的應用

“上雲”為高德帶來的收益不可估量。圖1展示了“上雲”後由雲端管理所有代碼;圖2展示了一鍵式運維管理;圖3展示了可計量的計算資源管理,量化地顯示各個任務的資源使用情況;圖4展示了流程化的可視化安全審批操作。從2014年“上雲”到如今2018年,高德經曆了飛速的發展,同時也暴露出了一些問題。

MaxCompute在高德大資料上的應用

效率-魔方

煙囪過多是資料倉庫中比較麻煩的問題,高德同樣存在該問題。資料使用者可能需要花費一個月尋找資料所在部門、資料的相關産品負責人以及研發人員以索要資料。2017年高德盤點資料倉庫時發現,高德内部存在二十個資料倉庫項目,并且各個資料倉庫間的資料備援度高達百分之三十,嚴重影響了團隊工作效率。此外,高德資料倉庫還存在高時延缺點,核心資料無法保證每天“7點産出”。基于以上兩個問題,高德發起了“魔方”項目,将二十個倉庫合并成一個以實作全集團的資料治理。

MaxCompute在高德大資料上的應用

顯而易見,要實作全集團的資料治理項目存在嚴峻的挑戰。首先,資料量非常大,“魔方”項目要求實作百PB級資料的全域資料治理。其次,參與人員衆多,“魔方”項目涉及到高德全産線的所有資料開發人員,項目團隊超過百人。最後,排期緊,為了使資料架構更新不影響正常業務,高德要求“魔方”項目的主體開發工作應在兩個半月内完成。此外,資料遷移工作在越短時間内完成對企業的收益就越大,是以高德要求“魔方”項目應在盡量短的時間内完成。應對這幾個挑戰的主體思路就是引入高效率的研發工具,在規範化的流程中實作協同開發,提高團隊的工作效率。

MaxCompute在高德大資料上的應用

為此,高德首先統一了工具平台,引入了MaxCompute,下圖藍色部分皆為MaxCompute 為我們帶來的業務收益。在數百人的團隊中統一規範無疑是困難的,而MaxCompute提供了代碼編寫規範、排程配置規範以及研發自測規範等規範化子產品。其中,代碼編寫規範子產品使用 SQL Scan 工具自動化地檢查代碼是否符合規範,排程配置規範子產品提供了完善的使用者手冊及各種模闆輔助開發人員完成配置。統一流程要求實作定制化地管理資料開發流程,包括研發測試、開發自測、排程測試、QA測試以及最後的上線部署等流程。此外,統一模組化和語言、統一資料核定标準也非常重要。

MaxCompute在高德大資料上的應用

阿裡雲提供了一些優秀工具以建構規範化流程。第一,提供了資料血緣可視化工具,幫助資料開發團隊及時地跟蹤源資料、資料的上遊和下遊等資訊。第二,提供了開發/測試流程并行的能力,以支援完善的協同開發和高效運轉的工作。第三,提供了代碼雲端版本管理工具,允許實時檢視代碼變更、代碼管理狀态并支援復原。第四,提供了一鍵資料探查工具,允許資料開發人員通過簡單的配置探查海量資料的字段空值率,有效值率,表重複率等資訊,極大地提高了資料開發人員的工作效率。

MaxCompute在高德大資料上的應用

在規範化的流程以及衆多效率工具的幫助下,高德在規定時間内完成了“魔方”項目開發,得到了一緻好評。高德最終統一了資料倉庫,将内部所有百P級資料的月增速降低了40%,同時資料計算效率提升了30%。即使在2018年十一的流量轟炸時期,高德仍然實作了核心資料的“5點産出”目标(5點到7點需完成核心資料計算任務)。

MaxCompute在高德大資料上的應用

彈性-十一

2018年十一期間,高德的資料處理量随業務快速增長,資料計算任務的性能和平台的穩定性都受到了極大的考驗。

MaxCompute在高德大資料上的應用

資料血緣可視化工具允許資料開發人員可視化地檢視系統資源配置,下圖展示了高德在2018年9月2日的系統實際使用計算水位,其中,藍線是系統配額水位,黃線是系統的實際計算水位。阿裡雲提供的彈性計算能力允許在一定彈性資料量範圍内保證系統資源的正常計算和輸出。此外,阿裡雲還提供了穩定的計算環境,保證計算任務高效地運轉,同時避免資源競争問題。另外,為了更好地利用系統計算資源,高德團隊提出了“提高藍線、打散黃線”方案,申請擴大叢集資源配額提升算力空間,通過排程錯峰打散實際資源水位。在擴容方面,MaxCompute為高德帶來了一鍵資源擴容能力,使得叢集擴容在小時級别的時間内完成。最後,高德還實作了計算優化,提供了人員線上值守等保障。下圖同時展示了高德在2018年10月2日的系統計算水位,藍線代表的“系統配額水位”遠高于9月2日的,說明叢集擴容工作已順利完成。同時,黃色代表的“實際資源配額水位”已完全被藍線cover,更好地保障了資源計算任務。此外,黃色高峰被明顯打散,一些重要非核心資料被錯峰排程到7點,說明計算資源的錯峰排程工作也已順利完成。阿裡雲提供的一鍵運維排程工具能夠保證系統友善的進行排程錯峰,節省人力。MaxCompute為高德帶來的彈性能力使得高德于2018年10月2日實作了核心資料“3點産出”的驕人成果。

MaxCompute在高德大資料上的應用

業務成果

下圖展示了中國的路網覆寫圖,華東、華北和華南地區基本實作了道路全網覆寫,西部等偏遠地區的道路交通還不夠發達,許多道路仍在建設。路網覆寫對高德而言非常重要,高德需要用盡可能少的成本自動地發掘新路和過期路。

MaxCompute在高德大資料上的應用

高德将軌迹資料資産和地圖建設能力結合起來建構軌迹熱力圖,輔以現有路網和資料挖掘算法以自動化地發現新路和過期路。此外,高德還結合區域通車流量和該區域相關的使用者上報事件來動态地發現封路、交通事件,更好地實作路網挖掘。

MaxCompute在高德大資料上的應用

路況預測是高德的另一個重要業務,即實時預測道路的通車狀況、道路是否擁堵等。左圖展示了高德對右圖路段從早到晚的平均車速預測,紅線表示資料累計得到的曆史均值,藍線表示模型預測值,黑線表示真實資料值。藍線和黑線基本重合,有力地說明了高德應用的資料挖掘能力和統一資料倉庫建設取得的成果。

MaxCompute在高德大資料上的應用

此外,高德還面向全網使用者開放了一個城市級資料産品,允許使用者随時檢視城市的道路擁堵狀況和城市擁堵指數等相關資料,該産品可在​​http://report.amap.com/​​ 頁面通路。下圖顯示了該産品給出的北京北二環某路段一周内的擁堵狀況。

MaxCompute在高德大資料上的應用

三、未來展望

技“數”高德表達了高德的未來規劃。作為一家資料公司,高德緻力于豐富資料源、優化SPA資料結構,得到更強大的資料平台,為使用者提供更優秀的出現工具。從企業責任出發,高德希望能通過自身努力,幫助社會智能化地解決交通擁堵問題。從應用生态出發,高德希望能夠幫助生态建立更加場景化的LBS服務,共同打造更專業的位置服務應用。

MaxCompute在高德大資料上的應用

高德緻力于在未來繼續聯手阿裡雲,實作“連接配接真實世界,讓出行更美好!”的行業願景。

繼續閱讀