[曹德強]
大數(shù)據(jù)技術的基礎是數(shù)據(jù),移動網絡作為目前最大的數(shù)據(jù)產生源之一,其每天會產生海量的數(shù)據(jù)。數(shù)據(jù)中蘊含著網絡的健康情況,用戶的使用感知等各種各類的信息,如果不加整理直接進行存儲,則會對后續(xù)的數(shù)據(jù)分析帶來極大的不便。因此需要針對不同的數(shù)據(jù)類型,建立符合其自身數(shù)據(jù)特點和應用場景的數(shù)據(jù)庫模型,以提升數(shù)據(jù)的存取效率,使數(shù)據(jù)更易分析使用,為后續(xù)的數(shù)據(jù)挖掘打下一個良好的基礎。本文主要針對參數(shù)類的數(shù)據(jù),結合網絡的拓撲結構,提出了一種符合范式、易維護、易擴展的數(shù)據(jù)存儲模型,供各位讀者在實際的應用中進行參考。
現(xiàn)階段,移動網絡的經歷了由2G 到5G 的技術演進,網絡也從模擬時代進入了數(shù)字時代,網絡中硬件結構的組成也不斷發(fā)生著變化。但移動網絡整體的拓撲結構依然使用著樹狀組網的拓撲方式,因此如果在數(shù)據(jù)存儲方面也采用與網絡拓撲結構相同的架構進行數(shù)據(jù)存儲,可以極大的提升整體數(shù)據(jù)的可讀性,增強用戶體驗。
同時,在數(shù)據(jù)存儲方面采用樹狀的存儲方式,可以極大的減少數(shù)據(jù)庫表的數(shù)量。但也存在一定的問題,比如在樹狀分支較深的情況下,數(shù)據(jù)間的關聯(lián)就顯的比較繁瑣,會導致數(shù)據(jù)查詢效率較低。因此,需要一種數(shù)據(jù)存儲方法,能夠優(yōu)化整個樹形結構表的查詢、更新和刪除方式,提升整體的數(shù)據(jù)查詢和更新效率。
結合移動網絡的拓撲結構,設計出一種樹狀的數(shù)據(jù)庫模型,能夠方便地進行數(shù)據(jù)查詢,實時響應用戶的查詢動作,且便于數(shù)據(jù)維護和更新。
(1)數(shù)據(jù)庫三范式原則
第一范式:原子性原則,字段不可分,每個字段是原子級別的
第二范式:完全依賴,非主鍵字段完全依賴主鍵
第三范式:消除傳遞依賴,非主鍵字段不能相互依賴
(2)可擴展性原則:移動網絡的業(yè)務是不斷擴展的,其中的網元也會不斷增加,因此模型設計上要遵循可擴展性原則,便于后期的業(yè)務擴展。
(3)易維護:當網絡節(jié)點出現(xiàn)增刪等情況時,能夠方便快捷的維護整體數(shù)據(jù)庫的架構。
移動網絡的拓撲結構從單個基站的角度來講是樹狀的,以LTE網絡為例,其單個基站的拓撲結構從硬件上可分為:BBU-板卡-RRU-天線四層結構,從邏輯結構上又可大體分為:基站-小區(qū)-鄰區(qū)三層結構,整體結構相對清晰。
但從現(xiàn)網北向數(shù)據(jù)(按集團規(guī)范,廠家需將網絡參數(shù)上傳至北向服務器)的組成上來看,其板卡、RRU、天線這些硬件并未在數(shù)據(jù)上顯示明顯的樹狀結構,而是并列呈現(xiàn)的,其整體的數(shù)據(jù)組成結構如圖1 北向參數(shù)架構圖所示。
圖1 北向參數(shù)架構圖
由圖1 可知,在常規(guī)的數(shù)據(jù)存儲中,如果需要得到一個BBU 下,主要的硬件和邏輯網元信息,則需要對板卡、RRU、天線、基站、小區(qū)等數(shù)據(jù)表分別進行關聯(lián),才能得出結果,其查詢效率相對較低,數(shù)據(jù)庫語句寫法也相對較為復雜。
那么有沒有更簡單的存儲方式呢?圖1 中,我們把各表單獨進行存儲,表與表之間雖然可以通過外鍵進行關聯(lián)和約束,但在統(tǒng)計上就顯的較為復雜。
如果我們把各表內通用的字段提取出來,按照樹狀結構放在一張表內,再將各表的私有字段存儲在私有表中,那么我們在統(tǒng)計上就會顯得相對簡單一些,只需要在一張表內進行即可。如果需要各參數(shù)表的具體參數(shù)信息,則可以通過與相對應的參數(shù)表進行關聯(lián)獲取,其數(shù)據(jù)庫模型可以抽象為圖2 樹表結構設計圖。
圖2 樹表結構設計
在該模型中,將各參數(shù)表的通用字段存儲在一張通用表內,添加網元類型字段用于區(qū)分參數(shù)類型;添加父節(jié)點ID 字段,用于進行表內的數(shù)據(jù)關聯(lián)和統(tǒng)計。該模型將原本樹狀的網絡架構進行了扁平化,將網絡內的主要網元信息存儲在了一張通用表內,與原有的模型相比,有如下幾個特點。
(1)簡化了數(shù)據(jù)統(tǒng)計
將原本需要在多個表間進行的關聯(lián)統(tǒng)計,簡化到了一張主表內。在主表內通過遞歸查詢,即可實現(xiàn)原本需要多個表關聯(lián)的統(tǒng)計,極大地簡化了統(tǒng)計語句,同時提升了查詢效率。
(2)結構靈活,數(shù)據(jù)易擴展
隨著網絡的不斷升級,數(shù)據(jù)版本不斷地演進,網絡存在多版本共存的情況,但實際網絡規(guī)模擴長并沒有那么快速。
傳統(tǒng)的數(shù)據(jù)架構設計中,每新增一個版本,就需要新增一張數(shù)據(jù)表,在做數(shù)據(jù)統(tǒng)計時,就需要多關聯(lián)一張表。采用樹表結構設計后,如果新增了一個版本的數(shù)據(jù),只需要在主表內進行相應的數(shù)據(jù)更新即可,其新版本可以作為一個新的參數(shù)表,與主表進行關聯(lián),其原有的統(tǒng)計方式不變。數(shù)據(jù)擴展方便,可以根據(jù)需求隨時進行擴展,腳本改動小,開發(fā)迅速。
(3)維護方便
當某個參數(shù)版本不需要時,可以對該版本的參數(shù)表進行整體刪除,而不影響統(tǒng)計結果,極大地降低了維護成本。
本部分以LTE網絡為例,對各主題域所包含的內容和關系進行描述,整理各主題內資源的邏輯關系
通用參數(shù)表主要將LTE網絡內的通用參數(shù)進行存儲,并添加相應的網元類型和父節(jié)點信息,便于進行數(shù)據(jù)統(tǒng)計。如表1 所示,通用參數(shù)表。
表1 通用參數(shù)表
包含了RRU、BBU、板卡、天線、邏輯基站、邏輯小區(qū)等網絡參數(shù)信息,與通用參數(shù)表進行關聯(lián),用于查詢某個網元的具體網絡參數(shù)。參數(shù)信息表如表2 所示。
表2 參數(shù)信息表
通信網絡數(shù)據(jù)架構多以樹狀結構為主要的拓撲形式,傳統(tǒng)的數(shù)據(jù)存儲方式雖然可以滿足數(shù)據(jù)存儲的需要,但在數(shù)據(jù)查詢效率和擴展性方面存在較大的不足。當出現(xiàn)數(shù)據(jù)版本升級時,會導致較大的代碼改動,數(shù)據(jù)維護升級維護成本較大,在數(shù)據(jù)統(tǒng)計方面需要關聯(lián)大量的表格才能出結果。
采用主表與實體參數(shù)表相結合的模型進行數(shù)據(jù)設計,可以極大的減少數(shù)據(jù)和代碼的維護成本,而且極易實現(xiàn)數(shù)據(jù)的橫向擴展,對后續(xù)的網絡升級極為有利。
其不足之處在于:
(1)通用表的數(shù)據(jù)量可能相對較大。在實際的模型設計中,需要根據(jù)網絡的規(guī)模進行通用表的拆分。不需要將所有的數(shù)據(jù)存在一張通用表內,可以適度拆分,減少通用表的數(shù)據(jù)存儲量。
(2)對于樹狀分支較深的表,采用遞歸查詢,效率會有所降低。遞歸查詢在多層的深度分支表內,其查詢效率會有所下降,且對資源的占用率比較大。因此,在遇到多層分支表的情況下,可以提前將樹狀關聯(lián)關系計算出來,再進行數(shù)據(jù)統(tǒng)計。
在實際的網絡數(shù)據(jù)庫設計中,應結合當?shù)鼐W絡規(guī)模和數(shù)據(jù)組織結構以及實際的業(yè)務場景,選擇合適數(shù)據(jù)庫模型進行設計,以提升整體的系統(tǒng)資源利用率和網絡響應速度。