隨著云時(shí)代的到來(lái)和SaaS概念的引入,越來(lái)越多的企業(yè)開始選擇由SaaS應(yīng)用提供商、運(yùn)營(yíng)商等通過(guò)互聯(lián)網(wǎng)平臺(tái)提供SaaS應(yīng)用服務(wù),SaaS應(yīng)用的數(shù)據(jù)量面臨著TB級(jí)的增長(zhǎng)速度;不同的SaaS應(yīng)用體系,提供的數(shù)據(jù)結(jié)構(gòu)也不完全相同,數(shù)據(jù)有文本、圖形甚至小型數(shù)據(jù)庫(kù);SaaS應(yīng)用數(shù)據(jù)隨著云服務(wù)平臺(tái)的分布性特點(diǎn),有可能分布在不同的服務(wù)器上,如何對(duì)這些異構(gòu)異源的數(shù)據(jù)進(jìn)行數(shù)據(jù)挖掘,是云時(shí)代的企業(yè)面臨的難題。
圖1 企業(yè)面臨著在不同數(shù)據(jù)源上進(jìn)行數(shù)據(jù)挖掘的挑戰(zhàn)如何從海量應(yīng)用挖掘出合理的數(shù)據(jù)
對(duì)于企業(yè)而言,如何將各種SaaS應(yīng)用數(shù)據(jù)進(jìn)行整合挖掘,提煉出適合其使用的商業(yè)信息是企業(yè)的一大急迫需求。傳統(tǒng)的BI模式大多基于數(shù)據(jù)倉(cāng)庫(kù),是關(guān)系型數(shù)據(jù)庫(kù)的模式。面對(duì)急劇增長(zhǎng)的異構(gòu)數(shù)據(jù),傳統(tǒng)的數(shù)據(jù)倉(cāng)庫(kù)和原有的并行計(jì)算技術(shù)由于挖掘效率低,已經(jīng)不能解決海量數(shù)據(jù)挖掘工作,影響著數(shù)據(jù)的及時(shí)提取。
云時(shí)代企業(yè)數(shù)據(jù)挖掘也面臨如下挑戰(zhàn)。
挖掘效率:進(jìn)入云計(jì)算時(shí)代后,BI的思路發(fā)生了轉(zhuǎn)換。以前是基于封閉的企業(yè)數(shù)據(jù)進(jìn)行挖掘,而面對(duì)引入互聯(lián)網(wǎng)應(yīng)用后海量的異構(gòu)數(shù)據(jù)(據(jù)預(yù)計(jì)到2020年,爆發(fā)式增長(zhǎng)的數(shù)據(jù)量將突破35ZB(1ZB=10億TB))時(shí),目前并行挖掘算法的效率很低。
多源數(shù)據(jù):引入云計(jì)算后,企業(yè)數(shù)據(jù)的位置有可能在提供公有云服務(wù)的平臺(tái)上,也可能在企業(yè)自建的私有云上,如何面對(duì)不同的數(shù)據(jù)源進(jìn)行挖掘也是一個(gè)挑戰(zhàn)。 如圖1所示。
異構(gòu)數(shù)據(jù):Web數(shù)據(jù)的最大特點(diǎn)就是半結(jié)構(gòu)化,如文檔、報(bào)表、網(wǎng)頁(yè)、聲音、圖像、視頻等,而云計(jì)算帶來(lái)了大量的基于互聯(lián)網(wǎng)模式提供的SaaS應(yīng)用,如何梳理有效數(shù)據(jù)是一個(gè)挑戰(zhàn)。
SaaS應(yīng)用的數(shù)據(jù)挖掘希望能夠通過(guò)海量數(shù)據(jù)存儲(chǔ)平臺(tái),引入快速并行的挖掘算法,提高數(shù)據(jù)挖掘的質(zhì)量。
適合云應(yīng)用數(shù)據(jù)挖掘的模式建議
數(shù)據(jù)倉(cāng)庫(kù)建模階段
為了應(yīng)對(duì)SaaS應(yīng)用大量異構(gòu)數(shù)據(jù),引入XML標(biāo)記和交換數(shù)據(jù)。由于XML能夠使不同來(lái)源的結(jié)構(gòu)化數(shù)據(jù)很容易地結(jié)合在一起,因而使搜索多樣的不兼容的數(shù)據(jù)庫(kù)成為可能,從而為解決Web數(shù)據(jù)挖掘難題帶來(lái)了希望。XML的擴(kuò)展性和靈活性允許XML描述不同種類應(yīng)用軟件中的數(shù)據(jù),從而能描述搜集的Web頁(yè)中的數(shù)據(jù)記錄。
引入MapReduce算法,提高數(shù)據(jù)抽取轉(zhuǎn)換的效率。MapReduce算法是Google提出的一個(gè)軟件架構(gòu),用于大規(guī)模數(shù)據(jù)集(大于1TB)的并行運(yùn)算。當(dāng)前的實(shí)現(xiàn)方法是指定一個(gè)Map(映射)函數(shù)用來(lái)把一組鍵值對(duì)映射成一組新的鍵值對(duì),指定并發(fā)的Reduce(化簡(jiǎn))函數(shù)用來(lái)保證所有映射的鍵值對(duì)中的每一個(gè)共享相同的鍵組。
MapReduce更適合如下場(chǎng)景。
ETL(數(shù)據(jù)提取轉(zhuǎn)化加載)類的應(yīng)用:從多個(gè)不同的源讀取日志信息;分析以及清理日志數(shù)據(jù);執(zhí)行復(fù)雜的變換,比如“會(huì)話轉(zhuǎn)換”;決定存儲(chǔ)什么樣的屬性以及把信息裝載到DBMS或者其他存儲(chǔ)引擎中。
復(fù)雜分析應(yīng)用:這種挖掘類型的應(yīng)用需要對(duì)數(shù)據(jù)進(jìn)行多步驟的計(jì)算和處理,通常一個(gè)程序的輸出會(huì)是另外一個(gè)程序的輸入,因此很難用單個(gè)SQL語(yǔ)句來(lái)表示,這種應(yīng)用場(chǎng)合下,MapReduce是很好的候選方案。
半結(jié)構(gòu)化數(shù)據(jù):因?yàn)椴恍枰獙?duì)數(shù)據(jù)的存儲(chǔ)進(jìn)行格式定義,所以MapReduce比較適合處理半結(jié)構(gòu)化數(shù)據(jù),這些數(shù)據(jù)通常都是一些鍵值對(duì)。這些場(chǎng)合下,MapReduce非常適合做ETL的事情。
快速實(shí)施的系統(tǒng):完善和健壯的低成本開源解決方案是MapReduce最大的優(yōu)點(diǎn)。
圖2 數(shù)據(jù)挖掘模式圖引入HDFS的分布式存儲(chǔ)模式。HDFS系統(tǒng)簡(jiǎn)單,利于提高實(shí)施效率,適合海量數(shù)據(jù)挖掘。HDFS架構(gòu)基于GFS體系架構(gòu)(Google File System,簡(jiǎn)稱GFS,是由Google設(shè)計(jì)并實(shí)現(xiàn)的一個(gè)分布式文件系統(tǒng),基于大量安裝有Linux操作系統(tǒng)的普通PC構(gòu)成的集群系統(tǒng)),但比GFS架構(gòu)精簡(jiǎn)。GFS和HDFS都采用“單一主控機(jī)+多臺(tái)工作機(jī)”的模式,通過(guò)數(shù)據(jù)分塊和復(fù)制(多副本,一般是3)來(lái)提供更高的可靠性和性能。GFS允許文件被多次或者多個(gè)客戶端同時(shí)打開以追加數(shù)據(jù),以記錄為單位。而在HDFS中,文件只允許一次打開并追加數(shù)據(jù)。GFS中采用主從模式備份Master的系統(tǒng)元數(shù)據(jù),當(dāng)主Master失效時(shí),可以通過(guò)分布式選舉備機(jī)接替主Master繼續(xù)對(duì)外提供服務(wù),而由于Replication及主備切換本身有一定的復(fù)雜性,HDFS Master的持久化數(shù)據(jù)只寫入到本機(jī)(可能寫入多份存放到Master機(jī)器的多個(gè)磁盤中防止某個(gè)磁盤損害),出現(xiàn)故障時(shí)需要人工介入。GFS通過(guò)內(nèi)部采用Copy-on-Write的數(shù)據(jù)結(jié)構(gòu)實(shí)現(xiàn)集群快照功能,而HDFS不提供快照功能。
引入Hive架構(gòu)。Hive是建立在Hadoop上的數(shù)據(jù)倉(cāng)庫(kù)基礎(chǔ)構(gòu)架,是一種可以存儲(chǔ)、查詢和分析Hadoop中大規(guī)模數(shù)據(jù)的機(jī)制,提供了一系列工具用來(lái)進(jìn)行數(shù)據(jù)ETL操作。Hive定義了簡(jiǎn)單的類SQL查詢語(yǔ)言,稱為HQL,它允許熟悉SQL的用戶查詢數(shù)據(jù)。這個(gè)語(yǔ)言也允許熟悉MapReduce開發(fā)者自定義Mapper和Reducer來(lái)處理內(nèi)建的Mapper 和Reducer無(wú)法完成的復(fù)雜分析工作。
數(shù)據(jù)挖掘階段
引入數(shù)據(jù)分析中間件,提供數(shù)據(jù)處理、數(shù)據(jù)探索、數(shù)據(jù)建模及模型應(yīng)用等一系列功能,開發(fā)多種數(shù)據(jù)挖掘算法和統(tǒng)計(jì)建模方法,并能夠方便、快速、高效地處理海量數(shù)據(jù),為商業(yè)智能的應(yīng)用提供更方便、更靈活的工具和服務(wù)。
數(shù)據(jù)呈現(xiàn)階段
BI作為云計(jì)算的一種SaaS服務(wù)提供給企業(yè),建立行業(yè)數(shù)據(jù)庫(kù)。面對(duì)林林總總的SaaS應(yīng)用,BI同樣可作為一種SaaS服務(wù)提供給企業(yè)。同時(shí),數(shù)據(jù)挖掘工具進(jìn)行數(shù)據(jù)分析,可以發(fā)現(xiàn)重要的數(shù)據(jù)模式,這對(duì)構(gòu)建知識(shí)庫(kù)做出了巨大貢獻(xiàn)——數(shù)據(jù)和信息之間的鴻溝要求系統(tǒng)地開發(fā)數(shù)據(jù)挖掘工具,將數(shù)據(jù)“墳?zāi)?rdquo;轉(zhuǎn)換成知識(shí)“金塊”。
數(shù)據(jù)挖掘模式圖
我們?cè)O(shè)計(jì)的數(shù)據(jù)挖掘模式圖如圖2所示。
企業(yè)數(shù)據(jù)層:企業(yè)數(shù)據(jù)來(lái)源于各類應(yīng)用,如 SaaS應(yīng)用、企業(yè)內(nèi)部應(yīng)用數(shù)據(jù)和專有云應(yīng)用。
數(shù)據(jù)倉(cāng)庫(kù)層:主要引入HDFS分布存儲(chǔ)系統(tǒng)和Hive體系架構(gòu),通過(guò)MapReduce算法對(duì)數(shù)據(jù)梳理和提取。
數(shù)據(jù)挖掘?qū)樱阂牖赬ML數(shù)據(jù)分析中間件,實(shí)現(xiàn)統(tǒng)計(jì)查詢和數(shù)據(jù)挖掘功能。
數(shù)據(jù)分析與BI應(yīng)用層:將BI以SaaS服務(wù)的模式提供給企業(yè)使用。
總結(jié)
隨著云時(shí)代的到來(lái),企業(yè)面臨的應(yīng)用方式更加多元化,通過(guò)云的手段提供海量數(shù)據(jù)挖掘的方法,提高了挖掘的效率,增加了挖掘的精度,更利于挖掘應(yīng)用的推廣以及專業(yè)的行業(yè)知識(shí)庫(kù)的構(gòu)建。