高承山,張 勇,李福慶(中訊郵電咨詢?cè)O(shè)計(jì)院有限公司,河南鄭州450007)
目前,中國(guó)聯(lián)通核心網(wǎng)網(wǎng)管數(shù)據(jù)主要包括2G、3G和4G網(wǎng)管指標(biāo),其中2G和3G網(wǎng)管指標(biāo)已經(jīng)納入中國(guó)聯(lián)通綜合網(wǎng)管,而4G網(wǎng)管指標(biāo)仍然分散于各廠家的專業(yè)網(wǎng)管中。由于核心網(wǎng)網(wǎng)元眾多、網(wǎng)管數(shù)據(jù)來源復(fù)雜,業(yè)內(nèi)缺乏完善的網(wǎng)管數(shù)據(jù)收集和管理的手段,因此對(duì)工程建設(shè)過程中前期規(guī)劃建設(shè)階段的指導(dǎo)作用有限。為了解決這些問題,筆者及同事開發(fā)了核心網(wǎng)網(wǎng)絡(luò)建設(shè)運(yùn)行支撐平臺(tái),該平臺(tái)通過各種自動(dòng)化工具對(duì)核心網(wǎng)網(wǎng)管數(shù)據(jù)進(jìn)行自動(dòng)整理分析匯總,為核心網(wǎng)網(wǎng)絡(luò)建設(shè)提供技術(shù)支撐。本文主要介紹該平臺(tái)所采用的一些技術(shù)。
核心網(wǎng)網(wǎng)管數(shù)據(jù)的分析包括兩部分。
a)后臺(tái)數(shù)據(jù)處理:包括數(shù)據(jù)清洗入庫(kù)和多維分析。核心網(wǎng)網(wǎng)管指標(biāo)體系按照設(shè)備分為MSC Server、MGW、SGSN/MME、GGSN/GW、HLR/HSS 等5 種類型。由于設(shè)備存在入網(wǎng)、割接、調(diào)整、故障等各種非正常狀態(tài),廠家網(wǎng)管和綜合網(wǎng)管之間北向接口對(duì)接問題等都會(huì)影響網(wǎng)管數(shù)據(jù)質(zhì)量,因此網(wǎng)管數(shù)據(jù)入庫(kù)后需要進(jìn)行清洗。清洗后的數(shù)據(jù),可以根據(jù)需求進(jìn)行各種維度分析,如按照時(shí)間維度、地域維度等提取忙時(shí)數(shù)據(jù)。
b)前端數(shù)據(jù)展示:將后端處理之后的數(shù)據(jù),通過可視化的Web 界面展示給用戶,為規(guī)劃、建設(shè)及業(yè)務(wù)發(fā)展提供決策支持。
根據(jù)上述需求,核心網(wǎng)網(wǎng)絡(luò)建設(shè)運(yùn)行支撐平臺(tái)的系統(tǒng)架構(gòu)如圖1所示。
圖1 核心網(wǎng)管數(shù)據(jù)分析管理平臺(tái)架構(gòu)
系統(tǒng)架構(gòu)包括數(shù)據(jù)源、數(shù)據(jù)層、應(yīng)用層、門戶等幾個(gè)模塊,其中數(shù)據(jù)層主要負(fù)責(zé)后端的數(shù)據(jù)處理,源數(shù)據(jù)經(jīng)過采集、清洗、入庫(kù)、多維分析后,以數(shù)據(jù)服務(wù)的形式提供給前端應(yīng)用層展示。
本文著重介紹數(shù)據(jù)層所采用的數(shù)據(jù)清洗及分析技術(shù)。
綜合網(wǎng)管報(bào)表包含MSC Server、MGW、SGSN/MME、GGSN/GW、HLR/HSS 5 種設(shè)備類型的2G/3G 報(bào)表,每種設(shè)備類型包含配置報(bào)表和性能報(bào)表,共11 種類型的報(bào)表(其中MSC Server 的性能指標(biāo)分布在2 個(gè)性能報(bào)表中),每種類型報(bào)表為1個(gè)CSV文件。其中性能報(bào)表為24 h報(bào)表:每套設(shè)備每個(gè)小時(shí)提取一次記錄;配置報(bào)表為日?qǐng)?bào)表:每套設(shè)備每天提取一次記錄。每天的網(wǎng)管數(shù)據(jù)量約為11 個(gè)CSV 文件6 萬行記錄,共200個(gè)性能指標(biāo)及70個(gè)配置指標(biāo)。
廠家網(wǎng)管報(bào)表按照廠家和設(shè)備類型分省提取4G指標(biāo),目前共5個(gè)廠家、3種設(shè)備類型,分省提取約100個(gè)左右的CSV文件(見表1)。
由于需要入庫(kù)的文件、記錄數(shù)較多,使用數(shù)據(jù)庫(kù)本身提供的功能不能滿足自動(dòng)入庫(kù)的需求,本文使用開源ETL工具Kettle對(duì)網(wǎng)管報(bào)表進(jìn)行自動(dòng)入庫(kù)及清洗。
Kettle 是一款開源ETL 工具,其包含2 種腳本文件:轉(zhuǎn)換和作業(yè)。其中轉(zhuǎn)換是ETL 解決方案中最主要的部分,它負(fù)責(zé)對(duì)數(shù)據(jù)進(jìn)行抽取、轉(zhuǎn)換、過濾等操作,轉(zhuǎn)換包括一個(gè)或多個(gè)步驟,如讀取文件、過濾輸出行、數(shù)據(jù)清洗或?qū)?shù)據(jù)加載到數(shù)據(jù)庫(kù);作業(yè)則完成對(duì)整個(gè)工作流的控制,一個(gè)作業(yè)包括一個(gè)或多個(gè)作業(yè)項(xiàng),這些作業(yè)項(xiàng)以某種順序來執(zhí)行。
表1 網(wǎng)管報(bào)表信息
Kettle 工具集共包括4 個(gè)產(chǎn)品:Spoon、Pan、Chef、Kitchen。
Spoon:通過圖形界面(GUI)設(shè)計(jì)ETL轉(zhuǎn)換過程。Pan:通過命令行方式(CMD)批量執(zhí)行由Spoon設(shè)計(jì)的ETL轉(zhuǎn)換(例如使用時(shí)間調(diào)度器)。
Chef:通過圖形界面(GUI)方式創(chuàng)建作業(yè)。
Kitchen:通過命令行方式(CMD)批量執(zhí)行由Chef創(chuàng)建的作業(yè)。
將定期獲取的CSV 文件報(bào)表保存在“擬上傳報(bào)表”文件夾中,針對(duì)每種類型的報(bào)表創(chuàng)建一個(gè)轉(zhuǎn)換,將創(chuàng)建的所有轉(zhuǎn)換加入到作業(yè)中,使用時(shí)間調(diào)度器定期執(zhí)行作業(yè),通過此過程可以完成網(wǎng)管數(shù)據(jù)的自動(dòng)入庫(kù)功能。
下面以MSC Server的性能報(bào)表為例,來說明Kettle轉(zhuǎn)換的創(chuàng)建。
a)將提取到的網(wǎng)管報(bào)表CSV文件保存至“擬上傳報(bào)表”文件夾中。
b)Kettle 轉(zhuǎn)換過程根據(jù)通配符自動(dòng)從“擬上傳報(bào)表”文件夾中提取相應(yīng)的報(bào)表文件。
c)Kettle轉(zhuǎn)換逐行讀取報(bào)表文件中的記錄。
d)Kettle 根據(jù)指定的報(bào)表表頭和數(shù)據(jù)庫(kù)字段對(duì)應(yīng)關(guān)系將記錄保存至數(shù)據(jù)庫(kù)。
針對(duì)所有類型的報(bào)表,需要將各種轉(zhuǎn)換操作加入到作業(yè)中,具體如下(見圖2)。
a)分類型上傳報(bào)表,上傳完成后需要將“擬上傳報(bào)表”文件夾中對(duì)應(yīng)文件移動(dòng)至“已上傳報(bào)表”文件夾。
b)如果上傳錯(cuò)誤,則將詳細(xì)的錯(cuò)誤信息以郵件方式發(fā)送至監(jiān)控郵箱。
c)重復(fù)上述步驟。
由于網(wǎng)絡(luò)、設(shè)備等因素的影響,從綜合網(wǎng)管和廠家網(wǎng)管獲取的報(bào)表數(shù)據(jù)會(huì)存在大量的“臟數(shù)據(jù)”,即數(shù)據(jù)存在缺失、噪聲、重復(fù)等各種問題,如果直接使用會(huì)造成后續(xù)維度分析的結(jié)果出現(xiàn)較大的偏差甚至錯(cuò)誤。因此需要對(duì)入庫(kù)后的源數(shù)據(jù)進(jìn)行數(shù)據(jù)清洗,清洗工作可以采用ETL清洗輔助人工清洗方式。
a)數(shù)據(jù)分析:首先對(duì)報(bào)表各指標(biāo)進(jìn)行分析,通過分析確定數(shù)據(jù)的錯(cuò)誤類型。
b)定義數(shù)據(jù)檢驗(yàn)規(guī)則:根據(jù)數(shù)據(jù)分析得到的結(jié)果定義數(shù)據(jù)檢驗(yàn)規(guī)則,如地(市)名稱為空、地(市)名稱不在標(biāo)準(zhǔn)的地(市)名稱范圍內(nèi)、CPU 利用率大于100%,VLR 登記用戶大于正常值、話務(wù)量大于正常值等均視為需要驗(yàn)出的錯(cuò)誤數(shù)據(jù)。
c)搜索、識(shí)別錯(cuò)誤實(shí)例:根據(jù)數(shù)據(jù)檢驗(yàn)規(guī)則,利用ETL 工具對(duì)原始表進(jìn)行逐行檢查,將檢查出的錯(cuò)誤數(shù)據(jù)字段的相關(guān)信息保存在數(shù)據(jù)庫(kù)中的錯(cuò)誤表中(見表2)。
d)對(duì)錯(cuò)誤數(shù)據(jù)進(jìn)行修正:根據(jù)數(shù)據(jù)庫(kù)中錯(cuò)誤信息表,利用數(shù)據(jù)庫(kù)存儲(chǔ)過程對(duì)錯(cuò)誤數(shù)據(jù)進(jìn)行修正。如地(市)名稱為空,則需要根據(jù)設(shè)備ID 生成地(市)名稱;如果地(市)名稱不是標(biāo)準(zhǔn)的地(市)名稱,則需要使用標(biāo)準(zhǔn)的地(市)名稱進(jìn)行替換。CPU 利用率、VLR 登記用戶數(shù)、話務(wù)量等數(shù)值類型的錯(cuò)誤需要用最近時(shí)間的正常值進(jìn)行替換。
由于ETL清洗是針對(duì)全部同類型的設(shè)備設(shè)置統(tǒng)一規(guī)則,清洗后部分設(shè)備仍然存在錯(cuò)誤數(shù)據(jù),此時(shí)需要配合人工進(jìn)行清洗(見圖3)。
a)首先需要將ETL 清洗后的記錄按照設(shè)備維度以曲線顯示在Web頁面中。
b)各省維護(hù)人員按照設(shè)備容量及經(jīng)驗(yàn)判斷是否有噪點(diǎn)。
圖2 Kettle作業(yè)流程示例
表2 數(shù)據(jù)庫(kù)錯(cuò)誤信息表
圖3 通過Web圖形進(jìn)行人工校驗(yàn)數(shù)據(jù)
c)對(duì)噪點(diǎn)數(shù)據(jù)進(jìn)行人工修改。
為了向規(guī)劃、建設(shè)及運(yùn)行維護(hù)提供決策支持,需要對(duì)清洗后的網(wǎng)管數(shù)據(jù)進(jìn)行多維度的分析,如端局VLR登記用戶數(shù)、話務(wù)量等指標(biāo)的各時(shí)間維度(日、月、年)的忙時(shí)分析和各地域維度(地(市)、省分、全國(guó))的忙時(shí)數(shù)據(jù)分析。在分析過程中使用了開源的多維分析工具M(jìn)ondrian 及多維查詢語言Mdx,以下將介紹分析工具的使用及相關(guān)的多維分析流程。
a)多維數(shù)據(jù)集:多維數(shù)據(jù)集是聯(lián)機(jī)分析處理(OLAP)中的主要對(duì)象,是一項(xiàng)可對(duì)數(shù)據(jù)倉(cāng)庫(kù)中的數(shù)據(jù)進(jìn)行快速訪問的技術(shù)。多維數(shù)據(jù)集是一個(gè)數(shù)據(jù)集合,通常根據(jù)數(shù)據(jù)倉(cāng)庫(kù)的子集構(gòu)造,并組織和匯總成一個(gè)由一組維度和度量值定義的多維結(jié)構(gòu)。
b)維度:多維數(shù)據(jù)集的結(jié)構(gòu)性特性。它們被用于在事實(shí)數(shù)據(jù)表中描述數(shù)據(jù)的分類和級(jí)別,這些分類和級(jí)別描述了一些相似的成員集合,用戶將基于這些成員集合進(jìn)行分析。
c)度量值:在多維數(shù)據(jù)集中,度量值是一組值,這些值基于多維數(shù)據(jù)集的事實(shí)數(shù)據(jù)表中的一列,而且通常為數(shù)字。此外,度量值是所分析的多維數(shù)據(jù)集的中心值。即度量值是最終用戶瀏覽多維數(shù)據(jù)集時(shí)重點(diǎn)查看的數(shù)字?jǐn)?shù)據(jù)。
d)維度成員:維度的一個(gè)取值稱為該維的一個(gè)維度成員。
e)多維分析方法:上卷、下鉆、切片、切塊、旋轉(zhuǎn),從多個(gè)角度、多個(gè)側(cè)面觀察數(shù)據(jù)庫(kù)中的數(shù)據(jù)。
f)模式:多維數(shù)據(jù)的事實(shí)表、維表、聚集表等存儲(chǔ)于數(shù)據(jù)庫(kù)中,屬于物理模型;而數(shù)據(jù)立方體、維度、度量這些概念屬于邏輯模型。多維分析引擎必須要理解邏輯模型,并能夠映射到物理模型上。多維數(shù)據(jù)的模式就是用來描述這個(gè)邏輯模型以及到物理模型的映射的。
Mondrian 多維分析工具是一個(gè)以Java 實(shí)現(xiàn)的OLAP引擎。它本身不管理數(shù)據(jù)的儲(chǔ)存,而是通過Mdx語言從關(guān)系數(shù)據(jù)庫(kù)(RDBMS)中讀取數(shù)據(jù),然后經(jīng)過Java API以多維的方式對(duì)結(jié)果進(jìn)行展示。
Mondrian OLAP 系統(tǒng)由4個(gè)層組成,從最終用戶到數(shù)據(jù)中心。
a)表現(xiàn)層:表現(xiàn)層決定了以何種方式向最終用戶顯示多維數(shù)據(jù)集,及它們?nèi)绾瓮到y(tǒng)產(chǎn)生交互。表現(xiàn)層可以使用Pivot 表(一種交互式的表)、Pie、Line 和圖表(Bar Charts)等方式。
b)維度層:維度層用來解析、驗(yàn)證和執(zhí)行Mdx 查詢要求。一個(gè)Mdx 查詢要通過幾個(gè)階段來完成:首先是計(jì)算坐標(biāo)軸(Axes),再者計(jì)算坐標(biāo)軸Axes 中Cell 的值。
c)集合層:集合層負(fù)責(zé)維護(hù)和創(chuàng)建集合緩存,一個(gè)集合是在內(nèi)存中緩存一組單元值,這些單元值由一組維的值來確定。
d)存儲(chǔ)層:存儲(chǔ)層是一個(gè)關(guān)系型數(shù)據(jù)庫(kù)(RD?BMS)。它負(fù)責(zé)創(chuàng)建集合的單元數(shù)據(jù),和提供維表的成員。
Mdx為MultiDimensional Expressions 的縮寫,多維表達(dá)式,是標(biāo)準(zhǔn)的OLAP查詢語言。
Mdx 很多方面與結(jié)構(gòu)化查詢語言(SQL)語法相似,但它不是SQL語言的擴(kuò)展。
每個(gè)Mdx查詢都要求有數(shù)據(jù)請(qǐng)求(select子句)、起始點(diǎn)(from 子句)和篩選(where 子句)。這些關(guān)鍵字以及其他關(guān)鍵字提供了各種工具,用來從多維數(shù)據(jù)集析取數(shù)據(jù)的特定部分。Mdx 還提供了可靠的函數(shù)集,用來對(duì)檢索的數(shù)據(jù)進(jìn)行操作,同時(shí)還具有用戶定義函數(shù)擴(kuò)展Mdx的能力。
Mdx基本語法結(jié)構(gòu):
其中:[axis specification]表示軸的成員選擇;[silcer specification]表示切片上的成員,可以看成過濾信息;[silcer specification]為可選項(xiàng),如果沒有指定,取系統(tǒng)默認(rèn)的維度成員作為切片。
以入庫(kù)后的電路域Msc Server 報(bào)表為例進(jìn)行多維分析。
a)構(gòu)造多維數(shù)據(jù)集(Cube)。經(jīng)過清洗后的數(shù)據(jù)庫(kù)表mss_c 為事實(shí)表,它可分為2 個(gè)維度,時(shí)間維度的mss表和地域維度的mss表(見圖4和圖5)。
圖4 多維數(shù)據(jù)集
圖5 維度表關(guān)系圖
b)進(jìn)行模式映射。一個(gè)模式定義了一個(gè)多維數(shù)據(jù)庫(kù),它包含一個(gè)邏輯模型、一組數(shù)據(jù)立方、層次和成員,并映射到物理模型(關(guān)系數(shù)據(jù)庫(kù))上。
(a)邏輯模型:為了編寫Mdx查詢語言而創(chuàng)建的,它包含數(shù)據(jù)立方、維、層次等。
(b)數(shù)據(jù)立方:事實(shí)表mss_c、維度表dim_time、維度表dim_area。
(c)度量包括:nbrcurrentsubs_g(VLR 中2G 登記用戶數(shù))、nbrcurrentsubs_u(VLR中3G登記用戶數(shù))、it?fatraffic(交換機(jī)的A 接口的占用話務(wù)量)、itfiucscall?traffic(交換機(jī)的Iu-CS接口話音業(yè)務(wù)的占用話務(wù)量)。
(d)維:dim_time、dim_area。
(e)層次(Hierarchies):time_type層次結(jié)構(gòu)為(日、月、年),area_type 層次結(jié)構(gòu)為(設(shè)備、地(市)、省分、全國(guó))。
之后根據(jù)定義的邏輯模型編寫mondrian模式配置文件(xm l文件)。
c)編寫Mdx 查詢。如查詢鄭州的日、月、年忙時(shí)數(shù)據(jù),對(duì)應(yīng)的Mdx查詢語句如下。
其中:columns軸維度包含的是度量。rows軸維度包含的是維度中層次的所有成員。
根據(jù)多維分析的結(jié)果,以圖形方式展示分析后的數(shù)據(jù)(見圖6)。
圖6 分析結(jié)果展示
電信運(yùn)營(yíng)商每年投入大量資金進(jìn)行網(wǎng)管系統(tǒng)的建設(shè),但是這些網(wǎng)管系統(tǒng)大部分都專注于不同網(wǎng)絡(luò)設(shè)備的運(yùn)行維護(hù),對(duì)網(wǎng)絡(luò)的建設(shè)規(guī)劃缺乏有效的指導(dǎo)。將離散的網(wǎng)管數(shù)據(jù)進(jìn)行統(tǒng)一管理,構(gòu)建網(wǎng)管大數(shù)據(jù)平臺(tái),從海量的網(wǎng)管數(shù)據(jù)中挖掘有效信息,可以使其更好地為網(wǎng)絡(luò)建設(shè)服務(wù)。本文介紹了使用自動(dòng)化工具對(duì)網(wǎng)管數(shù)據(jù)進(jìn)行入庫(kù),數(shù)據(jù)清洗,多維分析,實(shí)現(xiàn)了網(wǎng)管數(shù)據(jù)的有效利用。
[1] Matt Casters,Roland Bouman,Jos van Dongen,et al. Pentaho Kettle解決方案:使用PDI 構(gòu)件開源ETL 解決方案[M].北京:電子工業(yè)出版社,2014:120-130.
[2] QB/CU 250-2013 中國(guó)聯(lián)通OSS-GSM/WCDMA/LTE 網(wǎng)絡(luò)管理指標(biāo)體系第四部分:電路域核心網(wǎng)指標(biāo)定義與映射[S].北京:中國(guó)聯(lián)通,2013:33-313.
[3] QB/CU 086-2010 中國(guó)聯(lián)通OSS-GSM/WCDMA 網(wǎng)絡(luò)管理指標(biāo)體系第五部分:分組域核心網(wǎng)指標(biāo)定義與映射[S]. 北京:中國(guó)聯(lián)通,2010:18-184.
[4] QB/CU 246-2013 中國(guó)聯(lián)通OSS-WCDMA/LTE網(wǎng)綜合網(wǎng)管系統(tǒng)與網(wǎng)元管理系統(tǒng)間接口技術(shù)規(guī)范第三部分:與電路域核心網(wǎng)相關(guān)的信息模型[S].北京:中國(guó)聯(lián)通,2013:3-126.
[5] QB/CU 248-2013 中國(guó)聯(lián)通OSS-WCDMA/LTE網(wǎng)綜合網(wǎng)管系統(tǒng)與網(wǎng)元管理系統(tǒng)間接口技術(shù)規(guī)范第七部分:與EPC相關(guān)的信息模型[S].北京:中國(guó)聯(lián)通,2013:10-168.
[6] QB/CU X13-212(2014)中國(guó)聯(lián)通OSS-GSM/WCDMA/LTE 總部移動(dòng)綜合網(wǎng)管系統(tǒng)技術(shù)規(guī)范[S].北京:中國(guó)聯(lián)通,2014:30-36.
[7] QB/CU 252-2013 中國(guó)聯(lián)通OSS-GSM/WCDMA/LTE 網(wǎng)絡(luò)管理指標(biāo)體系第七部分:EPC 指標(biāo)定義與映射[S]. 北京:中國(guó)聯(lián)通,2013:3-179.
[8] Baron Schwartz,Peter Zaitsev,Vadim Tkachenko,et al. 高 性 能MySQL[M].3版.北京:電子工業(yè)出版社,2013:202-204.
[9] Paul DuBois.MySQL 技術(shù)內(nèi)幕[M].4版.北京:人民郵電出版社,2011:230-232.
[10]Pan Ning-Tan,Michael Steinbach,Vipin Kumar,et al. 數(shù)據(jù)挖掘?qū)д摚ㄍ暾妫跰].北京:人民郵電出版社,2011:30-33.
[11]盧輝.數(shù)據(jù)挖掘與數(shù)據(jù)化運(yùn)營(yíng)實(shí)戰(zhàn):思路、方法、技巧與應(yīng)用[M].北京:機(jī)械工業(yè)出版社,2013:129-130.
[12]Micheal Milton. 深入淺出數(shù)據(jù)分析[M]. 北京:電子工業(yè)出版社,2010:75-80.
[13]姚家奕.多維數(shù)據(jù)分析[M].北京:電子工業(yè)出版社,2007:50-56.
[14]Eric Thomsen. OLAP 解決方案:創(chuàng)建多維信息系統(tǒng)[M]. 2 版. 北京:電子工業(yè)出版社,2004:105-108.
[15]BD William,N Goodman,J Hyde. Mondrian in Action: Open source business analytics[M].Virginia:Manning Publications,2013:80-85.