摘要本論文首先研究了數(shù)據(jù)挖掘的相關(guān)概念,闡述了日前ETL的所需要和需要解決的問(wèn)題及一些現(xiàn)行的方法,同時(shí)還闡述了工作流系統(tǒng)的概念和并對(duì)其體系結(jié)構(gòu)進(jìn)行分析。經(jīng)過(guò)分析設(shè)計(jì),實(shí)現(xiàn)了基于工作流引擎的ETL工具。最后,通過(guò)在電信呼叫中心系統(tǒng)的實(shí)際案例,對(duì)該工具進(jìn)行了測(cè)試和評(píng)估,實(shí)際表明該工具能有效實(shí)現(xiàn)數(shù)據(jù)的抽取、轉(zhuǎn)換和裝載。
關(guān)鍵詞數(shù)據(jù)挖掘數(shù)據(jù)倉(cāng)庫(kù)ETL
中圖分類號(hào):TN91文獻(xiàn)標(biāo)識(shí)碼:A
隨著企業(yè)信息化的發(fā)展,不同的企業(yè)在不同時(shí)期采用的信息技術(shù)都可能不一樣,整個(gè)企業(yè)的信息系統(tǒng)之間很難實(shí)現(xiàn)數(shù)據(jù)的共享。在這種環(huán)境下數(shù)據(jù)挖掘技術(shù)的目的就是從大量數(shù)據(jù)中提取出可信、新穎、有效并能被入理解的信息。而數(shù)據(jù)預(yù)處理通過(guò)對(duì)原始數(shù)據(jù)抽取、轉(zhuǎn)換,最終把數(shù)據(jù)裝載目標(biāo)數(shù)據(jù)庫(kù)或數(shù)據(jù)倉(cāng)庫(kù)中,是數(shù)據(jù)挖掘中的丁個(gè)重要過(guò)程。我們通常稱之為ETL過(guò)程。
因?yàn)閿?shù)據(jù)存儲(chǔ)在不同的系統(tǒng)中千差萬(wàn)別,大多數(shù)的系統(tǒng)都通過(guò)手工編碼的方式來(lái)實(shí)現(xiàn)。這樣的ETL過(guò)程不具通用性,而且開發(fā)周期比較長(zhǎng)。針對(duì)這種情況,本論文提出的基于工作流引擎的ETL工具的解決方案。
這種基于工作流引擎的ETL工具的解決方案,把整個(gè)ETL過(guò)程看成是多個(gè)簡(jiǎn)單的ETL活動(dòng)有序執(zhí)行來(lái)完成的。區(qū)別于其他引擎的ETL工作,這些ETL活動(dòng)可以被串行、并發(fā)、或同步執(zhí)行。利用圖形化工作流模型的能很好地描述這些活動(dòng)之間的關(guān)系。而活動(dòng)的內(nèi)容則可以通過(guò)數(shù)據(jù)轉(zhuǎn)換元數(shù)據(jù)模型進(jìn)行描述。
1 呼叫中心介紹
呼叫中心(callcenter)系統(tǒng)是通過(guò)電話系統(tǒng)連接到信息數(shù)據(jù)庫(kù),并由IVR自動(dòng)語(yǔ)音或人工作璽接受用戶各種服務(wù)請(qǐng)求,比如信息查詢、業(yè)務(wù)受理、服務(wù)申告等。其傳統(tǒng)的介入媒質(zhì)時(shí)至語(yǔ)音電話,隨著技術(shù)的進(jìn)步,介入媒體的形式擴(kuò)展到視頻、電子郵件、短信等形式,逐步發(fā)展成一種“信息中心”。呼叫中心系統(tǒng)一般由ACD(自動(dòng)呼叫分配)交換機(jī)、IVR(交互式語(yǔ)音應(yīng)答)系統(tǒng)、CTI(計(jì)算機(jī)電話集成)系統(tǒng)、數(shù)據(jù)庫(kù)系統(tǒng)、呼叫管理系統(tǒng)、業(yè)務(wù)處理系統(tǒng)以及座席(業(yè)務(wù)代表)等組成。
呼叫中心所有的呼叫記錄可以有交換機(jī)提供,也可以有CTI服務(wù)器提供。在本應(yīng)用中采用CTI服務(wù)器提供的數(shù)據(jù)源進(jìn)行分析。其部署結(jié)構(gòu)圖如下:
圖1.1呼叫中心數(shù)據(jù)處理物理部署圖
2 數(shù)據(jù)源描述
CTI數(shù)據(jù)源主要為每個(gè)終端的呼叫日志、ACD排隊(duì)日至幾話務(wù)員操作日至,都是以文本文件的方式保存在CTI-SERVER服務(wù)器上。所有的日至文件在CTI服務(wù)器的硬盤上只保存40天。每天一個(gè)目錄,目錄文件名為CDRYYYYMMDD;每個(gè)目錄下存放日至文件,每半個(gè)小時(shí)一個(gè)文件,文件格式為CDRHHMI,其中HH為24小時(shí)制,MI為00或30。只能保存40天。CDR日志中,每條記錄以回車符‘\‘結(jié)束,各字段之間用“;”分隔。具體每個(gè)字段的意義及大小如下表示(其中時(shí)間格式統(tǒng)一為YYYY-MM-DDHH24:MI:SS)。數(shù)據(jù)采集程序定期從CTI服務(wù)器通過(guò)FTP提取相關(guān)文件進(jìn)行處理。
3 目標(biāo)數(shù)據(jù)描述
呼叫中心業(yè)務(wù)的報(bào)表主要包含四大類:話務(wù)員工作量分析統(tǒng)計(jì)報(bào)表、話務(wù)員行為分析統(tǒng)計(jì)報(bào)表、話務(wù)量分析統(tǒng)計(jì)報(bào)表、話務(wù)行為分析統(tǒng)計(jì)報(bào)表(如IAR流程分析)、系統(tǒng)狀態(tài)分析統(tǒng)計(jì)報(bào)表。所先從CTI服務(wù)器取得得數(shù)據(jù)是詳細(xì)的日志數(shù)據(jù),這些數(shù)據(jù)存放在在ORACLE9i的數(shù)據(jù)庫(kù)中,如圖1.2所示。
終端呼叫日志信息是指明每個(gè)終端在呼叫過(guò)程中參與的記錄信息,假如一各終端在同一個(gè)呼叫中有多次參與,那么就會(huì)有多條記錄存在。由于呼叫量非常具大,因此,業(yè)務(wù)系統(tǒng)在設(shè)計(jì)時(shí)設(shè)計(jì)為每個(gè)月份一張表進(jìn)行存儲(chǔ)。
呼叫排隊(duì)日志信息是指在呼叫中終端請(qǐng)求人工服務(wù)而排隊(duì)的記錄,如果在同一個(gè)終端上對(duì)于同一個(gè)呼叫中有參與多次排隊(duì),那么就有多條記錄存在,由于請(qǐng)求人工服務(wù)的數(shù)量每天大約在5萬(wàn)左右,在設(shè)計(jì)時(shí),業(yè)務(wù)系統(tǒng)中只設(shè)計(jì)了一張表進(jìn)行存儲(chǔ)。
話務(wù)員操作日志詳情表,記錄操作員日志,系統(tǒng)中只有一張。
圖1.2目標(biāo)數(shù)據(jù)——詳情日志表
4 數(shù)據(jù)抽取和轉(zhuǎn)換流程圖
為了實(shí)現(xiàn)數(shù)據(jù)的抽取,我們先根據(jù)上述數(shù)據(jù)源定義數(shù)據(jù)記錄的屬性,然后設(shè)計(jì)抽取過(guò)程模型,圖1.3就是使用在呼叫中心抽取數(shù)據(jù)的過(guò)程模型。
根據(jù)圖中過(guò)程模型及ETL過(guò)程描述模型定義,可以理解活動(dòng)1和數(shù)據(jù)轉(zhuǎn)換活動(dòng)1串行執(zhí)行,活動(dòng)2和數(shù)據(jù)轉(zhuǎn)換活動(dòng)2串行執(zhí)行,活動(dòng)3和數(shù)據(jù)轉(zhuǎn)換活動(dòng)3串行執(zhí)行.活動(dòng)1、活動(dòng)2及活動(dòng)3可以并行執(zhí)行。當(dāng)數(shù)據(jù)轉(zhuǎn)換活動(dòng)1、數(shù)據(jù)轉(zhuǎn)換活動(dòng)2、數(shù)據(jù)轉(zhuǎn)換活動(dòng)3執(zhí)行完成后,才能執(zhí)行活動(dòng)4.起始節(jié)點(diǎn)、終止節(jié)點(diǎn)、同步并發(fā)節(jié)點(diǎn)及條件孤在4.3.1章節(jié)中已經(jīng)詳細(xì)描述。
圖1.3呼叫中心ETL過(guò)程模型
以下主要描述一下各個(gè)活動(dòng)的具體內(nèi)容。
(1)活動(dòng)1:實(shí)現(xiàn)從CTI服務(wù)器遠(yuǎn)程取得CDR日志文件。其活動(dòng)內(nèi)容描述為:
FtpFile(strcat(strcat(strcat“192.168.0.24:tnsmcc:tnsmcc:/home/tnsmcc/CDR/CDR”,date2str($PLAN-RUN-DATE,”yyyymmdd”)),”/CDR”),Strcat(strcat(itoa(atoi(date2str($PLAN-RUN-TIME,”hh24mi”))/100,itoa(atoi(date2str($PLAN-RUN-TIME,”hh24mi”))%30*30)),”.log”),“/home/tnsmcc/dm/CDR.txt”);
實(shí)際執(zhí)行的日志信息為:
FtpFile(“192.168.0.24:tnsmcc:tnsmcc:/home/tnsmmcc/CDR20060420/CDR0830.log”,”/home/tnsmcc/dm/CDR.txt“);
(2)活動(dòng)2:實(shí)現(xiàn)從CTI服務(wù)器遠(yuǎn)程取得QDR日志文件。其活動(dòng)內(nèi)容描述為:
FtpFile(strcat(strcat(strcat“192.168.0.24:tnsmcc:tnsmcc:/home/tnsmcc/QDR/QDR”,date2str($PLAN-RUN-DATE,”yyyymmdd”)),”/QDR”),Strcat(strcat(itoa(atoi(date2str($PLAN-RUN-TIME,”hh24mi”))/100,itoa(atoi(date2str($PLAN-RUN-TIME,”hh24mi”))%30*30)),”.log”),“/home/tnsmcc/dm/QDR.txt”);
實(shí)際執(zhí)行的日志信息為:
FtpFile(“192.168.0.24:tnsmcc:tnsmcc:/home/tnsmmcc/QDR20060420/QDR0830.log”,”/home/tnsmcc/dm/QDR.txt“);
(3)活動(dòng)3:實(shí)現(xiàn)從CTI服務(wù)器遠(yuǎn)程取得ADR日志文件。其活動(dòng)內(nèi)容描述為:
FtpFile(strcat(strcat(strcat“192.168.0.24:tnsmcc:tnsmcc:/home/tnsmcc/ADR/ADR”,date2str($PLAN-RUN-DATE,”yyyymmdd”)),”ADR”),Strcat(strcat(itoa(atoi(date2str($PLAN-RUN-TIME,”hh24mi”))/100,itoa(atoi(date2str($PLAN-RUN-TIME,”hh24mi”))%30*30)),”.log”),“/home/tnsmcc/dm/ADR.txt”);
實(shí)際執(zhí)行的日志信息為:
FtpFile(“192.168.0.24:tnsmcc:tnsmcc:/home/tnsmmcc/ADR20060420/ADR0830.log”,”/home/tnsmcc/dm/ADR.txt“);
(1)數(shù)據(jù)轉(zhuǎn)換活動(dòng)1:實(shí)現(xiàn)/home/tnsmcc/dm/QDR.txt文件向數(shù)據(jù)庫(kù)表dm-term-call-log-xx的轉(zhuǎn)換。具體有如下信息
表1.4數(shù)據(jù)轉(zhuǎn)換活動(dòng)描述
(2)活動(dòng)4:執(zhí)行數(shù)據(jù)統(tǒng)計(jì)功能,數(shù)據(jù)統(tǒng)計(jì)功能在oracle數(shù)據(jù)庫(kù)內(nèi)通過(guò)數(shù)據(jù)存儲(chǔ)過(guò)程執(zhí)行,該活動(dòng)就是觸發(fā)存儲(chǔ)過(guò)程。其活動(dòng)內(nèi)容描述為:ExecSQL(\"begin dm-call-statics; end; \",result);
5 應(yīng)用結(jié)果評(píng)估
目前在ETL工具的實(shí)際運(yùn)行環(huán)境硬件配置均為DELL6850服務(wù)器,4G內(nèi)存,CTI服務(wù)器的硬件配置為DELL6850服務(wù)器。ETL工具首先從CTI服務(wù)器中通過(guò)FTP取得源文件,然后進(jìn)行轉(zhuǎn)換裝載,最后進(jìn)行統(tǒng)計(jì)分析。完成一次ETL過(guò)程所處理的數(shù)據(jù)量平均2萬(wàn)條呼叫日志,所有的數(shù)據(jù)量為10萬(wàn)條記錄。在采取活動(dòng)并發(fā)的情況下,完成一次ETL流程時(shí)間平均時(shí)長(zhǎng)為3分鐘;在采用串行的流程模型時(shí),完整抽取一次時(shí)間平均時(shí)長(zhǎng)為5分鐘,因此,并發(fā)處理能很大提高性能。目前系統(tǒng)采用并發(fā)處理流程,可以滿足系統(tǒng)的要求,在2005年年底應(yīng)用在福建電信10000客戶服務(wù)熱線、廣東電信10000客戶服務(wù)熱線等系統(tǒng),運(yùn)行良好。