朱梅清 梁國豪 蔣祥斌 張亮 韋通明



摘要:車聯網數據是分析智能網聯汽車用戶行為的基礎,針對現有車聯網數據在海量數據存儲查詢慢及分析方面的不足,為提高車聯網數據的可保存性、易用性,文章提出車聯網數據倉庫架構體系。通過車聯網數據倉庫,需求部門可以直接獲取大量分析型數據標簽,為用戶行為分析快速提供數據支撐,不斷精準創新智能化用戶場景。
關鍵詞:車聯網;數據倉庫;研究
中圖法分類號:TP311文獻標識碼:A
Research on Internet of vehicles data warehouse technology
ZHU Meiqing,LIANGGuohao,JIANGXiangbin,ZHANGLiang,WEITongming
(SAIC GM WulingAutomoblieCo.,Ltd.,Guangxi Laboratory of New Energy Automobile,Guangxi Key Laboratory of Automobile Four New Features,Liuzhou,Guangxi 545007,China)
Abstract:Internet of vehicles data is the basis for analyzing the behavior of intelligent Internet connected vehicle users. In view of the shortcomings of existing Internet of vehicles data in massive data storage, query and analysis, in order to improve the preservation and ease of use of Internet of vehicles data, this paper puts forward the architecture system of Internet of vehicles data warehouse. Through the Internet of vehicles data warehouse,the demand department can directly obtain a large number of analytical data labels, quickly provide data support for user behavior analysis,and constantly accurately innovate intelligent user scenarios.
Key words: Internet of vehicles,datawarehouse,research
1研究背景
隨著汽車網聯化及智能程度的提升,車聯網技術提升了車輛的智能駕駛水平,為用戶提供智能、高效、安全的駕駛體驗及交通服務,同時可以提高交通運行效率。車聯網數據包含用戶信息、應用數據、操控數據、工況數據等,這些數據蘊含巨大的商業價值,是挖掘用戶畫像、智能推薦、智能出行服務等功能的數據基礎。車聯網數據由車機或 APP 采集上傳,直接存儲在數據庫(如 MySQL 和 Oracle 等)中,面對快速增長的數據,相關人員在對海量車聯網數據進行大量查詢和統計分析時顯得力不從心。
數據倉庫是一個面向主題的、集成的、相對穩定的、反映歷史變化的數據集合,用于支持管理決策[1]。借助數據倉庫技術,將不同來源的車聯網數據進行抽取、整合、指標加工,提供分析型數據標簽,減少重復計算,為用戶行為統計及車聯網功能優化提供數據支撐。
2相關技術
2.1 DataX
常用的大數據離線同步工具有 Sqoop 和DataX等,由于 Sqoop 將停止更新、維護,車聯網數據倉庫采用阿里開源的離線同步工具DataX作為同步工具。DataX(圖1)是一個異構數據源離線同步工具,采用插件式框架設計,將數據源讀取和寫入抽象為 Reader/Writer 插件,其星型數據鏈路,使得DataX作為數據源之間的中間傳輸載體,當需要接入新的數據源時,定義好該數據源的 Reader/Writer 插件即可做到跟已有的數據源進行數據同步。目前,DataX支持 MySQL,Oracle,Hive,HDFS 等常見數據庫之間的數據同步,插件體系比較全面,使用廣泛。
2.2 Hive
Hive 是基于 Hadoop 構建的數據倉庫工具,提供抽取、轉換、加載、數據集查詢和分析等功能。Hive 可以將存儲在 Hadoop 中的結構化的數據文件映射為一張數據庫表,并提供類似 SQL 的 HiveQL 語言來實現查詢功能,其通過 HiveQL 語句實現快速 MapReduce 統計,而不必開發專門的 MapReduce 程序,具有靈活性高、低數據約束格式、良好的容錯性和可拓展性、學習成本低等優點,非常適合對數據倉庫進行統計分析[2]。
2.3海豚調度
海豚調度是一款分布式易擴展的、支持可視化 DAG 界面的新一代工作流任務調度系統,致力于解決大數據任務之間錯綜復雜的依賴關系,并監控整個數據處理過程,使調度系統在數據處理流程中開箱即用。海豚調度能夠實時監控任務的運行狀態,同時支持重試、從指定節點恢復失敗、暫停及 Kill 任務等操作。海豚調度簡單易用,使用場景豐富及高可靠性、高拓展性的特性使其十分流行。
3架構體系
車聯網數據倉庫采用維度建模技術,由原始數據層、數據明細層、維度層、數據匯總層、數據應用層組成,如圖2所示。
3.1原始數據層
原始數據層存放原始數據,是最接近數據源的一層,除了將非結構化數據解析成結構化數據,并不對業務數據進行過多的處理,盡可能保持數據處于原始狀態。車聯網數據來源于不同的車機、APP,有結構化數據和半結構化數據,存儲在數據庫 MySQL,HDFS等,需要使用同步工具將存儲在不同數據庫中的數據同步到原始數據層。通過DataX將數據源中的結構化數據同步到原始數據層;對于非結構化數據,通過 HiveQL 語句將json格式的半結構數據解析成結構化數據,并插入到原始數據層。
3.2原始明細層
數據明細層以業務過程作為建模驅動,構建最細粒度的事實表,對來自原始數據層的所需數據進行抽取、清洗、轉換、整合,并通過 join 方式與維度表關聯。不同數據源的車聯網數據上傳標準不一致,存在同意不同名的情況,需要保持統一數據標準,將不同數據源的數據整合到同一數據表中,保持數據的一致性,即同名同意、同意同名,避免因數據口徑不一致造成不同業務對數據理解不一致的情況。
3.3維度層
維度層保存維度信息,主要針對業務事實的描述信息,維度屬性是查詢的約束條件及報表標簽的基本來源。車聯網數據倉庫中的維度信息包括手機品牌、地區、日期、埋點等。
3.4數據匯總層
數據匯總層以數據明細層為基礎,按照各個業務過程進行輕度匯總,成為用于分析的服務數據,用來進行快速、方便地查詢,一般是寬表。車聯網原始數據最細粒度為一次功能觸發,而業務方經常使用場景為各車輛每小時使用車輛網功能次數、每天使用車輛網次數等形式的數據,因此每使用一次,就須計算一次。為了減少重復計算,增加一次計算結果的復用性,根據常用業務場景,將數據明細層的數據進行匯總,寫入輕度匯總層。
3.5數據應用層
數據應用層面向業務需求定制開發,為各種統計報表提供數據。統計車聯網功能標簽、不同標簽的使用次數、使用車輛數等常用標簽數據。
4車聯網數據倉庫 ELT
數據抽取、轉換、加載是構建數據倉庫的重要一環,傳統的 ETL 工具是在數據抽取和加載過程中進行清洗轉換,加載到數倉中的數據是清洗轉換后的數據,當清洗轉換的過程中出現問題時,將難以溯源。隨著 Hadoop 技術的引入,及存儲成本的降低,ELT 日漸普及,車聯網數據倉庫采用 ELT 方式,將所有原始數據都抽取到數據倉庫的原始數據層,僅做多源數據的整合、匯聚,而不做清洗轉換,保留原始數據。對 ELT 而言,Hive 是一個功能強大的工具,使用 Hive 作為傳統 ELT 工具的替代,充分利用大數據的計算能力,將原始數據層的數據清洗轉換后,加載到數據明細層,ELT 流程如圖3所示。
4.1數據抽取
對于結構化數據,通過離線同步工具DataX將數據同步到原始數據層;對于存在 HDFS 中的非結構化數據,通過 HiveQL 語句將json格式的半結構數據解析成結構化數據,并插入到原始數據層。數據抽取一般有全量抽取和增量抽取兩種方式;對于歷史數據,使用全量抽取的方式;對于每日新增的數據,采取每日定時增量抽取的方式。
4.2數據清洗
數據清洗主要是對原始數據層的數據清洗轉換,將空值、臟數據、超過極限范圍的數據進行過濾、轉換。例如,將字符串類型字段的空值,轉換為unknown;超過合理范圍的經緯度過濾等。
4.3數據加載
數據加載是將清洗轉換后的數據加載到數據倉庫的數據明細層。車聯網數據倉庫通過 Insert 的方式,將清洗轉換后的數據加載到數據明細數據層。
5結論
通過構建車聯網數據倉庫,可彌補現有車聯網數據在海量數據存儲分散、查詢慢及分析方面的不足,同時提供分析型數據標簽,需求部門可直接、快速地獲取數據,減少重復計算,為用戶行為統計及車聯網功能優化提供數據支撐。
參考文獻:
[1]彭先清.數據倉庫中聯機分析系統的研究與實現[ D].成都:電子科技大學,2019.
[2] Thusoo A,Sarma J S,Jain N,et al.Hive?A petabyte scale data warehouse using Hadoop[ C]∥ IEEE 26th International Conference on Data Engineering,2010:996?1005.
作者簡介:
朱梅清(1996—),本科,助理工程師,研究方向:數據開發。