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