專(zhuān)利名稱(chēng):一種通用可配置的標(biāo)準(zhǔn)局?jǐn)?shù)據(jù)入庫(kù)方法
技術(shù)領(lǐng)域:
本發(fā)明涉及數(shù)據(jù)處理領(lǐng)域,具體地說(shuō)是一種通用可配置的標(biāo)準(zhǔn)局?jǐn)?shù)據(jù)入庫(kù)方法。
技術(shù)背景
標(biāo)準(zhǔn)局?jǐn)?shù)據(jù)是局?jǐn)?shù)據(jù)系統(tǒng)最關(guān)鍵的核心數(shù)據(jù),是局?jǐn)?shù)據(jù)核查、制作的基礎(chǔ)數(shù)據(jù)之一,在使用(局?jǐn)?shù)據(jù)核查、制作)之前需要先把標(biāo)準(zhǔn)局?jǐn)?shù)據(jù)導(dǎo)入到數(shù)據(jù)庫(kù)中。
標(biāo)準(zhǔn)局?jǐn)?shù)據(jù)是由集團(tuán)公司或者省公司以EXCEL文件形式不定期下發(fā),包括匯總數(shù)據(jù)、批復(fù)數(shù)據(jù)及省內(nèi)標(biāo)準(zhǔn)數(shù)據(jù)三大類(lèi)數(shù)據(jù),每類(lèi)數(shù)據(jù)又包含多種不同格式的數(shù)據(jù),如BOSS 賬號(hào)用戶(hù)號(hào)段、智能網(wǎng)賬號(hào)用戶(hù)號(hào)段、GSM國(guó)際漫游數(shù)據(jù)、GPRS國(guó)漫數(shù)據(jù)、短號(hào)碼數(shù)據(jù)、端局關(guān)口局、TMSC、HLR、LSTPHSTP、SCP、SGSN設(shè)備數(shù)據(jù)等。這些數(shù)據(jù)每次下發(fā)的文件格式(文件名稱(chēng)、EXCEL表頭名稱(chēng)、EXCEL表頭所在行)、數(shù)據(jù)格式并不固定,文件中還可能會(huì)存在一些錯(cuò)誤數(shù)據(jù)、重復(fù)數(shù)據(jù)。
現(xiàn)在使用的標(biāo)準(zhǔn)局?jǐn)?shù)據(jù)分析入庫(kù)方式是讀取出EXCEL的表頭行,通過(guò)遍歷局?jǐn)?shù)據(jù)系統(tǒng)標(biāo)準(zhǔn)局?jǐn)?shù)據(jù)入庫(kù)功能中所有支持導(dǎo)入的表頭,匹配成功后,即確定了要導(dǎo)入的EXCEL 數(shù)據(jù)類(lèi)型,然后進(jìn)入不同類(lèi)型數(shù)據(jù)(用戶(hù)數(shù)據(jù)、設(shè)備數(shù)據(jù)等)的分支代碼處理,對(duì)EXCEL中每個(gè)單元格的數(shù)據(jù)進(jìn)行處理,最終形成可入庫(kù)的數(shù)據(jù)導(dǎo)入到數(shù)據(jù)庫(kù)中。
上述標(biāo)準(zhǔn)局?jǐn)?shù)據(jù)分析入庫(kù)處理的方法存在以下缺點(diǎn)
1)確定EXCEL數(shù)據(jù)類(lèi)型的效率不高
即需要遍歷局?jǐn)?shù)據(jù)系統(tǒng)標(biāo)準(zhǔn)局?jǐn)?shù)據(jù)入庫(kù)功能中所有支持入庫(kù)的表頭與用戶(hù)選定要入庫(kù)的EXCEL表頭進(jìn)行匹配確定出數(shù)據(jù)類(lèi)型。
2)數(shù)據(jù)處理的靈活性差、維護(hù)工作量較大
需要針對(duì)不同類(lèi)型的標(biāo)準(zhǔn)局?jǐn)?shù)據(jù)編寫(xiě)處理代碼,對(duì)于新增數(shù)據(jù)還需要對(duì)程序作調(diào)離iF. ο發(fā)明內(nèi)容
本發(fā)明的技術(shù)任務(wù)是針對(duì)上述現(xiàn)有技術(shù)的不足,提供一種通用可配置的標(biāo)準(zhǔn)局?jǐn)?shù)據(jù)入庫(kù)方法。
本發(fā)明的技術(shù)任務(wù)是按以下方式實(shí)現(xiàn)的一種通用可配置的標(biāo)準(zhǔn)局?jǐn)?shù)據(jù)入庫(kù)方法,其特征在于,
1)設(shè)兩類(lèi)標(biāo)準(zhǔn)局?jǐn)?shù)據(jù)導(dǎo)入配置文件(均可采用XML格式)
a、文件名關(guān)鍵信息與數(shù)據(jù)類(lèi)型對(duì)應(yīng)關(guān)系配置,命名為STDATA_Type. xml,包括采用正則表達(dá)式描述的文件名關(guān)鍵信息(如移動(dòng)\d{3}用戶(hù).*匯總表I移動(dòng)\d{3}用戶(hù).* 批復(fù)表)、數(shù)據(jù)類(lèi)型標(biāo)識(shí)(如用戶(hù)號(hào)碼)及入庫(kù)處理公共數(shù)據(jù);
雖然每次下發(fā)的標(biāo)準(zhǔn)局?jǐn)?shù)據(jù)文件名并不固定,但描述數(shù)據(jù)類(lèi)型的關(guān)鍵信息還是存在的,所以在配置文件中采用正則表達(dá)式來(lái)描述文件名規(guī)則,文件中一個(gè)節(jié)點(diǎn)描述一種數(shù)據(jù)類(lèi)型;
b、某類(lèi)數(shù)據(jù)入庫(kù)分析配置,包括數(shù)據(jù)庫(kù)表名、數(shù)據(jù)庫(kù)表字段、字段數(shù)據(jù)類(lèi)型、是否是關(guān)鍵字、EXCEL表頭、處理規(guī)則;
2)通過(guò)處理規(guī)則或處理規(guī)則的組合,對(duì)單元格數(shù)據(jù)進(jìn)行處理,處理規(guī)則均采用正則表達(dá)式進(jìn)行匹配;
所述處理規(guī)則為替換、拆分用戶(hù)號(hào)碼、拆分?jǐn)?shù)字、拆分、提取、格式判斷、為空忽略。
本發(fā)明的通用可配置的標(biāo)準(zhǔn)局?jǐn)?shù)據(jù)入庫(kù)方法與現(xiàn)有技術(shù)相比具有以下突出的有益效果
1)在標(biāo)準(zhǔn)局?jǐn)?shù)據(jù)導(dǎo)入流程中,匯總分析了標(biāo)準(zhǔn)局?jǐn)?shù)據(jù)文件格式,提供了兩類(lèi)配置文件結(jié)構(gòu),提高了數(shù)據(jù)類(lèi)型確定效率,實(shí)現(xiàn)了通用的標(biāo)準(zhǔn)局?jǐn)?shù)據(jù)入庫(kù)。
2)在標(biāo)準(zhǔn)局?jǐn)?shù)據(jù)導(dǎo)入流程中,匯總分析了數(shù)據(jù)格式、用戶(hù)導(dǎo)入需求,抽象提取出了 7種數(shù)據(jù)處理規(guī)則,實(shí)現(xiàn)了可配置的標(biāo)準(zhǔn)局?jǐn)?shù)據(jù)入庫(kù)方法。
3)可適應(yīng)不同的入庫(kù)服務(wù)接口。若采用TUXEDO中間件進(jìn)行入庫(kù)處理,則可在入庫(kù)配置文件中配置服務(wù)名、TUXEDO字段值;若采用TOBSERVICE服務(wù)、MQ(消息隊(duì)列)進(jìn)行入庫(kù)處理,則可在入庫(kù)配置文件中配置數(shù)據(jù)庫(kù)表名、數(shù)據(jù)庫(kù)表字段,然后調(diào)用統(tǒng)一入庫(kù)功能函數(shù)即可。
4)減低處理新增數(shù)據(jù)需求的工作量,不需要具有編程能力的技術(shù)人員修改代碼, 僅作配置即可。
5)對(duì)數(shù)據(jù)處理的適應(yīng)性好,配置中采用正則表達(dá)式,可以匹配處理復(fù)雜的模式,通用性、擴(kuò)展性強(qiáng)。
6)本發(fā)明解決EXCEL文件的列與數(shù)據(jù)表字段的靈活對(duì)應(yīng),可以作為所有數(shù)據(jù)源為 EXCEL文件的數(shù)據(jù)分析入庫(kù)方式。
附圖1是本發(fā)明通用可配置的標(biāo)準(zhǔn)局?jǐn)?shù)據(jù)入庫(kù)方法實(shí)現(xiàn)流程圖。
具體實(shí)施方式
參照說(shuō)明書(shū)附圖以具體實(shí)施例對(duì)本發(fā)明的通用可配置的標(biāo)準(zhǔn)局?jǐn)?shù)據(jù)入庫(kù)方法作以下詳細(xì)地說(shuō)明。
實(shí)施例一
本發(fā)明的通用可配置的標(biāo)準(zhǔn)局?jǐn)?shù)據(jù)入庫(kù)方法主要實(shí)現(xiàn)包括以下內(nèi)容
1)標(biāo)準(zhǔn)局?jǐn)?shù)據(jù)導(dǎo)入配置文件總體分為兩類(lèi),均采用XML格式
A.文件名關(guān)鍵信息與數(shù)據(jù)類(lèi)型對(duì)應(yīng)關(guān)系配置,命名為STDATA_Type.Xml。包括采用正則表達(dá)式描述的文件名關(guān)鍵信息、數(shù)據(jù)類(lèi)型標(biāo)識(shí)及入庫(kù)處理公共數(shù)據(jù)。雖然每次下發(fā)的標(biāo)準(zhǔn)局?jǐn)?shù)據(jù)文件名并不固定,但描述數(shù)據(jù)類(lèi)型的關(guān)鍵信息還是存在的,所以在配置文件中采用正則表達(dá)式來(lái)描述文件名規(guī)則。文件中一個(gè)節(jié)點(diǎn)描述一種數(shù)據(jù)類(lèi)型。
例如,以用戶(hù)號(hào)碼為例進(jìn)行配置
<STDATA_user Description="用戶(hù)號(hào)碼〃 TableType='"' TableTypeValue="”>〈File name="移動(dòng)神州行用戶(hù)號(hào)碼I全網(wǎng)智能網(wǎng)帳戶(hù)I智能網(wǎng)帳戶(hù)用戶(hù)號(hào)碼批復(fù)表I智能網(wǎng)帳戶(hù)號(hào)段批復(fù)表I智能網(wǎng)帳戶(hù)號(hào)碼批復(fù)表I智能網(wǎng)帳戶(hù)號(hào)碼匯總I智能網(wǎng)賬號(hào)用戶(hù)號(hào)段匯總“KeyValue="" NumTypeValue=" 100017〉〈File name="移動(dòng)全球通用戶(hù)號(hào)碼i全網(wǎng)boss |智能網(wǎng)帳戶(hù)轉(zhuǎn)| boss 帳戶(hù)號(hào)碼批復(fù)表Iboss帳戶(hù)\d+. * 號(hào)碼匯總表Iboss賬號(hào)用戶(hù)\d+. * 號(hào)段匯總〃 KeyValue='"' NumTypeValue=" 10000〃/〉〈File name="移動(dòng)\d{3}用戶(hù).*匯總表I移動(dòng)\d{3}用戶(hù).*批復(fù)表" KeyValue="" NumTypeValue="10000〃/> </STDATA_user>
B.某類(lèi)數(shù)據(jù)入庫(kù)分析配置,包括數(shù)據(jù)庫(kù)表名、數(shù)據(jù)庫(kù)表字段、字段數(shù)據(jù)類(lèi)型、是否是關(guān)鍵字、EXCEL表頭、處理規(guī)則等。
例如,以用戶(hù)號(hào)碼的號(hào)碼列為例進(jìn)行配置
〈Column DisTitle="號(hào)碼〃 DisWidth=〃120"> 〈Titles〉<titlename=1890H1H2H3@1890〃Before=1890〃/>〈title name=1891H1H2H3@1891〃Before二1891"/><titlename=1892H1H2H3@1892"Before=1892〃/><titlename=1893H1H2H3@1893"Before=18937〉〈titlename=1894H1H2H3@1894"Before=1894〃/〉〈titlename=1895H1H2H3@1895"Before=1895〃/><titlename=1896H1H2H3@1896"Before=1896〃/>〈titlename=1897H1H2H3@1897〃Before=1897〃/〉<titlename=1898H1H2H3@1898〃Before=1898〃/>〈title name=1899H1H2H3@1899"Before-'18997〉ParaTwo=〃〃/>〈title name="萬(wàn)號(hào)段@萬(wàn)號(hào)段/千號(hào)段@號(hào)段〃 Before=""/〉 〈/Titles〉<Exist>must—one〈/Exist> <Field>gsm_number</Field> <Type>string</Type> <IsKey>true</IsKey> <Deal><ErronJudge_Null Description=〃為空忽略〃 ParaOne=' <Deal_Replace Description="替換〃 ParaOne=〃[?? 無(wú)]〃 ParaTwo=""/> <Deal_Replace Description="替換“ParaOne="[, , /\\ 、、 ] ParaTwo=", 〃/><Deal_Replace Description="替換“ParaOne=" [-_ --—---]ParaTwo="-7><Deal_Split—PhoneNumber Description="拆分手機(jī)號(hào)ParaOne="(\d+) — (\d+)“ ParaTwo=", 〃/>
</Deal> </Column>
2)匯總分析了所有需要入庫(kù)的標(biāo)準(zhǔn)局?jǐn)?shù)據(jù)格式,抽象出7種處理規(guī)則,通過(guò)這些規(guī)則的靈活組合配置可以滿(mǎn)足不同單元格數(shù)據(jù)的處理需求。處理規(guī)則均采用正則表達(dá)式這一模式匹配方式,具體地說(shuō)
A.替換(Deal_Replace)
舉例如<Deal_Iteplace Description = 〃 替換“ParaOne = “ [ ? 無(wú)]“ParaTwo = “ “ />
ParaOne中配置匹配規(guī)則,模式匹配成功后,用ParaTwo中的參數(shù)進(jìn)行替換。
B.拆分用戶(hù)號(hào)碼(Deal_Split PhoneNumber)
舉例如<Deal_Split_PhoneNumber Description =〃 〃
ParaOne = “ (\d+) - (\d+) “ ParaTwo = 〃,“ />
ParaOne中配置匹配規(guī)則,模式匹配成功后,將捕獲到兩個(gè)組的數(shù)字就行連續(xù)拆分,位長(zhǎng)不等時(shí),按最長(zhǎng)位進(jìn)行前方補(bǔ)0,最后加入前綴(前綴如Before =" 1899")。
C.拆分?jǐn)?shù)字(Deal_Split_Number)
與Deal_Split_PhoneNumber類(lèi)似,只是不進(jìn)行位長(zhǎng)不等補(bǔ)O操作。
D.拆分(Deal_Split)
舉例如<Deal_SplitDescription =〃 拆分〃 ParaOne=" \r\n|\n"
ParaTwo = “ “ />
按照ParaOne中配置的規(guī)則拆分?jǐn)?shù)據(jù)。
E. 11 (Deal_Extract)
舉例如<Deal_Extract Description = 〃 ‘‘ ParaOne = “ mnc (\d+) 〃
ParaTwo = “ “ />
按照ParaOne中配置的規(guī)則提取數(shù)據(jù),當(dāng)配置了組,則獲取組的數(shù)據(jù),否則獲取整體的數(shù)據(jù)。
F.格式判斷(ErronJudge_Format)
<ErronJudge_Format Description =““
ParaOne = “ "mnc\d+\. mcc\d+\. gprs$"
ParaTwo = “ “ />
判斷數(shù)據(jù)格式是否符合ParaOne中配置的規(guī)則,不符合則提示操作者。
G.為空忽略(ErronJudge Null)
如<ErronJudge_Null Description =“為空忽略〃 ParaOne = “ ‘‘ ParaTwo
當(dāng)數(shù)據(jù)為空時(shí),忽略該數(shù)據(jù)并提示操作者。
實(shí)施例二
如附圖1所示,上述標(biāo)準(zhǔn)局?jǐn)?shù)據(jù)入庫(kù)方法的實(shí)現(xiàn)流程為
1)讀取文件名關(guān)鍵信息與數(shù)據(jù)類(lèi)型對(duì)應(yīng)關(guān)系配置文件
(STDATA_Type. xml),形成配置類(lèi)實(shí)例,通過(guò)配置的正則表達(dá)式進(jìn)行模式匹配,匹配成功后則確定了數(shù)據(jù)類(lèi)型,可直接讀取入庫(kù)配置文件,該類(lèi)數(shù)據(jù)的入庫(kù)配置文件名與節(jié)點(diǎn)名一致,以用戶(hù)號(hào)碼為例(如實(shí)施例一中配置舉例),STDATA_Type. xml節(jié)點(diǎn)為< STDATA_ user……,則入庫(kù)配置文件即為STDATA_User. xml。該步驟不必讀取所有可支持導(dǎo)入的表頭情況,減少內(nèi)存占用,減少遍歷匹配所有表頭的消耗,提高處理效率。當(dāng)文件名中不包含數(shù)據(jù)類(lèi)型的關(guān)鍵信息時(shí),為了減少人為的干預(yù)如修改文件名,增加容錯(cuò)處理,進(jìn)入遍歷匹配文件頭流程。
2)讀取具體的入庫(kù)配置文件,形成入庫(kù)控制類(lèi)實(shí)例,該類(lèi)中包括數(shù)據(jù)庫(kù)表名、數(shù)據(jù)庫(kù)表字段、字段數(shù)據(jù)類(lèi)型、是否是關(guān)鍵字、EXCEL表頭、是否分sheet頁(yè)處理、處理規(guī)則等。按照入庫(kù)控制類(lèi)的配置EXCEL表頭與待入庫(kù)文件的EXCEL表頭進(jìn)行匹配,建立待入庫(kù)文件的列名與字段的對(duì)應(yīng)關(guān)系。若表頭匹配不成功,則彈出幫助窗口,提示操作者下載標(biāo)準(zhǔn)局?jǐn)?shù)據(jù)模板文件,結(jié)束入庫(kù)流程。
3)按照入庫(kù)控制類(lèi)的處理規(guī)則(處理規(guī)則可以組合,如用戶(hù)數(shù)據(jù)號(hào)碼列需要進(jìn)行為空忽略、拆分手機(jī)號(hào)處理,則可配置上<ErronJudge_Null Description =‘‘為空忽 B§〃 ParaOne = “ “ ParaTwo = “ “ /> R <Deal_Split_PhoneNumber Description =“ 拆分手機(jī)號(hào)〃 ParaOne=" (\d+)-(\d+)〃 ParaTwo = “ , “ />這兩種處理規(guī)則),逐一調(diào)用通用規(guī)則處理函數(shù),形成與入庫(kù)字段對(duì)應(yīng)的入庫(kù)數(shù)據(jù)。
4)調(diào)用入庫(kù)功能函數(shù),結(jié)束入庫(kù)流程。
權(quán)利要求
1. 一種通用可配置的標(biāo)準(zhǔn)局?jǐn)?shù)據(jù)入庫(kù)方法,其特征在于,1)設(shè)兩類(lèi)標(biāo)準(zhǔn)局?jǐn)?shù)據(jù)導(dǎo)入配置文件a、文件名關(guān)鍵信息與數(shù)據(jù)類(lèi)型對(duì)應(yīng)關(guān)系配置,包括采用正則表達(dá)式描述的文件名關(guān)鍵信息、數(shù)據(jù)類(lèi)型標(biāo)識(shí)及入庫(kù)處理公共數(shù)據(jù);b、某類(lèi)數(shù)據(jù)入庫(kù)分析配置,包括數(shù)據(jù)庫(kù)表名、數(shù)據(jù)庫(kù)表字段、字段數(shù)據(jù)類(lèi)型、是否是關(guān)鍵字、EXCEL表頭、處理規(guī)則;2)通過(guò)處理規(guī)則或處理規(guī)則的組合,對(duì)單元格數(shù)據(jù)進(jìn)行處理,處理規(guī)則均采用正則表達(dá)式進(jìn)行匹配;所述處理規(guī)則為替換、拆分用戶(hù)號(hào)碼、拆分?jǐn)?shù)字、拆分、提取、格式判斷、為空忽略。
全文摘要
本發(fā)明公開(kāi)了一種通用可配置的標(biāo)準(zhǔn)局?jǐn)?shù)據(jù)入庫(kù)方法,屬于數(shù)據(jù)處理領(lǐng)域領(lǐng)域。該方法設(shè)置了文件名關(guān)鍵信息與數(shù)據(jù)類(lèi)型對(duì)應(yīng)關(guān)系配置、某類(lèi)數(shù)據(jù)入庫(kù)分析配置等兩類(lèi)標(biāo)準(zhǔn)局?jǐn)?shù)據(jù)導(dǎo)入配置文件,并通過(guò)處理規(guī)則或處理規(guī)則的組合,對(duì)單元格數(shù)據(jù)進(jìn)行處理,所述處理規(guī)則為替換、拆分用戶(hù)號(hào)碼、拆分?jǐn)?shù)字、拆分、提取、格式判斷、為空忽略。與現(xiàn)有技術(shù)相比,本發(fā)明的通用可配置的標(biāo)準(zhǔn)局?jǐn)?shù)據(jù)入庫(kù)方法具有適應(yīng)不同的入庫(kù)服務(wù)接口、對(duì)數(shù)據(jù)處理的適應(yīng)性好、處理新增數(shù)據(jù)需求的工作量低等特點(diǎn),具有很好的推廣應(yīng)用價(jià)值。
文檔編號(hào)G06F17/30GK102542038SQ20111044317
公開(kāi)日2012年7月4日 申請(qǐng)日期2011年12月27日 優(yōu)先權(quán)日2011年12月27日
發(fā)明者牟文英 申請(qǐng)人:浪潮通信信息系統(tǒng)有限公司