

















摘要:值勤是各類小區(qū)、校園等大型場所安保任務(wù)中最重要的組成部分。對執(zhí)勤數(shù)據(jù)的有效分析對于了解工作動態(tài)、輔助領(lǐng)導(dǎo)決策方面具有重要意義。針對該業(yè)務(wù)數(shù)據(jù)的多源、有序、多維度、非靜態(tài)等特點,本文基于數(shù)據(jù)倉庫技術(shù)提出了一種面向多源、多維度的業(yè)務(wù)數(shù)據(jù)統(tǒng)計分析方法。通過綜合運用漸變維度、配置化物化視圖生成、物化視圖的增量變更以及物化視圖動態(tài)選擇技術(shù),實現(xiàn)統(tǒng)計數(shù)據(jù)的高效查詢。對某單位歷史勤務(wù)數(shù)據(jù)的分析驗證結(jié)果表明,該方法在該類業(yè)務(wù)數(shù)據(jù)統(tǒng)計分析的準確性、高效性、可擴展性等方面均取得了良好效果,在掌握整體工作態(tài)勢、進行業(yè)務(wù)管理決策上提供了良好的技術(shù)支撐。
關(guān)鍵詞:值勤;安保;數(shù)據(jù)倉庫;漸變維度;物化視圖選擇算法
中圖分類號:TP311 文獻標識碼:A
文章編號:1009-3044(2024)32-0048-04 開放科學(xué)(資源服務(wù))標識碼(OSID) :
0 引言
日常值勤是安保任務(wù)中最重要的組成部分。對業(yè)務(wù)類數(shù)據(jù)進行準確、高效分析,在輔助領(lǐng)導(dǎo)層進行管理決策上具有重要意義。該類數(shù)據(jù)存在多源、多維度、有序、非靜態(tài)等特點,其中,多源是指勤務(wù)數(shù)據(jù)來自多個單位多種業(yè)務(wù)系統(tǒng),需要對不同來源的數(shù)據(jù)進行匯聚整合;多維度指勤務(wù)數(shù)據(jù)存在多種不同的關(guān)鍵特征,對不同特征進行動態(tài)組合可定義出多種分析業(yè)務(wù)場景;有序性指同類型業(yè)務(wù)數(shù)據(jù)遵從客觀時間順序,其分析場景與時間高度關(guān)聯(lián);非靜態(tài)性指業(yè)務(wù)數(shù)據(jù)在持續(xù)、實時動態(tài)產(chǎn)生,其對應(yīng)的統(tǒng)計分析結(jié)果將持續(xù)、實時地發(fā)生變化。以上特點要求針對數(shù)據(jù)的分析方法能夠支持動態(tài)可擴展的多種類的分析維度,以適應(yīng)數(shù)據(jù)在時間上的持續(xù)性,以及來源、屬性變化上的靈活性。
本文針對業(yè)務(wù)數(shù)據(jù)的多源、有序、多維度、非靜態(tài)等特點,提出了一種基于數(shù)據(jù)倉庫技術(shù)的多維度統(tǒng)計分析方法。通過引入漸變維度、物化視圖的配置化生成、增量變更及動態(tài)選擇技術(shù),實現(xiàn)了統(tǒng)計數(shù)據(jù)的高效查詢和分析。
1 數(shù)據(jù)倉庫模型設(shè)計
數(shù)據(jù)倉庫的設(shè)計分為事實表設(shè)計和維度表設(shè)計兩部分。在完成事實表、維度表邏輯模型設(shè)計之后,還需要針對不同維度屬性的變化特征使用不同的應(yīng)對策略,調(diào)整實體模型,得到最終的物理模型。本節(jié)通過對安保人員執(zhí)勤和領(lǐng)導(dǎo)查崗數(shù)據(jù)的建模過程進行舉例說明,闡述值勤安保系統(tǒng)數(shù)據(jù)倉庫的模型設(shè)計。
1.1 邏輯模型設(shè)計
售額、數(shù)量等?!熬S度”用于描述事實的背景信息,例如時間、地點、人員等。事實表中每一行對應(yīng)一個度量事件,度量事件的級別稱為事實的粒度,在同一個事實表中,每一行必須具有相同的粒度。各個維度均擁有一系列屬性,且屬性間具有層次級別,如地點維度具有省、市、區(qū)、縣等屬性。維度可以按照不同的層次級別進行分組,每個級別對應(yīng)于不同的粒度[1]。而數(shù)據(jù)倉庫應(yīng)用中的“上鉆”(顯示上一級的概覽數(shù)據(jù))和“下鉆”(顯示下一級的更詳細數(shù)據(jù))就是在這些粒度的基礎(chǔ)上實現(xiàn)的[2]。本文以典型的安保人員執(zhí)勤和領(lǐng)導(dǎo)查崗場景中生成的換班和查崗數(shù)據(jù)作為基本事實,進行分析和論述。
換班和查崗事件維度包括地點(哨位)、類型、人員、時間、結(jié)果等類型,每一類維度又有不同層次的多個維度屬性,見表 1。數(shù)據(jù)倉庫的設(shè)計模型主要有星型模型和雪花模型等。其中,星型模型將同一類維度屬性放在同一張表的各個字段中,雪花模型則將同一維度進一步規(guī)范化,將其拆分為子表,從而消除數(shù)據(jù)冗余[3-4]。雪花模型符合數(shù)據(jù)庫理論中的第三范式,沒有冗余數(shù)據(jù),避免了數(shù)據(jù)的不一致。但是,雪花模型在數(shù)據(jù)倉庫應(yīng)用中具有查詢語句轉(zhuǎn)換困難、查詢性能不佳等問題,因此該模型更適用于對數(shù)據(jù)一致性要求較高的場景。根據(jù)日常執(zhí)勤數(shù)據(jù)的特點,本文采用星型模型,其數(shù)據(jù)倉庫邏輯設(shè)計如圖1和圖2所示。
1.2 對漸變維度的處理
在數(shù)據(jù)倉庫中,維度可能會隨時間變化。按照維度更新頻率不同,數(shù)據(jù)倉庫的維度可以分為三類:常規(guī)維度、漸變維度(Slowly Changing Dimensions,簡記為SCD) 和速變維度(Rapidly Changing Dimensions,簡記為RCD) [3,5-6]。常規(guī)維度的成員身份和數(shù)據(jù)屬性不可變,實際發(fā)生變化時必須重建整個數(shù)據(jù)倉庫。漸變維度又稱為慢速變化維、緩慢變化維,其成員身份和數(shù)據(jù)屬性可能會更改,但更改不頻繁或僅在有限范圍內(nèi)進行更改[7]。漸變維度的處理方式主要有類型1、類型2、類型3等[2],類型1(重寫)是指直接更新維度表中的屬性值,不保留歷史記錄;類型2(增加新行)是在維度表中新增一行,保留歷史記錄;類型3(增加新屬性)是在維度表中增加新字段,記錄當(dāng)前和歷史屬性值。速變維度的成員身份或數(shù)據(jù)屬性是頻繁變化的,可以通過將維度屬性拆分為若干子維度,使每個子維度變化穩(wěn)定,或?qū)㈩l繁變化屬性列入事實表中。
本文中,日期、時間、地點、類型等維度在增加之后不會發(fā)生變化,是常規(guī)維度。而人員的職位、級別和單位等屬性可能會因為授銜及工作調(diào)動等原因發(fā)生變化,由于變化發(fā)生并不頻繁,被歸類為漸變維度。如果使用類型1方式進行重寫,人員的歷史屬性會被丟失,數(shù)據(jù)分析結(jié)果不能如實反映對應(yīng)事件發(fā)生時人員的真實情況;而如果使用類型3增加屬性的方式處理,需要添加大量的屬性字段來追蹤歷史變更,使維度表結(jié)構(gòu)和分析邏輯變得復(fù)雜?;谏鲜龇治?,本文使用類型2方式設(shè)計人員維度表處理人員維度變更,見表 2。
如表 3所示,張三的職位在2023年11月10日由文員變更為主管。維度表中保留變更日期之前的原始記錄,設(shè)置記錄中的失效日期,并新增一條記錄保存人員的更新屬性值。在相關(guān)的事實表中,2023年11 月10日及更早前的記錄關(guān)聯(lián)歷史的維度鍵,其后的記錄關(guān)聯(lián)新增的維度鍵。與類型1和類型3相比,該處理方式能夠保留事件發(fā)生時的維度屬性,并能使事實表清晰地關(guān)聯(lián)正確維度屬性,保持分析結(jié)果的準確。
1.3 小結(jié)
通過數(shù)據(jù)倉庫邏輯模型設(shè)計和對漸變的人員維度特殊化處理之后,可以定義出實體模型,并在對應(yīng)數(shù)據(jù)庫中得到最終的數(shù)據(jù)倉庫物理模型。該物理模型可為相關(guān)業(yè)務(wù)的數(shù)據(jù)挖掘和數(shù)據(jù)分析提供基礎(chǔ)。
2 物化視圖設(shè)計和選擇算法
本節(jié)將介紹物化視圖技術(shù)及數(shù)據(jù)分析查詢性能的優(yōu)化方法。通過引入物化視圖定義模型來提升物化視圖的定義靈活性,并通過設(shè)計選擇算法來找出最佳的物化視圖,可以利用物化視圖技術(shù)來獲得較好的查詢性能。使用本節(jié)介紹的方法,可以根據(jù)數(shù)據(jù)來源和查詢場景的不同靈活地配置物化視圖,并由預(yù)先編寫的選擇算法充分利用這些物化視圖加速查詢,兼顧了配置靈活性和查詢效率。
2.1 事實表的分類和物化視圖的應(yīng)用
事實表可以分為四種基本類型:事務(wù)、周期快照、累計快照和聚合事實表[2]。事務(wù)事實表是最基本的類型,每條數(shù)據(jù)表示發(fā)生在某個時間點上的一個事件,前文中提到的換哨和查勤事件事實表就屬于事務(wù)事實表;周期快照事實表用于觀察某個業(yè)務(wù)在某個固定可預(yù)測的時間間隔內(nèi)的累計性能,比如月度匯總數(shù)據(jù)等,通常在周期性的匯總分析業(yè)務(wù)中使用;累計快照事實表不太常見,用于匯總一系列相關(guān)步驟的總結(jié)果,適用于工作流或者流水線的數(shù)據(jù)分析;聚合事實表用來優(yōu)化提升查詢性能,不提供業(yè)務(wù)功能,其通過預(yù)先定義的聚合事實表將數(shù)據(jù)按照各個維度的不同粒度進行聚合保存,可以節(jié)約查詢時的計算量。
事務(wù)、周期快照和累計快照事實表通常以在數(shù)據(jù)庫中定義實體業(yè)務(wù)模型的方式來實現(xiàn)。數(shù)據(jù)保存在數(shù)據(jù)庫中,使用查詢語句直接從中查詢出分析結(jié)果。聚合事實表通常通過物化視圖(Materialized View)技術(shù)實現(xiàn),由一個或幾個基本表(或視圖)導(dǎo)出,自動維護數(shù)據(jù),并將實際內(nèi)容直接儲存在數(shù)據(jù)庫里。利用聚合事實表,程序可以把從事務(wù)、周期快照和累計快照事實表中的查詢轉(zhuǎn)換為從聚合事實表中的查詢,提高查詢性能?;诖耍疚脑O(shè)計了一種物化視圖定義和更新方案,并針對查詢代價這一指標設(shè)計了一種查詢選擇算法。
2.2 配置物化視圖模型
為了便于使用,本文基于配置化思想,設(shè)計了一種物化視圖定義模型。簡述如下:
1) 事務(wù)信息business_info
業(yè)務(wù)屬性配置用于指定業(yè)務(wù)類型記錄表屬性。包括:業(yè)務(wù)數(shù)據(jù)表名稱、主鍵和統(tǒng)計進度表。具體事務(wù)信息表屬性如表 4所示。
2) 維度定義dimension_info
維度信息配置記錄維度信息和粒度信息以及默認粒度轉(zhuǎn)換規(guī)則。具體維度定義表的屬性如表 5 所示。
3) 物化視圖配置cube_table_config
通過統(tǒng)計表配置自定義維度粒度組合的統(tǒng)計數(shù)據(jù)。通過該配置實現(xiàn)自動創(chuàng)建物化視圖、統(tǒng)計數(shù)據(jù)定時維護、統(tǒng)計數(shù)據(jù)自動分析等功能。具體物化視圖配置表如表 6所示。
本文中的方法可以動態(tài)的修改這些定義。在新增事務(wù)事實或者發(fā)現(xiàn)統(tǒng)計查詢性能不佳時,可以便捷地添加物化視圖,靈活地適應(yīng)業(yè)務(wù)變化。
2.3 物化視圖的更新策略
數(shù)據(jù)倉庫的數(shù)據(jù)來自業(yè)務(wù)數(shù)據(jù)庫。在倉庫數(shù)據(jù)首次構(gòu)建之后,從業(yè)務(wù)數(shù)據(jù)庫更新數(shù)據(jù)的過程稱為數(shù)據(jù)追加。數(shù)據(jù)追加的內(nèi)容僅限于上次向數(shù)據(jù)倉庫輸入后在業(yè)務(wù)數(shù)據(jù)庫中變化了的數(shù)據(jù),因此需要一種捕獲業(yè)務(wù)數(shù)據(jù)庫數(shù)據(jù)變化的方法。常用的捕獲方法有時間戳方法、DELTA方法、前后映像文件的方法、日志文件及基于觸發(fā)器的抽取方法等[8-10]。
2.4 物化視圖選擇算法
為hu了 G對upt物a 化視圖問題進行定量的研究求解,Hi? 、Jian Yang 和Harinarayan 分別給出了AND-OR View Graph模型、MVPP模型和多維數(shù)據(jù)格模型,它們是至今最為流行的三種物化視圖模型【6,11】。這三種模型試圖針對通用數(shù)據(jù)倉庫定義數(shù)據(jù)查詢代價和物化視圖維護代價這兩個指標。針對物化視圖模型人們提出了各種物化視圖選擇算法,大體可以分為貪心算法和遺傳算法兩類。
本文針對該安保業(yè)務(wù)數(shù)據(jù)的特點,提出了一種基于效用函數(shù)的貪心選擇算法,流程如圖3所示。
圖3 給出了物化視圖選擇算法流程,分為四個步驟。
步驟1:粒度元數(shù)據(jù)維護。服務(wù)啟動后,遍歷所有物化視圖,記錄各維度粒度的數(shù)據(jù)量。
步驟2:物化視圖過濾。根據(jù)用戶查詢的維度和粒度,過濾出符合條件的物化視圖。
步驟3:效用函數(shù)計算。計算每個物化視圖對用戶查詢的效用值。
步驟4:物化視圖選擇。選擇效用值最高的物化視圖,執(zhí)行優(yōu)化查詢。
本文把效用函數(shù)U定義為:
其中:k 為物化視圖中對應(yīng)的維度,lk 為用戶請求的維度等級在維度表中的數(shù)據(jù)量,ck 為物化視圖中該維度等級在維度表中的數(shù)據(jù)量。物化視圖中各個維度的等級與數(shù)據(jù)量的比值稱為這個物化視圖對該請求的效用函數(shù)。
舉例說明:假設(shè)兩個維度類型“維度1”和“維度2”,其不同維度等級的數(shù)據(jù)量,如表 7所示。
用戶請求的查詢在維度1上粒度等級為2,在維度2上的等級為1,如表 8所示。
物化視圖1在維度1上粒度等級為2,在維度2上的等級為2,如表 9所示。
計算得到物化視圖1效用函數(shù):
U1 = 36/36 × 4/20 = 0.2
物化視圖2在維度1上粒度等級為3,在維度2上的等級為1:
計算得到物化視圖2效用函數(shù):
U1 = 36/1095 ×44/≈ 0.032
物化視圖1的效用函數(shù)更大,算法選擇物化視圖1進行優(yōu)化查詢。
3 方法驗證實驗
為了驗證本文方法的結(jié)果準確性,分析場景可擴展性以及數(shù)據(jù)查詢性能,進行了如下實驗。
實驗環(huán)境:
CPU:4 × Intel(R) Xeon(R) E-2124 CPU @ 3.30GHz
內(nèi)存:16GB
硬盤容量:1TB
操作系統(tǒng):Ubuntu 20.04.2 LTS
數(shù)據(jù)庫:MySQL 5.6.31
數(shù)據(jù)源:某單位2018-2021年共302萬條查崗記錄
使用前文描述的物化視圖模型配置方法,配置物化視圖粒度等級表如表 11所示。
查詢場景設(shè)置如表 12所示。
場景1,按查崗人員所在片區(qū)和查崗結(jié)果類型對每年各小區(qū)的查崗數(shù)量進行查詢;場景2,按查崗人員所在小區(qū)和查崗結(jié)果子類型對每年各片區(qū)的查崗數(shù)量進行查詢;場景3,按查崗人員所在小區(qū)和查勤結(jié)果子類型對每年各小區(qū)的查崗數(shù)量進行查詢。
針對表 12的3個查詢場景,采用表9的3種物化視圖以及事務(wù)事實表分別對各場景的查崗記錄數(shù)量進行查詢,所得的數(shù)據(jù)分析結(jié)果如圖4所示。
如圖4所示,在三個查詢場景中,使用效用函數(shù)選擇的視圖均能獲得最短耗時。實驗結(jié)果表明,采用物化視圖1的查詢性能最優(yōu),驗證了效用函數(shù)計算和選擇算法的有效性。
4 總結(jié)
本文針對業(yè)務(wù)數(shù)據(jù)的多源、多維度、有序、非靜態(tài)等特點,提出了一種基于數(shù)據(jù)倉庫的多維度統(tǒng)計分析方法。通過引入漸變維度、物化視圖的配置化生成、增量變更和動態(tài)選擇技術(shù),實現(xiàn)了對勤務(wù)數(shù)據(jù)的高效查詢和分析。實驗結(jié)果表明,該方法在準確性、高效性和可擴展性方面均取得了良好效果,為輔助領(lǐng)導(dǎo)決策和業(yè)務(wù)管理提供了有力的技術(shù)支持。
【通聯(lián)編輯:唐一東】
基金項目:教育部產(chǎn)學(xué)合作協(xié)同育人項目(編號:231002345263245) ;廣東省高職教育教學(xué)改革研究與實踐項目(GDJG2021092、GDJG2021094)