魏革
摘要:隨著社會(huì)經(jīng)濟(jì)的快速發(fā)展,數(shù)據(jù)倉(cāng)庫(kù)和數(shù)據(jù)挖掘研究行業(yè)的發(fā)展也越來(lái)越快。現(xiàn)階段,這方面的研究熱點(diǎn),也已經(jīng)集中在對(duì)于數(shù)據(jù)庫(kù)的分析技術(shù)方面,比如對(duì)數(shù)據(jù)倉(cāng)庫(kù)數(shù)據(jù)挖掘等方面。該文首先對(duì)數(shù)據(jù)倉(cāng)庫(kù)系統(tǒng)做了概述;而后,對(duì)數(shù)據(jù)挖掘進(jìn)行了描述;最后,對(duì)基于Web的數(shù)據(jù)挖掘算法與數(shù)據(jù)倉(cāng)庫(kù)接口的設(shè)計(jì)與應(yīng)用做了詳細(xì)的概述。
關(guān)鍵詞:數(shù)據(jù)挖掘;接口;算法;數(shù)據(jù)倉(cāng)庫(kù)
中圖分類(lèi)號(hào):TP311 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2015)35-0003-02
隨著科學(xué)技術(shù)的發(fā)展,基于Web的數(shù)據(jù)挖掘系統(tǒng)已經(jīng)逐步實(shí)行了與計(jì)算機(jī)技術(shù)和數(shù)據(jù)挖掘技術(shù)的融合,可以利用瀏覽器對(duì)企業(yè)所存放的數(shù)據(jù)進(jìn)行科學(xué)有效的分析,對(duì)企業(yè)當(dāng)中的一些決策可以起到?jīng)Q定性的作用。但是,在數(shù)據(jù)挖掘系統(tǒng)中,需要在Web環(huán)境下對(duì)企業(yè)中的倉(cāng)庫(kù)數(shù)據(jù)進(jìn)行挖掘并且輸出結(jié)果。因此,需要在Web條件下,對(duì)數(shù)據(jù)挖掘算法和數(shù)據(jù)管理系統(tǒng)進(jìn)行接口設(shè)計(jì),以便于企業(yè)對(duì)數(shù)據(jù)進(jìn)行更加方便的管理,以利于企業(yè)的發(fā)展。
1 數(shù)據(jù)倉(cāng)庫(kù)系統(tǒng)
現(xiàn)階段,有許許多多的各種數(shù)據(jù)源,比如管理系統(tǒng)、文件系統(tǒng)等含有WEB數(shù)據(jù)的數(shù)據(jù)源,這些數(shù)據(jù)源在質(zhì)量、種類(lèi)上也有很多不同的特點(diǎn)和特性,這些因素是直接導(dǎo)致數(shù)據(jù)來(lái)源不統(tǒng)一的主要原因,造成了數(shù)據(jù)集成極大的不方便性。在數(shù)據(jù)模式的設(shè)計(jì)、數(shù)據(jù)的清晰、數(shù)據(jù)的轉(zhuǎn)換以及導(dǎo)入更新等方面,也都存在著很大程度的難點(diǎn)。在數(shù)據(jù)清理方面,必須要準(zhǔn)確地發(fā)現(xiàn)重復(fù)的數(shù)據(jù)并且判斷出是否需要?jiǎng)h除。在這個(gè)過(guò)程當(dāng)中,數(shù)據(jù)源是多種多樣的,也存在著很多的重復(fù)數(shù)據(jù)。與此同時(shí),每個(gè)數(shù)據(jù)源的質(zhì)量和錄入的方式也是不同的。因此,就需要在數(shù)據(jù)錄入的時(shí)候,將重復(fù)的數(shù)據(jù)一一找出并且進(jìn)行刪除處理,保證數(shù)據(jù)的可靠性。在這個(gè)過(guò)程當(dāng)中,就需要用到一些高效的辦法來(lái)對(duì)數(shù)據(jù)進(jìn)行有效判斷,對(duì)數(shù)據(jù)的層次以及語(yǔ)義進(jìn)行判別認(rèn)知。通常情況下,數(shù)據(jù)源當(dāng)中的數(shù)據(jù)可以分為關(guān)系數(shù)據(jù)庫(kù)、XML半結(jié)構(gòu)化數(shù)據(jù)等,這些數(shù)據(jù)在訪問(wèn)方式、數(shù)據(jù)模式等方面都是不相同的。在數(shù)據(jù)裝入數(shù)據(jù)庫(kù)的時(shí)候,在保證數(shù)據(jù)不丟失的情況下,還要保證原本數(shù)據(jù)模式語(yǔ)義的一致性。我們就需要將數(shù)據(jù)轉(zhuǎn)換成一種方便轉(zhuǎn)換的統(tǒng)一形式,再把數(shù)據(jù)裝入數(shù)據(jù)倉(cāng)庫(kù)中[1]。
2 數(shù)據(jù)挖掘
數(shù)據(jù)挖掘,可以稱(chēng)之為數(shù)據(jù)庫(kù)中的知識(shí)發(fā)現(xiàn),即從大量的數(shù)據(jù)當(dāng)中篩查挖掘出有用的信息。數(shù)據(jù)挖掘的用途主要是用來(lái)從指定數(shù)據(jù)挖掘任務(wù)當(dāng)中找出模式類(lèi)型,數(shù)據(jù)的挖掘可以分為描述和預(yù)測(cè)兩類(lèi)。數(shù)據(jù)挖掘具有自動(dòng)預(yù)測(cè)趨勢(shì)以及行為、關(guān)聯(lián)分析、聚類(lèi)、概念描述以及偏差檢測(cè)這五個(gè)功能[2]。
3 基于Web的數(shù)據(jù)挖掘算法和數(shù)據(jù)倉(cāng)庫(kù)接口的設(shè)計(jì)和應(yīng)用
3.1 接口設(shè)計(jì)
基于Web的數(shù)據(jù)挖掘算法,是在挖掘算法集成大B/S機(jī)構(gòu)的數(shù)據(jù)挖掘系統(tǒng)之后形成的一種數(shù)據(jù)挖掘算法。數(shù)據(jù)挖掘算法一般可以利用C/C++、Java以及Delphi等多種計(jì)算機(jī)語(yǔ)言來(lái)編寫(xiě),每一種算法都可以實(shí)現(xiàn)各自的挖掘功能。在系統(tǒng)當(dāng)中,算法需要在C#開(kāi)發(fā)的NET平臺(tái)下運(yùn)行,但并不是所有算法都可以被C#調(diào)用。因此,就需要將系統(tǒng)當(dāng)中的算法編譯成獨(dú)立的組件,多個(gè)組件就組成了一個(gè)算法庫(kù)。用戶(hù)在進(jìn)行操作的時(shí)候,就可以根據(jù)用戶(hù)需求從算法庫(kù)當(dāng)中選擇相對(duì)應(yīng)的算法組件。算法的輸入數(shù)據(jù)可以分為兩種來(lái)源,分別是ODBC/ADO獲取到的數(shù)據(jù)庫(kù)當(dāng)中的數(shù)據(jù)和文件當(dāng)中的數(shù)據(jù)。算法的輸出方式也可以有兩種。在基于Web的數(shù)據(jù)挖掘系統(tǒng)當(dāng)中,挖掘數(shù)據(jù)來(lái)自于數(shù)據(jù)倉(cāng)庫(kù),而算法是需要與數(shù)據(jù)倉(cāng)庫(kù)進(jìn)行接口操作,才能實(shí)現(xiàn)挖掘功能的。
在圖1的算法當(dāng)中,算法庫(kù)的輸入接口有兩個(gè),分別是與Web服務(wù)器連接的輸入接口和數(shù)據(jù)挖掘庫(kù)的接口。在此算法當(dāng)中,Web服務(wù)器可以調(diào)用指定的挖掘算法組件,調(diào)用的方式是通過(guò)接口向算法庫(kù)傳遞。在算法庫(kù)中,可以通過(guò)與數(shù)據(jù)挖掘庫(kù)的接口處來(lái)向算法庫(kù)傳遞輸入的數(shù)據(jù),此時(shí)的算法用ODBC/ADC和數(shù)據(jù)挖掘庫(kù)進(jìn)行連接,對(duì)數(shù)據(jù)庫(kù)進(jìn)行操作的時(shí)候則是利用SQL語(yǔ)句。其中的數(shù)據(jù)挖掘庫(kù)則是在瀏覽器端的用戶(hù)字段上來(lái)對(duì)數(shù)據(jù)倉(cāng)庫(kù)當(dāng)中的數(shù)據(jù)進(jìn)行有效的篩查選擇。在算法庫(kù)接收到輸入的數(shù)據(jù)之后,需要進(jìn)行相關(guān)的運(yùn)行計(jì)算,最終的結(jié)果會(huì)返回到Web的服務(wù)器當(dāng)中,之后通過(guò)瀏覽器再傳遞到用戶(hù)的網(wǎng)頁(yè)當(dāng)中,再根據(jù)用戶(hù)的選擇來(lái)進(jìn)行儲(chǔ)存或者刪除。
運(yùn)用此種算法的優(yōu)點(diǎn)是能夠直接對(duì)數(shù)據(jù)庫(kù)進(jìn)行操作,操作更加方便快捷,可以實(shí)時(shí)獲得相對(duì)應(yīng)的數(shù)據(jù),在整個(gè)操作的過(guò)程中不需要緩沖,這樣就可以在最大程度上加快相應(yīng)的速度,對(duì)較小的開(kāi)銷(xiāo)進(jìn)行連續(xù)執(zhí)行,達(dá)到改善性能的效果;并且接口的形式簡(jiǎn)單,數(shù)據(jù)庫(kù)當(dāng)中的數(shù)據(jù)更新是由數(shù)據(jù)庫(kù)進(jìn)行直接控制的;與此同時(shí),Web的負(fù)荷也是相對(duì)較小的,系統(tǒng)的穩(wěn)定性可以在很大程度上得到改善。但是,采用此種方式的算法對(duì)內(nèi)存的要求也是相對(duì)較高的,當(dāng)其中的數(shù)據(jù)過(guò)多的時(shí)候,就會(huì)影響內(nèi)存的響應(yīng)速度;并且對(duì)算法的設(shè)計(jì)要求也會(huì)相應(yīng)的提高,對(duì)于數(shù)據(jù)格式的設(shè)計(jì)要依賴(lài)于數(shù)據(jù)庫(kù),如果在算法成熟的情況下,就需要重新對(duì)算法進(jìn)行設(shè)計(jì)。
接獲得數(shù)據(jù)挖掘庫(kù)的數(shù)據(jù)
在圖2的算法中,Web服務(wù)器上的文本或者其他格式的文件是此種算法的輸入接口。其中Web的服務(wù)器會(huì)與數(shù)據(jù)倉(cāng)庫(kù)相連,需要根據(jù)用戶(hù)選擇的調(diào)用數(shù)量來(lái)對(duì)倉(cāng)庫(kù)當(dāng)中的數(shù)據(jù)進(jìn)行挖掘操作,之后就可以反饋到Web服務(wù)器中。Web服務(wù)器向算法庫(kù)傳遞的挖掘指令、輸入數(shù)據(jù)流以及輸入的參數(shù)是利用兩者之間的文本或者文件接口來(lái)進(jìn)行的。算法庫(kù)的輸出接口也是通過(guò)Web服務(wù)器上的文本或者文件來(lái)進(jìn)行的。在算法運(yùn)行之后,會(huì)將計(jì)算結(jié)果輸出到文本或者文件當(dāng)中,然后再將數(shù)據(jù)傳遞到用戶(hù)的Web瀏覽器的界面上,最后就會(huì)根據(jù)用戶(hù)的選擇來(lái)對(duì)數(shù)據(jù)進(jìn)項(xiàng)儲(chǔ)存或者刪除。
采用此種算法,不管數(shù)據(jù)庫(kù)運(yùn)行速度快慢,數(shù)據(jù)的提取速度是相當(dāng)快的,從計(jì)算機(jī)的硬盤(pán)當(dāng)中對(duì)數(shù)據(jù)的提取通常會(huì)比從數(shù)據(jù)庫(kù)當(dāng)中檢索的數(shù)據(jù)要快。即使數(shù)據(jù)過(guò)多,也不會(huì)影響運(yùn)行的速度,系統(tǒng)會(huì)將數(shù)據(jù)以文本或者文件的形式存儲(chǔ)在服務(wù)器的硬盤(pán)上,方便操作。與此同時(shí),輸入也相對(duì)來(lái)說(shuō)較為簡(jiǎn)單,對(duì)于數(shù)據(jù)的篩選問(wèn)題是不用考慮的,只需要根據(jù)用戶(hù)的選擇來(lái)進(jìn)行動(dòng)態(tài)選擇。但是采用此種方式,在很大程度上也增加了服務(wù)器內(nèi)存的操作次數(shù),讀取數(shù)據(jù)時(shí)需要對(duì)內(nèi)存進(jìn)行多次操作,并且每增加一種算法,就需要為算法開(kāi)發(fā)出獨(dú)立的輸入與輸出的格式,適用于每種不同的算法的輸出輸入需要。
3.2 實(shí)現(xiàn)應(yīng)用
1)如果采用直接對(duì)數(shù)據(jù)挖掘庫(kù)進(jìn)行操作算法的模式來(lái)對(duì)數(shù)據(jù)庫(kù)進(jìn)行操作,此時(shí)的算法在集成進(jìn)入系統(tǒng)的時(shí)候就需要以動(dòng)態(tài)鏈接庫(kù)的形式進(jìn)入,而算法當(dāng)中的DLL文件則需要對(duì)接口的入口函數(shù)與算法的運(yùn)算函數(shù)進(jìn)行調(diào)用,在對(duì)數(shù)據(jù)庫(kù)進(jìn)行操作的時(shí)候,語(yǔ)句可以用分配環(huán)境句柄、分配鏈接句柄、鏈接數(shù)據(jù)源、分配語(yǔ)句句柄、對(duì)數(shù)據(jù)庫(kù)進(jìn)行操作并且選擇數(shù)據(jù)、斷開(kāi)鏈接以及最后的釋放ODBC環(huán)境[3]。
2)如果采用通過(guò)Web服務(wù)器的文件接口來(lái)間接獲得數(shù)據(jù)挖掘庫(kù)的數(shù)據(jù)的算法來(lái)進(jìn)行操作,就不能對(duì)數(shù)據(jù)庫(kù)進(jìn)行直接操作,需要通過(guò)服務(wù)器端的文件接口來(lái)對(duì)輸入的數(shù)據(jù)進(jìn)行獲取最后輸出結(jié)果到文件上。系統(tǒng)當(dāng)中的算法如果要進(jìn)入集成的系統(tǒng)當(dāng)中,就需要以動(dòng)態(tài)鏈接庫(kù)的形式來(lái)進(jìn)行集成,在算法中的DLL文件就需要對(duì)輸入、輸出的名稱(chēng)以及服務(wù)器上的物理地址進(jìn)行精確的定義。算法還可以對(duì)文件的形式集成進(jìn)行有效的執(zhí)行,在Web服務(wù)器與文件接口進(jìn)行連接的時(shí)候,需要首先對(duì)ADO庫(kù)的文件進(jìn)行引入并且定義,而后,利用SQLConnection對(duì)象進(jìn)行數(shù)據(jù)倉(cāng)庫(kù)的連接,充分建立好連接。在連接過(guò)程當(dāng)中,需要利用Command進(jìn)行SQL命令的執(zhí)行,將挖掘數(shù)據(jù)用文件流的語(yǔ)句形式導(dǎo)入到算法的輸入文件當(dāng)中去,用戶(hù)可以對(duì)其結(jié)果進(jìn)行選擇。最后,就需要關(guān)閉連接,釋放對(duì)象了[4]。
4 結(jié)語(yǔ)
綜上所述,運(yùn)用基于Web的數(shù)據(jù)挖掘系統(tǒng),可以很好地將算法和倉(cāng)庫(kù)數(shù)據(jù)進(jìn)行有效的連接,最大限度地解決了算法與數(shù)據(jù)倉(cāng)庫(kù)的集成問(wèn)題。算法是利用接口的技術(shù)在計(jì)算機(jī)的環(huán)境之下進(jìn)行企業(yè)的倉(cāng)庫(kù)數(shù)據(jù)管理,運(yùn)用此種方式,可以對(duì)企業(yè)在管理決策上進(jìn)行行之有效的管理,為企業(yè)的系統(tǒng)增添更多的新算法,保障了系統(tǒng)的延伸擴(kuò)展性,增強(qiáng)對(duì)數(shù)據(jù)的挖掘性,提高企業(yè)的管理經(jīng)營(yíng)效益,推動(dòng)企業(yè)經(jīng)濟(jì)發(fā)展。
參考文獻(xiàn):
[1] 王慶福.談數(shù)據(jù)倉(cāng)庫(kù)與數(shù)據(jù)挖掘教學(xué)研究[J].中國(guó)科教創(chuàng)新導(dǎo)刊,2012(28):179.
[3] 劉新穎,王麗亞.基于Web的數(shù)據(jù)挖掘算法與數(shù)據(jù)倉(cāng)庫(kù)的接口設(shè)計(jì)[J].計(jì)算機(jī)工程,2006(21):88-90.
[3] 阮夢(mèng)黎.基于半結(jié)構(gòu)化分割的Web熱點(diǎn)數(shù)據(jù)挖掘算法[J].科技通報(bào),2015(4):115-117.
[4] 張艷格,高麗燕.一種基于云計(jì)算的海量web數(shù)據(jù)挖掘算法[J].中國(guó)電子商務(wù),2012(18):64-65.