鄭宇煜 陳栩聰 丘洪偉
【摘 要】隨著互聯網時代日新月異的發展,人們在獲取龐大信息量的同時,如何從中挖掘出有用的信息成為了當今世界的一大難題。傳統的數據挖掘算法在海量的信息下往往因為巨大的計算量導致速度減慢甚至無法運行,這對傳統算法來說毫無疑問是瓶頸。解決這一問題的有效方法就是云計算平臺。云計算擅長處理大規模的數據和計算。將傳統數據挖掘算法部署到設計云計算平臺上運行,上述瓶頸問題就可以解決了。
【關鍵詞】云計算;數據挖掘;系統架構;并行化
中圖分類號: TP311.13;F49 文獻標識碼: A 文章編號: 2095-2457(2019)36-0196-002
DOI:10.19694/j.cnki.issn2095-2457.2019.36.092
0 引言
當今時代,在網絡技術的推廣與發展下,網絡帶來海量的信息,人們正處于“被信息淹沒,但又渴求知識”的困境。而隨著互聯網的快速發展、數據庫技術以及信息化水平的日趨完善,人類的知識儲備量正以指數方式高速增長。此時的人類迫切需要一種高端技術,來處理這些雜亂無章的數據,這種技術需要將傳統數據分析法與處理數據的復雜算法有機的結合在一起。因此,數據挖掘技術在此環境下誕生,將海量數據去假求真,提取出對人類有用的信息并轉化為知識。然而,很多傳統的數據挖掘算法僅僅適用于小規模輸入數據,倘若大量輸入數據,它們則會因計算量的增加而導致速度減慢,甚至無法運行。
云計算的誕生正是為了解決這項瓶頸,它更實用于海量的數據處理和計算能力的巨大需求。將云計算技術應用到數據挖掘算法中去,這給數據挖掘領域解決瓶頸問題帶來來新的希望。想要在數據挖掘算法中引入云計算思維,關鍵在于實現相關數據挖掘算法的并行化,使之能夠借助云計算平臺進行海量計算以及保持高效率來處理海量數據。
云計算的概念最早是由美國谷歌公司提出,發展到如今,云計算已經在全球范圍內形成了一個龐大的市場,全世界大部分IT廠商都已根據自身情況制定了“云計算計劃”。比較著名的案例有:IBM公司于2007年8月推出的“藍云”計劃;谷歌公司在2007年10月推出的“消費云”計劃;雅虎公司也已使用開源展開來自己的云計算計劃。其中做的最出色的是谷歌公司制定的計劃,該計劃在實施過程中主要在全球搜索方面的具有強大的處理能力。
而我國的政府、學術界和產業界也早已對云計算的研究高度重視,相關的研究計劃如雨后春筍般快速涌現出來。其中值得一提的有關云計算研究的專項計劃有:國家“863計劃”、“973計劃”、國家自然科學基金等等。而早在2008年初,美國IBM公司就與無錫市政府合作創建來無錫軟件園云計算中心;同年1月,360安全企業計算也聯合VMware發布了“云安全”解決方案;此外還有中國聯通、中國電信等網絡運營商也都有布局云計算計劃。
1 云計算
1.1 云計算的定義
云計算是一種分布在大規模數據中心,能動態的提供各種服務器資源以滿足電商產業、科研等領域需求的計算平臺。它可以被看做是并行計算、分布式計算和網格計算的發展。云計算利用虛擬化技術,對于不同用戶的不同需求來提供不同的服務,主要提供所需的虛擬計算和系統資源,最終使普通用戶也能通過該技術實現海量數據操作以及大規模并行化計算,此外還為搭建統一開放的知識網絡系統提供了底層支持。
1.2 云計算的特點
1)規模大。云計算技術的使用需要具備一定規模的硬件基礎,比如Google實現全球搜索處理使用的云計算服務器超過100萬,而其他的IT廠商如Yahoo、IBM、微軟等的云平臺則均擁有幾十萬臺服務器。云需要的規模大,反過來它帶來的收益也是巨大的,它能賦予使用者超前的計算能力。
2)虛擬化。云計算的使用不受用戶地點、終端的限制。用戶請求的服務將在遠方的“云”中運算,并將所需結果返回給用戶。
3)高可靠性。云計算通過副本和相關策略進行容錯,通過計算節點同構可互換等措施來保障服務的可靠性。因此“云”的可靠性高于本地計算機。
4)通用性。云計算可以使用多種應用,多個平臺,因此它還具有通用性的特點。
1.3 云計算的架構
云計算是一個底層透明、高伸縮性、高可靠性且安全的底層架構,它具有友好的監控和維護接口,并能根據用戶所需的服務抽象地將計算和存儲資源進行動態分配。
要想使用“云”,只需根據應用程序接口規范來調用所需資源,而在不使用“云”的時候,則需要通過提高系統吞吐量來減少所需硬件的其他投資,這需要花更多的時間和精力。而大部分用戶都只關心業務都邏輯實現,那么,針對數據挖掘實現,要想得到更加滿意的結果,可以將各種算法都部署到云計算平臺中去運行,接著通過該平臺的接口或控制面板來響應目標時間。
1.4 現有云計算平臺簡介
現階段所擁有的云計算平臺,已逐漸邁入成熟階段了。比如在數據存儲方面,Google Big table與Amazon Simple Storage Service等為實現龐大數據的分布式訪問與存儲提供了較為不錯的支持。而在計算方面,Google App Engine基于云計算設計實現的應用已可以便捷的部署其計算資源。
2 云計算環境下的數據挖掘
2.1 數據挖掘的任務
數據挖掘的主要任務,即是將數據中的隱藏模式改為顯示模式。目前能夠發現的模式一般分為這兩種:描述型模式和預測型模式。描述型模式,將存在的數據的特性進行刻畫并描述,找出存在的一般規律。預測型模式,通過時間時間序列,以時間為中心對過去的值和現在的值對未來的值進行預測。
2.2 基于云計算的數據挖掘的系統架構
2.2.1 傳統數據挖掘
傳統數據挖掘,主要有聚類分析、分類分析、回歸分析等。聚類分析,針對數據的相似性和差異性歸分類別;分類分析,與聚類分析類似,分類類別可以將數據歸分到已經定好的類中;回歸分析,通過函數之間的映射關系發現屬性值之間的關系。
然而傳統的數據挖掘技術難以應對當今復雜、龐大的數據信息。一方面是執行效率低下,傳統數據挖掘技術主要是集中在底層開發,難以實現數據處理的并行化,因而在處理TB級以上的數據時速度很慢。另一方面是精度低,傳統的數據挖掘難以在數據量提升的情況下保持準確的計算,尤其難以應對結構化的數據。
2.2.2 基于云計算的數據挖掘系統模型
目標系統是搭建于云計算之上的數據挖掘系統,通過用戶界面和開放接口為各類終端用戶提供服務。用戶根據需求發送任務,云端服務器將根據用戶需求動態分配系統的計算和存儲能力,用戶方面也無需了解系統的實現和處理方法,系統執行相應程序并返回數據挖掘結果。
數據挖掘系統模塊自底向上可以抽象的劃分為三個模塊,分別是算法模塊、應用模塊、任務模塊。最底層為目標系統,主要用來提供應用程序接口;而最頂層為開放和用戶接口,用戶可通過該接口來調用算法程序,并植入到自己的程序應用中,這也體現了應用的開放性。接下來,本文將按自底向上的順序來介紹中間各層提供的服務。
1)算法層。該層使用所提供的數據源,來實現算法的使用,以及管理相應的接口。在數據集具有噪聲、異構時,調用數據清洗算法針對該數據集進行處理,再存入云平臺的存儲中執行數據挖掘算法;若數據集正常,則直接調用數據挖掘算法服務。
2)應用層。應用層對于整個數據挖掘流程所涉及的數據、算法之間的關系與順序進行描述,以更好的維護應用接口和調用服務。該層以插件方式管理各種任務定義文件,病應用注冊與注銷服務來管理模塊,以此來維護維護相應應用的接口和調用服務。
3)用戶層。該層具有授權功能,可用來提供用戶身份驗證。主要為用戶注冊、驗證與授權服務提供相應的可用接口。此外,為來保證平臺的安全性,還將授權信息作為調用下層各服務的通行證。
以上的各層均使用通訊語言的形式以提高各層的支持性,最后通過開放接口模式或最頂層的用戶界面來對用戶進行開放。該目標平臺架構還可以根據用戶本身的需要對其他任意層進行開發,最后將所需要的服務置入系統內,這樣的舉措大大提高了系統的可用性和開放性,也是傳統數據挖掘平臺難以實現的。
3 結論
本文展示了云計算開發平臺的系統模型,針對現階段傳統數據挖掘系統和云計算環境下進行了說明和比較。傳統的數據挖掘針對世界日益增長的數據量心有余而力不足,而云計算在處理大規模的數據和計算方面則是得心應手,所以將兩者進行結合開發云計算數據挖掘平臺就成了解決傳統數據挖掘難以解決的海量數據中的數據挖掘的問題。
【參考文獻】
[1]紀俊.一種基于云計算的數據挖掘平臺架構設計與實現[D].青島:青島大學,2009.
[2]汪明.數據挖掘綜述[J].河北軟件職業技術學院學報,2012,14(1):45-48.
[3]李軍華.云計算及若干數據挖掘算法的MapReduce化研究[D].成都:電子科技大學,2010.
[4]張建勛,古志民,鄭超.云計算研究進展綜述[J].計算機應用研究,2010,27(2):429-433.
[5]羅偉.數字校園云平臺的設計與實現[D].廣東:華南理工大學,2012.