基於MaxCompute打造輕盈的人人車移動端資料平臺
以下內容根據演講視訊以及PPT整理而成。
一.人人車資料平臺
快速搭建,一年時間完成6大平臺的搭建
基於阿里雲平臺上成熟的技術,人人車企業只用了一年時間便實現了6大資料平臺的設計與搭建,其中包括:Jarvis-BI報表平臺、Metadata-後設資料管理平臺、Streaming-實時計算平臺、Athena-資料工單平臺、Cateye-監控平臺與AD-HOC-自助取數平臺。
上述資料平臺的最底層均由阿里雲的相關技術支撐執行,阿里云為平臺的搭建提供了兩種不同技術的支援,在儲存計算技術方面,阿里雲提供了 RDS雲資料庫、MaxCompute大資料計算平臺、OSS物件儲存等儲蓄技術。在雲通訊技術方面,阿里雲同樣提供了SLB、DTS、DataX、CDN等雲通道技術。
企業遵循阿里雲 “One Data,One Server,One Meta”理念進行平臺的設計與實現。“One Data”這裡表示統一的資料來源,企業將所有資料出口彙總到MaxCompute並在Hadoop叢集上搭建統一的資料來源。圍繞統一的資料來源,企業搭建了許多相關業務的搜尋引擎,包括:Spark、Clickhouse、Presto、Druid.io等。在搜尋引擎的基礎上,平臺基於“One Server”的設計思想封裝了統一的DataServer為這些搜尋引擎提供上層資料服務。“One Meta”代表統一的後設資料,後設資料相當於資料流中的骨架,企業設計並實現的後設資料管理平臺很好地完成了對後設資料的管理任務,通過後設資料企業可以更好的管理資料許可權及各種資料指標。人人車企業基於阿里雲的技術與思想打造的資料平臺輕盈可靠,為企業帶來了很高的效益。
如下圖所示,在阿里雲技術的基礎上,人人車資料平臺的資料流實現分為以下4層:
- 查詢引擎:包括Presto、ClickHouse、Druid.io等查詢引擎。
- 通道儲存:包括Hadoop、Kafka等資料儲存工具。
- 計算層:使用了阿里雲的MaxCompute服務。
- 資料來源:企業的資料來源。
二.資料倉儲建模
基於資料驅動理念及市場的需求,人人車企業基於阿里雲成熟的MaxCompute技術嘗試設計搭建了企業自己的資料倉儲。在阿里雲便捷的方案與穩定技術的支援下,企業的資料倉儲搭建順利成功,目前已開始為公司貢獻資料上的效益。
1. 資料倉儲可以解決什麼問題?
建立資料倉儲可以為整個工程提供一個良好的資料體系,解決異構資料來源工程開發中的口徑版本不一、效率低下、缺乏可信度等問題。資料平臺的開發是由良好的頂層設計來決定底層建築的過程,優秀的資料平臺設計方案在實現過程中會為開發團隊節省大量的人力與時間。搭建一個標準的資料倉儲,即是完成資料平臺頂層設計的第一步。
2.資料倉儲的標準
企業業務上常用的資料倉儲為三段式模型,目前最為流行的是基於主題內容的Inmon模型與基於維度的Kimball模型。這兩種建模的目標都是建立一個更高效、穩定、靈活的資料倉儲模型。企業可以從耦合度、效能與成本、效率與質量這三大維度選擇合適自己業務的資料倉儲模型。在資料倉儲搭建的實施過程中,人人車平臺選擇在阿里雲的MaxCompute服務基礎上進行企業資料倉儲的搭建。如下圖所示,通過阿里雲MaxCompute服務搭建的資料倉儲從以下五大方面為人人車的資料倉儲搭建帶來了便利:
- 成本:通過阿里雲搭建資料倉儲可以為企業節省30%的服務成本及大量的人力成本,使企業研發團隊可以更加專注於業務的研發。
- 時間:通過阿里雲搭建資料倉儲可以大大節省企業的研發時間
- 效能:阿里雲的MaxCompute服務為企業提供了完善的資料處理方案、大規模的計算儲存、細粒度的節點依賴管理等功能,大大優化了企業資料平臺的效能。
- 穩定性:MaxCompute服務安全可靠,每天穩定在8點前產出企業需要的資料。
- 使用者個性化:提供了滿足使用者需求的諸多功能。
3.平臺資料倉儲結構
如下圖所示,人人車平臺資料倉儲的結構分為以下幾層:
- 業務資料層:最底層是業務資料層,這裡通過MySQL資料庫及資料庫日誌存放整個資料倉儲的業務執行資料。
- 運算元據層:業務資料產生後會同步進入運算元據層的ODS中,平臺在這裡要進行資料的對接,通過增量抽取等方式使同步到ODS的原始資料與業務資料保持一致。
- 明細資料層:在明細資料層中,平臺會將原始資料進行過濾,並從中抽取一些比較重要的資料。
- 維表層:通過維表層的使用,平臺可以有效下降資料的體積並在處理資料時更加靈活方便。維表層將貫穿整個資料倉儲的生命週期。
- 彙總資料層:在彙總層中,業務邏輯會對資料進行輕度的彙總,通過彙總收縮明細資料的體積,以此方便資料向最上層的資料集市進行彙總。
- 資料集市:資料集市中包含了大量的主題表,主題表主要功能是面向分析及統一指標。主題表可以幫助平臺分析並彙總企業每條業務線上的資料,可以有效防止由於資料彙總而導致的資料量的爆炸式增長。
4.基於MaxCompute搭建的資料倉儲效果
如下圖所示,是人人車平臺基於阿里雲MaxCompute搭建的資料倉儲的執行資料。通過阿里雲的MaxCompute,人人車平臺實現了快速高效搭建資料倉儲的願景。平臺所搭建的資料倉儲安全可靠,執行平穩,並且在每日資料峰值階段的表現優異。同時,通過使用阿里雲的服務搭建資料倉儲,企業節省了很多不必要的開銷。
5.資料同步問題
在資料倉儲的實現過程中,資料同步是一大難題。阿里雲提供了一些便捷的標準介面幫助企業更方便地將資料同步到MySQL以外的裝置上。企業可以對這些標準化的介面進行個性化的定義,以此方便自身業務的開發與編寫。
6.資料倉儲最佳實踐
在資料倉儲的設計與實踐過程中,人人車平臺總結了以下一些經驗:
- 資料產品非常重要:在企業的業務發展中,資料需求與產品需求同樣重要。資料可以為企業帶來機械化的資料驅動,幫助企業更好的掌握市場的流量、流量轉化情況及資料峰值等重要資訊。在設計產品時保證必要的資料預估,會使產品更加符合市場預期,更加受到市場的歡迎。
- 資料指標要剋制:資料指標並不是越多越有價值,企業需要聚焦最有價值的資料包表,通過關聯相關項得出最有價值的分析結果。
- 業務表:資料庫中業務表切忌隨意刪除,開發團隊可以通過狀態位標識的方法完成相關業務邏輯。
三.基於阿里雲技術的BI資料包表平臺
人人車企業以阿里雲技術為基礎設計並實踐的另一大成果是BI資料包表平臺,通過BI資料包表平臺,企業完成了對市場資料的輕鬆掌控,並大大提高了自身決策的準確度。
1. 方案的選擇–論POC以及TPC的重要性
在BI報表平臺實現的方案中,人人車採用了POC模式與TPC模型來實現。
POC模式意為產品原型驗證模式,開發者在產品原型驗證模式下需要去了解客戶的基礎需求,通過理解使用者的需求為使用者搭建一個業務原型場景。
TPC-DS模型是設計資料庫常常會用到的模型,其中包括:關係模型、星型模型及雪花模型,其優秀的工作負載能力可以為系統帶來很高的穩定性。
2.ClickHouse資料管理系統
ClickHouse資料庫管理系統開發自俄羅斯,系統擁有如下優點:
- 簡單可靠
- 支援高併發
- 支援增量、全量同步
- 支援億級別量級查詢
- 延時短
3.BI資料包表平臺架構
如下圖所示為BI資料包表平臺的架構示意圖,平臺的架構可以分為以下幾大部分:
- 資料來源:包括阿里雲HDFS及MaxCompute的服務以及企業內部的MySQL資料庫與待分析儲存的資料。
- 排程平臺:負責排程整個平臺的增量與全量同步,包括DataX與KafkaConnect模組。
- ClickHouse叢集:ClickHouse叢集是這個架構的核心,ClickHouse提供分片與副本的模式供使用者來進行部署,副本可以大大提高系統的併發效能,使系統的執行更加安全可靠。
- API層:在最外層,系統統一生成一致的API供使用者的電腦、手機等智慧裝置進行訪問及呼叫,API層具有鑑權及操作審計功能。
下圖為系統使用時的效果圖。在編輯圖表的過程中,使用者可以按照自己所想自由的拖拽拉動資料圖表,實現資料圖表的簡單化操作。基於大資料統計出的表格會將資料的特點直觀地表現給使用者,大大方便了使用者的使用。
下圖所示為BI資料包表平臺在移動端的效果圖。
4.BI資料包表平臺的優勢
BI資料包表平臺除了其方便操作的特點外,還為使用者帶來了以下優勢技術:
- SQL合成表:對於特殊需求的開發者,BI資料包表平臺支援使用者通過特殊關聯將SQL表格相連線,合成新表。
- 血緣關係:與合成表格相對應的是表格血緣關係檢視的功能,開發者可以通過血緣關係的檢視搜尋表格的相關依賴及被使用情況。
- AD-HOC:為開發者提供AD-HOC技術支援,方便資料平臺的開發使用。
在上述架構與優勢技術的支援下,BI資料包表平臺具備下列特點:
- 離線、實時特性:BI資料包表平臺支援使用者隨時的離線與實時資料查詢,並且具備低延時、高併發的特點。
- 易用性:BI資料包表平臺簡單易上手,小白級的拖拉拽操作方式,支援使用者高效快捷辦公。
- 細膩的許可權管控:資料的許可權是資料使用中十分重要的一個問題,資料許可權不清晰往往會造成很嚴重的後果。BI資料包表平臺的資料許可權可以細膩到行級別與欄位值域級別,細膩的許可權管控讓不同的使用者看到不同的資料,增加了專案的安全可靠性。
- ETL:支援關聯表查詢,合表生成原生SQL支援等。
- 資料一致性:嚴格進行增量全量的同步,使存入的資料可信可靠。
- 頂級視覺化效果:平臺提供可以突出資料特點的視覺化效果,讓使用者一目瞭然,迅速發現資料特點,提高工作效率。
5.BI資料包表平臺搭建時的經驗
在BI資料平臺的設計與搭建中,人人車平臺也摸索總結了很多經驗:
- 先做好POC,做好benchmark:先確定好使用者的需求,進行產品原型驗證,再進行相關的產品開發。
- 許可權是魔鬼,平臺一定要壓制住:資料許可權是資料平臺開發的重中之重,在開發時一定要重點設計關注資料許可權的問題。
6.BI資料包表平臺的資料驅動
BI平臺使用了資料驅動的運營方式,僅對使用者最感興趣的幾個指標項進行考核,將考核得到的結果與業績直接掛鉤,實現使用者在掌上檢視相關資料,大大方便使用者的工作與生活。
歡迎對大資料計算技術感興趣的開發者一起加入“MaxCompute開發者社群”,釘釘群號11782920,或掃下方二維碼。
相關文章
- 舉重若輕的人人車移動端資料平臺
- [opendx] 基於 appium 的移動端 UI 自動化測試平臺-介紹篇APPUI
- 使用Termux打造你的移動開發平臺UX移動開發
- 基於Mono和VSCode打造輕量級跨平臺IDEMonoVSCodeIDE
- 基於ROS平臺的移動機器人-3-小車底盤與ROS的通訊ROS機器人
- 基於MaxCompute的數倉資料質量管理
- 中國移動磐舟磐基平臺基於KubeEdge的落地實踐
- 如何一步步打造基於 React 的移動端 SPA 框架React框架
- 跨平臺打造移動原生應用的10大武器
- 長安汽車基於 Apache Doris 的車聯網資料分析平臺建設實踐Apache
- 移動端跨平臺開發的深度解析
- 【騰訊 TMQ】從 0 到 1:打造移動端 H5 效能測試平臺MQH5
- TypeScript, Angular 和移動端的跨平臺開發TypeScriptAngular
- 打造實時資料整合平臺——DataPipeline基於Kafka Connect的應用實踐APIKafka
- 基於VUE移動端UI好用框架VueUI框架
- 英特佩斯遠端資料採集和車隊管理平臺
- 打造大資料時代資訊化平臺大資料
- 實現基於React的移動端Swiper元件React元件
- 移動端基於動態路由的架構設計路由架構
- 基於weex的考拉移動端動態化方案
- 一種基於Android、iOS平臺的移動端VIN碼識別SDK,支援二次開發AndroidiOS
- 大資料分析平臺|零程式設計、人人都能用大資料程式設計
- 基於Gitea打造一個屬於你自己的程式碼託管平臺Git
- 基於 RocketMQ Prometheus Exporter 打造定製化 DevOps 平臺MQPrometheusExportdev
- 基於Apache Ambari搭建Hadoop大資料平臺ApacheHadoop大資料
- 基於 vagrant搭建移動端的開發環境開發環境
- 七牛雲:基於Go開發的大資料平臺Go大資料
- Flutter:移動端跨平臺技術演進之路Flutter
- 移動端H5多平臺分享實踐H5
- 移動端跨平臺技術之下的變與不變
- 聊聊移動端跨平臺開發的各種技術
- 移動端車牌識別的應用
- 移動開發即服務,騰訊雲移動開發平臺打造開發新模式移動開發模式
- 基於 Django 和 Vue 前後端分離介面自動化平臺DjangoVue後端
- JuiceFS 在大搜車資料平臺的實踐UI
- [小團隊自動化] 基於Gitea打造一個屬於你自己的程式碼託管平臺Git
- 基礎資料平臺的前世今生
- 基於 Echarts 的資料視覺化在異構資料平臺的實踐Echarts視覺化