楊國(guó)丹
(西南交通大學(xué)制造業(yè)產(chǎn)業(yè)鏈協(xié)同與信息化支撐技術(shù)四川省重點(diǎn)實(shí)驗(yàn)室,成都 611756)
隨著我國(guó)經(jīng)濟(jì)的快速發(fā)展,人民生活水平日益提高,汽車也走進(jìn)了千家萬(wàn)戶。中國(guó)汽車保有量繼2020 年底趕超美國(guó)成為全球第一之后,繼續(xù)保持高速的增長(zhǎng),2021 年中國(guó)的汽車保有量將突破3 億大關(guān)[1]。隨之產(chǎn)生的海量的、不同形式的、不同來(lái)源的數(shù)據(jù)應(yīng)該如何更好地為汽車產(chǎn)業(yè)中的產(chǎn)品設(shè)計(jì)和研發(fā)、制造過(guò)程優(yōu)化、營(yíng)銷和銷售、服務(wù)和售后賦能是我們亟待解決的重要問(wèn)題之一。
針對(duì)上述問(wèn)題,本文設(shè)計(jì)了基于VizQL 的汽車行業(yè)數(shù)據(jù)可視化系統(tǒng),幫助汽車研發(fā)人員更直觀地了解市場(chǎng)需求、產(chǎn)品特性和競(jìng)爭(zhēng)對(duì)手情況,有利于進(jìn)行產(chǎn)品設(shè)計(jì)和研發(fā);幫助企業(yè)進(jìn)行生產(chǎn)計(jì)劃和流程優(yōu)化,提高生產(chǎn)效率和質(zhì)量;幫助企業(yè)了解消費(fèi)者需求、市場(chǎng)趨勢(shì)和競(jìng)爭(zhēng)對(duì)手情況,從而制定更合適的營(yíng)銷策略和銷售計(jì)劃,提高銷售效率和市場(chǎng)占有率;幫助汽車企業(yè)和經(jīng)銷商提高售后服務(wù)質(zhì)量,滿足消費(fèi)者需求。
數(shù)據(jù)可視化是將數(shù)據(jù)轉(zhuǎn)化為圖形或圖表等視覺(jué)元素的過(guò)程。通過(guò)將數(shù)據(jù)可視化,我們可以更直觀地看到數(shù)據(jù)之間的關(guān)系、趨勢(shì)和模式,進(jìn)而更好地理解和分析數(shù)據(jù)。數(shù)據(jù)可視化可以使得大量的復(fù)雜數(shù)據(jù)更易于理解和溝通,使得數(shù)據(jù)分析更加高效、準(zhǔn)確。
文獻(xiàn)[2]提出了一個(gè)數(shù)據(jù)可視化推薦系統(tǒng)DeepEye,通過(guò)將一組算子轉(zhuǎn)換數(shù)據(jù)集,以一種強(qiáng)制的方式自動(dòng)可視化給定的數(shù)據(jù)集。文獻(xiàn)[3]提出了一個(gè)可視化推薦引擎SeeDb,在給定的數(shù)據(jù)子集中,SeeDb智能地探索可視化空間,評(píng)估其最有趣的可視化推薦。
一些針對(duì)于實(shí)際場(chǎng)景的數(shù)據(jù)可視化分析系統(tǒng),包括:鄧智豪[4]通過(guò)數(shù)字駕駛艙的方式實(shí)現(xiàn)了自定義可視化分析引擎的系統(tǒng),用戶可以根據(jù)不同的業(yè)務(wù)場(chǎng)景來(lái)定制適合業(yè)務(wù)的可視化面板;丁超凡[5]使用Web 技術(shù)和數(shù)據(jù)可視化技術(shù)設(shè)計(jì)了交通數(shù)據(jù)可視化分析系統(tǒng),通過(guò)多角度分析,呈現(xiàn)交通特性和演變規(guī)律。
VizQL 是由斯坦福大學(xué)的Polaris[6]系統(tǒng)演化而來(lái),它是數(shù)據(jù)可視化查詢語(yǔ)言,它允許用戶通過(guò)拖放和點(diǎn)擊的方式直接操作可視化元素,從而輕松地探索和分析數(shù)據(jù)。VizQL將用戶的可視化請(qǐng)求轉(zhuǎn)換為SQL 查詢,然后將查詢結(jié)果渲染為交互式可視化。通過(guò)VizQL,用戶可以直接在可視化過(guò)程中進(jìn)行數(shù)據(jù)操作,例如對(duì)圖表中的數(shù)據(jù)點(diǎn)進(jìn)行篩選、排序、聚合等操作,而無(wú)需手動(dòng)編寫代碼或執(zhí)行SQL 查詢。這種交互式的數(shù)據(jù)探索方式使得數(shù)據(jù)分析變得更加直觀和靈活,降低了使用者的技術(shù)門檻,并幫助用戶更快速地發(fā)現(xiàn)數(shù)據(jù)中的關(guān)鍵信息。VizQL的主要優(yōu)勢(shì)之一是其高度的可擴(kuò)展性。它支持多種數(shù)據(jù)源,包括關(guān)系型數(shù)據(jù)庫(kù)、非關(guān)系型數(shù)據(jù)庫(kù)、文本文件、Web 數(shù)據(jù)等,并且可以將多個(gè)數(shù)據(jù)源組合在一起,以便更好地分析和理解數(shù)據(jù)。此外,VizQL還支持自定義計(jì)算字段、多維度分析、動(dòng)態(tài)參數(shù)控制等高級(jí)功能,以滿足各種數(shù)據(jù)分析需求。
2.2.1 表代數(shù)
首先需要定義一個(gè)正式的機(jī)制來(lái)指定表配置,為此定義了一個(gè)代數(shù)。一個(gè)完整的表配置由這個(gè)表中的三個(gè)單獨(dú)的表達(dá)式組成。其中兩個(gè)表達(dá)式定義了表的x軸和y軸的配置,將表劃分為行和列。第三個(gè)表達(dá)式定義了表格的z 軸,它將顯示劃分為多個(gè)層次。
這個(gè)表代數(shù)中的操作數(shù)是數(shù)據(jù)庫(kù)的維度和度量字段的名稱。我們將用X、Y和Z來(lái)表示維度場(chǎng)(如數(shù)據(jù)庫(kù)表中的企業(yè)名稱、企業(yè)地址等),用P、Q和R來(lái)表示度量場(chǎng)(如數(shù)據(jù)庫(kù)表中的企業(yè)年收入、月收入等)。我們以下述方式為每個(gè)字段分配有序集:對(duì)維度字段,我們分配字段的維度域的成員;對(duì)度量字段,我們分配包含字段名的單個(gè)元素集。
將集合分配給符號(hào)反映了兩種類型字段在表結(jié)構(gòu)中的編碼方式的差異。維度字段將表劃分為行和列,而度量字段將在空間上編碼為窗格中的軸。在代數(shù)中,一個(gè)有效的表達(dá)式是一個(gè)由一個(gè)或多個(gè)符號(hào)組成的有序序列,在每對(duì)相鄰的符號(hào)之間有運(yùn)算符,并用括號(hào)來(lái)改變運(yùn)算符的優(yōu)先級(jí)。代數(shù)中的運(yùn)算符是交集(×)、閾值(/)和關(guān)聯(lián)(+),按優(yōu)先順序列出。每個(gè)運(yùn)算符的精確語(yǔ)義是根據(jù)其對(duì)操作數(shù)集的影響來(lái)定義的。
其中關(guān)聯(lián)的運(yùn)算為
交集的運(yùn)算為
閾值運(yùn)算為
其中:R表示要分析的數(shù)據(jù)集;r被定義為一條記錄;X(r)表示記錄r的字段X的值。
對(duì)每個(gè)運(yùn)算符使用上述集合語(yǔ)義,代數(shù)中的每個(gè)表達(dá)式可以簡(jiǎn)化為單個(gè)集合,集合中的每個(gè)條目是零個(gè)或多個(gè)維度值與零個(gè)或多個(gè)度量字段名的有序連接。我們稱這個(gè)表達(dá)式的集求值為規(guī)范化集形式。表達(dá)式的規(guī)范化集合形式?jīng)Q定表的一個(gè)軸:表軸被劃分為列(或行或?qū)樱?,因此?guī)范化集合中的集合條目和列之間有一一對(duì)應(yīng)關(guān)系。
2.2.2 生成數(shù)據(jù)庫(kù)查詢
通過(guò)上述生成可視化規(guī)范查詢對(duì)應(yīng)于生成數(shù)據(jù)庫(kù)查詢,該查詢選擇用于分析的數(shù)據(jù)子集,然后篩選、排序?qū)⒔Y(jié)果分組到窗格中,最后將數(shù)據(jù)傳遞給圖形編碼。
首先我們先選擇數(shù)據(jù)源,對(duì)于維度字段X,用戶可以將字段的域的子集指定為有效。如果filter(x)是用戶選擇的子集,那么表示x的過(guò)濾器的關(guān)系是Xinfilter(X)。
對(duì)于度量字段P,用戶可以將字段的域的子集定義為有效。如果min(P)和max(P)是這個(gè)子集的用戶定義范圍,那么表示P的過(guò)濾器的關(guān)系是(P≥min(P)&P≤max(P) )。
所以我們可以將上述關(guān)系表示為第一階段的SQL語(yǔ)句:SELECT*WHERE{filters} 。
其次將檢索到的記錄劃分為對(duì)應(yīng)于表中每個(gè)窗格。正如前文所討論的,表軸表達(dá)式的規(guī)范化集合形式?jīng)Q定了表的配置。表被劃分為與這些集合中的條目相對(duì)應(yīng)的行、列和層。假設(shè)Row(i)是表示第i行選擇標(biāo)準(zhǔn)的代表,Col(j)是表示第j列選擇標(biāo)準(zhǔn)的代表,Layer(k)是表示第k層選擇標(biāo)準(zhǔn)的代表。如果表的y軸是由規(guī)范化集定義的:{x1y1P,x1y2P,x2y1P,x2y2P}。
那么可以通過(guò)一下查詢檢索到要分區(qū)到第i行、第j列、第k層交匯處的窗格中的記錄:
最后一步就是轉(zhuǎn)換每個(gè)窗格內(nèi)的記錄。如果可視化規(guī)范包括聚合,則必須為數(shù)據(jù)庫(kù)中的每個(gè)度量值分配聚合運(yùn)算符。如果用戶沒(méi)有指定運(yùn)算符,那么我們默認(rèn)地為度量值設(shè)定聚合運(yùn)算符為SUM。度量值的運(yùn)算符由兩個(gè)組成,定義為
所以最終形式的SQL語(yǔ)句為
本文基于VizQL 開發(fā)了汽車工業(yè)數(shù)據(jù)可視化系統(tǒng),并對(duì)該系統(tǒng)的應(yīng)用進(jìn)行情況說(shuō)明。
我們根據(jù)指定的數(shù)據(jù)源,選擇不同的場(chǎng)景需求,可以指定以下可視化分析界面,不同類型界面見(jiàn)圖1、圖2、和圖3。
圖1 服務(wù)站分布可視化分析界面
圖2 維修售后數(shù)據(jù)可視化分析界面
圖3 實(shí)體關(guān)系可視化分析界面
本文提出了一種基于VizQL 的汽車行業(yè)數(shù)據(jù)可視化系統(tǒng),通過(guò)利用VizQL 語(yǔ)言實(shí)現(xiàn)對(duì)汽車行業(yè)數(shù)據(jù)可視化的轉(zhuǎn)換,使用戶可以獲得更豐富的可視化界面和分析界面。在未來(lái)的工作中,交互式響應(yīng)率和交互歷史是一個(gè)值得關(guān)注的問(wèn)題。