基于大數(shù)據(jù)量的數(shù)據(jù)庫(kù)表采集優(yōu)化技術(shù)的制作方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及一種數(shù)據(jù)庫(kù)數(shù)據(jù)采集技術(shù),特別是一種基于大數(shù)據(jù)量的數(shù)據(jù)庫(kù)表采集優(yōu)化技術(shù)。
【背景技術(shù)】
[0002]基于國(guó)網(wǎng)福建一體化集成平臺(tái)進(jìn)行財(cái)務(wù)應(yīng)用與營(yíng)銷系統(tǒng)接口實(shí)施,實(shí)現(xiàn)財(cái)務(wù)核算與營(yíng)銷應(yīng)收、實(shí)收及賬務(wù)核算數(shù)據(jù)的集成,保證營(yíng)銷系統(tǒng)與財(cái)務(wù)應(yīng)用數(shù)據(jù)的一致性、準(zhǔn)確性和時(shí)效性,全面推進(jìn)國(guó)網(wǎng)福建營(yíng)銷電費(fèi)賬務(wù)與財(cái)務(wù)電費(fèi)賬務(wù)的協(xié)同工作和集約化管理。
[0003]國(guó)網(wǎng)福建的財(cái)務(wù)應(yīng)用從營(yíng)銷系統(tǒng)采集電費(fèi)用戶信息進(jìn)行全量同步,目的主要用于電價(jià)分析。目錄電價(jià)信息財(cái)務(wù)應(yīng)用與營(yíng)銷系統(tǒng)首次進(jìn)行全量同步,之后每月進(jìn)行增量方式同步,目的主要用于電價(jià)分析。按照雙方約定時(shí)間,應(yīng)收電費(fèi)到戶明細(xì)信息財(cái)務(wù)應(yīng)用與營(yíng)銷系統(tǒng)每月進(jìn)行全量同步,目的主要用于電價(jià)分析。按照雙方約定時(shí)間,財(cái)務(wù)應(yīng)用與營(yíng)銷系統(tǒng)按需對(duì)應(yīng)收電費(fèi)匯總信息進(jìn)行全量同步,目的主要用于電費(fèi)核算。使用營(yíng)銷系統(tǒng)實(shí)現(xiàn)營(yíng)銷賬務(wù)核算的單位,不需傳遞應(yīng)收電費(fèi)核算匯總信息。
[0004]如圖1所示,具體過程如下:
(O營(yíng)銷系統(tǒng)按照數(shù)據(jù)中心提供的存儲(chǔ)方式將電費(fèi)用戶、目錄電價(jià)、到戶應(yīng)收電費(fèi)等應(yīng)收數(shù)據(jù)信息存儲(chǔ)到數(shù)據(jù)中心指定數(shù)據(jù)表;
(2)營(yíng)銷系統(tǒng)將應(yīng)收數(shù)據(jù)信息保存成功后,調(diào)用ESB上財(cái)務(wù)管控注冊(cè)的服務(wù);
(3)ESB啟動(dòng)代理服務(wù),將服務(wù)請(qǐng)求路由至業(yè)務(wù)服務(wù),調(diào)用注冊(cè)的業(yè)務(wù)服務(wù);
(4)財(cái)務(wù)管控獲取通知信息后向數(shù)據(jù)中心進(jìn)行數(shù)據(jù)檢索;
(5)財(cái)務(wù)管控根據(jù)檢索結(jié)果從數(shù)據(jù)中心獲取應(yīng)收數(shù)據(jù)信息。
[0005]其中,國(guó)網(wǎng)福建的營(yíng)銷系統(tǒng)電費(fèi)用戶、目錄電價(jià)、到戶應(yīng)收電費(fèi)等每月應(yīng)收數(shù)據(jù)信息都有千萬級(jí)的數(shù)據(jù)、數(shù)據(jù)中心數(shù)據(jù)表經(jīng)過數(shù)月的數(shù)據(jù)累積,已經(jīng)成為了極大表。經(jīng)過生產(chǎn)環(huán)境的使用與測(cè)試得出在(4)過程中的數(shù)據(jù)檢索都會(huì)耗費(fèi)大量時(shí)間。且耗費(fèi)的時(shí)間還隨著數(shù)據(jù)的增長(zhǎng)而增加。
[0006]過長(zhǎng)的檢索過程容易受到其他因素的影響,比如網(wǎng)絡(luò)暫時(shí)中斷等因素都會(huì)增加檢索中斷的風(fēng)險(xiǎn)性,這樣進(jìn)一步增加了總體集成時(shí)間的耗費(fèi)。從而影響了業(yè)務(wù)部門使用電費(fèi)應(yīng)收數(shù)據(jù)進(jìn)行電價(jià)分析等業(yè)務(wù)。
[0007]電費(fèi)采集的效率上的提升關(guān)鍵在于將營(yíng)銷系統(tǒng)的電費(fèi)數(shù)據(jù)轉(zhuǎn)換為財(cái)務(wù)管控需要的數(shù)據(jù)結(jié)構(gòu)后傳輸?shù)截?cái)務(wù)管控的數(shù)據(jù)庫(kù)中。其中大部分的時(shí)間耗費(fèi)在數(shù)據(jù)轉(zhuǎn)換中。
[0008]營(yíng)銷系統(tǒng)是將所有的歷史數(shù)據(jù)都推送到五張臺(tái)賬表。隨著時(shí)間的推移每個(gè)表的數(shù)據(jù)量都極其龐大。采集數(shù)據(jù)時(shí)是分單位分月份采集。中間表的所有數(shù)據(jù)都是在一個(gè)表中,那么每次采集都需要從所有的記錄出檢索出我們需要的數(shù)據(jù)。因?yàn)椴杉鎯?chǔ)過程復(fù)雜,需要過濾許多的條件。每一個(gè)條件都增加了查詢出數(shù)據(jù)的時(shí)間。中間表的數(shù)據(jù)量越大每次查詢過濾條件時(shí)就要更長(zhǎng)的時(shí)間。把采集存儲(chǔ)過程中的查詢語句直接提取出來在數(shù)據(jù)庫(kù)中運(yùn)行,很少數(shù)據(jù)量的縣公司都需要十幾分鐘才能夠查出結(jié)果。采集的大部分時(shí)間都用在了查詢過程中而不是用在傳輸過程中。
[0009]在財(cái)務(wù)管控的電費(fèi)采集模塊中,電費(fèi)數(shù)據(jù)需要采集電費(fèi)明細(xì)數(shù)據(jù)。每個(gè)月都需要使用電費(fèi)銷售側(cè)數(shù)據(jù)采集工具采集大量的電費(fèi)數(shù)據(jù)。2012年數(shù)據(jù)中心的五張臺(tái)賬表中電度電費(fèi)表有兩億條記錄、用電客戶快照表有一億五千萬條記錄。管控中的電價(jià)業(yè)務(wù)表擁有三億條記錄。
[0010]這么大的數(shù)據(jù)量造成電費(fèi)數(shù)據(jù)的采集速度一直很不理想,采集一個(gè)縣公司一個(gè)月的電費(fèi)數(shù)據(jù)就需要半小時(shí)左右。采集擁有千萬級(jí)數(shù)據(jù)量的電業(yè)局需要一個(gè)多小時(shí)甚至更長(zhǎng)的時(shí)間。另外隨著數(shù)據(jù)庫(kù)中歷史數(shù)據(jù)的增加,采集速度還在逐漸下降。過長(zhǎng)采集時(shí)間很容易受到其它因素的影響,比如網(wǎng)絡(luò)暫時(shí)的中斷或者采集計(jì)算機(jī)的卡機(jī)經(jīng)常造成采集過程長(zhǎng)時(shí)間未響應(yīng),這樣進(jìn)一步增加了電費(fèi)的采集時(shí)間。每個(gè)月電費(fèi)采集工作都需要半個(gè)月以上的時(shí)間,不但造成了人工的浪費(fèi),還不能預(yù)留出時(shí)間處理采集后可能發(fā)生的問題,極大的影響了電價(jià)月度報(bào)表與預(yù)算的工作。
【發(fā)明內(nèi)容】
[0011]本發(fā)明的目的在于在現(xiàn)有的采集工具基礎(chǔ)上通過重新設(shè)計(jì)數(shù)據(jù)庫(kù)的表結(jié)構(gòu)與優(yōu)化采集存儲(chǔ)過程來提高采集數(shù)據(jù)效率。
[0012]本發(fā)明采用以下方案實(shí)現(xiàn):一種基于大數(shù)據(jù)量的數(shù)據(jù)庫(kù)表采集優(yōu)化技術(shù),其特征在于包括以下步驟:
步驟1:備份歷史的電費(fèi)數(shù)據(jù);
步驟2:分析ORACLE采集存儲(chǔ)過程中查詢語句的FROM子句,包括其中的子查詢與子查詢中的FROM語句;根據(jù)FROM中的各實(shí)表與虛擬表的大小與查詢速率進(jìn)行排序,按照速率從小到大以先右后左、先下后上的順序重新修改FROM子句;
步驟3:分析ORACLE采集存儲(chǔ)過程中的查詢語句的WHERE子句,將所有條件逐一單獨(dú)提取出在實(shí)際環(huán)境中進(jìn)行查詢測(cè)試;將查詢的速率進(jìn)行排序,按照速率小到大以先右后左、先下后上的順序優(yōu)化WHERE子句;并將耗時(shí)最久的查詢條件與使用頻率最高的幾個(gè)查詢條件記錄;從以上步驟得出出現(xiàn)頻率最高與耗費(fèi)時(shí)間最多的檢索條件中包含了以下YM、0RG_NO、CAT_PRC_ID、C0NS_ID 與 PRC_AMT_ID ;
步驟4:結(jié)合采集存儲(chǔ)過程的業(yè)務(wù)需求與步驟3中的得出的查詢耗時(shí)最久與使用頻率最高的幾個(gè)查詢條件,進(jìn)行綜合分析;以得出會(huì)影響查詢速度的查詢過濾條件;分析這些查詢條件,將其分為兩類:一、查詢出的數(shù)據(jù)粒度較小的且查詢頻率較高的查詢條件優(yōu)先建立索引;二、將查詢的數(shù)據(jù)粒度較大的查詢條件優(yōu)先建立分區(qū)表;
步驟5:通過數(shù)據(jù)庫(kù)腳本對(duì)字段CAT_PRC_ID、C0NS_ID、PRC_AMT_ID建立數(shù)據(jù)庫(kù)索引;步驟6:通過數(shù)據(jù)庫(kù)腳本以字段年月YM與單位代碼0RG_N0為關(guān)鍵字建立五張分區(qū)表:電度電費(fèi)ARC_E_KWH_AMT、基本電費(fèi)ARC_E_BASE_AMT、代征電費(fèi)ARC_E_PL_AMT、用電客戶快照 ARC_E_C0NS_SNAP、用戶電價(jià)電費(fèi) ARC_E_C0NS_PRC_AMT ;
步驟7:將備份表中的數(shù)據(jù)導(dǎo)入到分區(qū)表中;在保證業(yè)務(wù)能夠執(zhí)行的情況下刪除備份表。
[0013]在本發(fā)明一實(shí)施例中,所述步驟I中備份的方式包括:將電力營(yíng)銷系統(tǒng)與財(cái)務(wù)管控的中間表通過改名的方式進(jìn)行備份。
[0014]在本發(fā)明一實(shí)施例中,從所述步驟2得出CAT_PRC_ID、C0NS_ID、PRC_AMT_ID字段過濾的是用戶標(biāo)識(shí)、用戶電價(jià)電費(fèi)標(biāo)識(shí)、電價(jià)碼編碼優(yōu)先建立索引;YM、0RG_N0分別為年月與單位優(yōu)先建立分區(qū)表。
[0015]使用這種發(fā)明后,直接在數(shù)據(jù)庫(kù)使用語句查詢數(shù)據(jù)可以在極短的時(shí)間內(nèi)查詢出結(jié)果??梢允拐麄€(gè)采集過程的耗費(fèi)的時(shí)間大為減少,進(jìn)一步了增強(qiáng)了了采集的穩(wěn)定性。同時(shí)解決了隨著數(shù)據(jù)量的累積會(huì)增加采集耗費(fèi)時(shí)間的問題。
【附圖說明】
[0016]圖1為現(xiàn)有電費(fèi)用戶信息、目錄電價(jià)信息、應(yīng)收電費(fèi)到戶明細(xì)信息、賬齡信息集成技術(shù)架構(gòu)示意圖。
【具體實(shí)施方式】
[0017]本實(shí)施例提供一種基于大數(shù)據(jù)量的數(shù)據(jù)庫(kù)表采集優(yōu)化技術(shù),在優(yōu)化時(shí)數(shù)據(jù)中心已經(jīng)存了近一年的電費(fèi)數(shù)據(jù),這些數(shù)據(jù)在年底的財(cái)務(wù)決算中還需要使用,所以不能刪除。而大數(shù)據(jù)量數(shù)據(jù)的備份與導(dǎo)入需要很多的時(shí)間。這個(gè)問題的解決方法是將原先的表直接改名,然后按照舊表的名稱創(chuàng)建新的分區(qū)表,再將原表的數(shù)據(jù)導(dǎo)入到新的表中去。這樣做還有一個(gè)好處,優(yōu)化過程結(jié)束后表名沒有變更,所以營(yíng)銷系統(tǒng)的推送腳本與管控系統(tǒng)的采集存儲(chǔ)過程都不需要變更。
[0018]該優(yōu)化技術(shù)包括以下步驟:1、備份歷史的電費(fèi)數(shù)據(jù);2、分析ORACLE采集存儲(chǔ)過程中查詢語句的FROM子句,包括其中的子查詢與子查詢中的FROM語句;根據(jù)FROM中的各實(shí)表與虛擬表的大小與查詢速率進(jìn)行排序,按照速率從小到大以先