云計算的出現,使得數據挖掘平臺有了新的發展方向,也使得新一代的數據挖掘平臺成為可能。云計算是能夠提供動態資源、虛擬化和高可用的計算平臺。云計算平臺可被用來開發高性能的應用程序。但是對于數據挖掘來說,海量數據本身具有噪聲、異構、算法復雜、技術復雜等問題,而現在的云計算開發平臺并沒有提供數據規約等功能。因此文章通過對于數據挖掘、云計算的詳細描述和分析,提出了基于云計算的數據挖掘平臺。該平臺架構基于云計算的基礎能力,并符合云計算軟件即服務(SaaS)的設計理念。該平臺還能極大減少運營商、企業在數據挖掘技術上的投入并能加快其挖掘業務的推出,縮短研發周期,進一步提高產品收益。
1.基于云計算的數據挖掘策略
1.1 數據挖掘
數據挖掘是一個從大量的、不完全的、有噪聲的、模糊的、隨機的實際數據中提取隱含在其中的但具有潛在實用信息和知識的過程。從數據挖掘的定義可以看出數據挖掘是知識發現領域的一個重要技術,它涉及到人工智能、機器學習、模式識別、統計學等高技術領域,具體技術包括特征化、關聯、聚類、預測分析等。數據挖掘在互聯網、移動互聯網、電信、金融、科學研究等領域得到了廣泛的應用,例如Facebook 的好友推薦、和淘寶網的商品推薦、銀行的防欺詐分析等。傳統的數據挖掘技術建立在關系型數據庫、數據倉庫之上的,對數據進行計算,找出隱藏在數據中的模型或關系,并在大規模的數據上進行數據訪問和統計計算,整個挖掘的過程需要消耗大量的計算資源以及存儲資源。
隨著云時代的到來和移動互聯網的快速發展,數據規模從MB、級發展到TB、PB 級甚至EB、ZB 級,并且面臨著TB 級的增長速度,數據挖掘的要求和環境也變得越來越復雜,從而形成“數據量的急劇膨脹”和“ 數據深度分析需求的增長”這兩大趨勢,使得40 年來一直適用的數據庫系統架構在海量數據挖掘方面顯得力不從心。
綜合上述,傳統的數據挖掘技術及其體系架構在云時代的海量數據中已經出現了不少問題,其中首先是挖掘效率的問題,傳統的基于單機的挖掘算法或基于數據庫、數據倉庫的挖掘技術及并行挖掘已經很難高效地完成海量數據的分析;其次高昂的軟硬件成本也阻止了云時代數據挖掘系統的發展;最后傳統的體系架構不能完成挖掘算法能力的提供,基本是在以單個算法為整體模塊,用戶只能使用已有的算法或重新編寫算法完成自己獨特的業務。
云計算云計算是一種商業計算模式,它將計算任務分布在大量計算機構成的資源池上,使各種應用系統能夠根據需要獲取計算力、存儲空間和信息服務。同時云計算是并行計算、分布式計算和網格計算的發展,或者說是這些計算科學概念的商業實現。
通常認為云計算包括以下3 個層次的服務:基礎設施即服務(IaaS)、平臺即服務(PaaS)、SaaS;其中IaaS 提供以硬件設備為基礎的計算、存儲和網絡服務,實現了對硬件資源的抽象并服務化提供,使得分布式計算和分布式存儲成為現實。
云計算具有一些特點:
(1)虛擬化。云計算支持用戶在任意位置使用各種終端以獲取應用服務,所請求的資源來自云而不是固定的、有形的實體,并且對于用戶來說只需要使用云提供的服務即可。
(2)通用性。云計算不針對特定的應用,而是可以在云的支撐下構造出千變萬化的應用,同一個云可以同時支撐不同的應用運行。
(3)高可擴展性及超大規模。云的規?梢詣討B擴展,并且這種動態擴展對用戶是透明的,并且不影響用戶的業務和應用。同時這種擴展是超大規模的,如Google 云計算已經擁有上百萬臺服務器,Amazon、IBM、微軟等也擁有幾十萬臺服務器。
(4)可靠性高。云計算使用多副本容錯、多計算節點同構可互換等措施來保障服務的高可靠性。
(5)經濟性好。云的特殊容錯機制導致可以采用廉價的節點來構成云,而云的自動化集中式管理使得大量企業無需負擔日益高昂的數據中心管理成本。云的通用性使資源的利用率較之傳統系統大幅提升,因此用戶可以充分享受云的低成本優勢。
1.3 數據挖掘云化策略
云計算的出現即給數據挖掘帶來了問題和挑戰,也給數據挖掘帶來新的機遇——數據挖掘技術將會出現基于云計算的新模式。如何構建基于云計算的數據挖掘平臺也將是業界面臨的主要問題之一,創建一個用戶參與、開發技術要求不高的、快速響應的數據挖掘平臺也是迫切需要解決的問題。
從業界對云計算的理解來看,云計算動態的、可伸縮的計算能力使得高效的海量數據挖掘成為可能。云計算SaaS 功能的理解和標準化,使得基于的數據挖掘SaaS 化有了技術和理論的支持,也將使得數據挖掘面向大眾化和企業化。文章主要是從基于云計算平臺的數據挖掘服務化、挖掘算法并行化、挖掘算法組件化角度進行構建數據挖掘SaaS 平臺,如圖所示。
如圖1 所示,文章提出的基于云計算的數據挖掘平臺架構采用分層的思想:首先底層支撐采用云計算平臺,并使用云計算平臺提供的分布存儲以及分布式計算能力完成數據挖掘計算能力的并行實現;其次數據挖掘平臺在設計上采用分布式、可插拔組件化思路,支持多算法部署、調度等;最后數據挖掘平臺提供的算法能力采用服務的方式對外暴露,并支持不同業務系統的調用,從而較方便地實現業務系統的推薦、挖掘等相關功能需求。
圖1 基于云計算的數據挖掘平臺總體架構圖
2.數據挖掘平臺云架構
云計算的分布式存儲和分布式計算促使了新一代數據挖掘平臺的變革。圖2 是基于云的數據挖掘平臺架構?紤]到挖掘算法和推薦算法的并行化和分布化是一個專門的、大的課題,因此文章暫不包含具體算法的并行化和云化的內容。
如圖2 所示,該平臺是基于云計算平臺實現的數據挖掘云服務平臺,采用分層設計的思想以及面向組件的設計思路,總體上分為3 層,自下向上依次為:云計算支撐平臺層、數據挖掘能力層、數據挖掘云服務層。
圖2 基于云計算的數據挖掘平臺架構
云計算支撐平臺層
云計算支撐平臺層主要是提供分布式文件存儲、數據庫存儲以及計算能力。中興通訊有自主研發的云計算平臺,該架構可以基于企業自主研發的云計算平臺,也可以基于第三方提供的云計算平臺。
數據挖掘能力層
數據挖掘能力層主要是提供挖掘的基礎能力,包含算法服務管理、調度引起、數據并行處理框架,并提供對數據挖掘云服務層的能力支撐。該層可以支持第三方挖掘算法工具的接入,例如Weka、Mathout 等分布式算法庫,同時也可以提供內部的數據挖掘算法和推薦算法庫。
數據挖掘云服務層
云服務層主要是對外提供數據挖掘云服務,服務能力封裝的接口形式可以是多樣的,包括基于簡單對象訪問協議(SOAP) 的Webservice、、HTTP、XML 或本地應用程序編程接口(API) 等多種形式。云服務層也可以支持基于結構化查詢語言語句的訪問,并提供解析引擎,以自動調用云服務。各個業務系統可以根據數據和業務的需要調用、組裝數據挖掘云服務。
文章提出的基于云計算的數據挖掘平臺與傳統的數據挖掘系統架構相比有高可擴展性、海量數據處理能力、面向服務、硬件成本低廉等優越性,可以支持大范圍分布式數據挖掘的設計和應用。
3.基于云計算數據挖掘平臺的關鍵技術
3.1 云計算技術
分布式計算是解決海量數據挖掘任務,提高海量數據挖掘的有效手段之一,在理論和實踐上已經獲得證實。分布式計算包含了分布式存儲和并行計算兩個層面的內容,而云計算平臺提供了分布式文件存儲和并行的計算能力,因此很好地解決了這兩個層面的內容。下面主要分析幾個主流的分布式文件系統和分布式并行計算框架,以更好地構建云計算數據挖掘平臺的核心支撐能力。
分布式文件系統有效地解決了海量數據存儲問題,并實現了位置透明、移動透明、性能透明、擴展透明、高容錯、高安全、高性能等關鍵功能。目前業界比較流行分布式文件系統有Google 文件系統(GFS)、分布式文件系統(HDFS)、文件系統(KFS),這3 種分布式文件系統都是基于Goolgle 提出的分布式文件系統理論進行研發的。Google提出的GFS 就是解決其海量數據存儲和搜索、分析等問題,而和KFS 是基于GFS 理論基礎上實現的開源系統,并且在商業和學術領域得到了廣泛的應用。
分布式并行計算框架對于高效完成數據挖掘計算任務極其重要,并且它對分布式計算的一些技術細節進行了封裝,例如數據分布、任務并行、任務調度、負載平衡、任務容錯、系統容錯等,使用戶不需要考慮這些細節,而只要考慮任務間的邏輯關系。這樣不僅可以提高研發的效率,還可以降低系統維護的成本。目前典型的分布式計算框架有:
MapReduce 是提出的一個并行計算框架,它可以在大量PC 機上并行執行海量數據的收集和分析任務。它把如何進行任務并行執行、如何進行數據分布、如何容錯、網絡帶寬時延等問題的解決方案編碼,并封裝在了一個庫里面,使用戶只需要執行數據運算即可,而不必關心并行計算、容錯、數據分布、負載均衡等復雜的細節。同時它又對上層應用提供良好簡單的抽象接口。MapReduce 主要應用在搜索、數據倉庫、數據挖掘領域。
Pregel 是Google 提出的迭代處理計算框架,它具有高效、可擴展和容錯的特性,并隱藏了分布式相關的細節,展現給人們的僅僅是一個表現力很強、很容易編程的大型圖算法處理的計算框架。Pregel 的主要應用場景是大型的圖計算,例如交通線路、疾病爆發路徑、WEB 搜索等相關領域。
Dryad 是微軟硅谷研究院創建的研究項目,主要用來提供一個基于windows 操作系統的分布式計算平臺,總體用來支持有向無環圖類 型數據流的并行程序。微軟于年宣布,停止對Dryad 進行版本升級,轉投Hadoop 即MapReduce 計算框架。
目前業界開源的云計算平臺, 包含HDFS 和MapReduce,為海量數據挖掘平臺提供完備的云計算平臺支撐平臺。
3.2 數據匯集調度中心
數據匯集調度中心實現對接入本平臺的業務數據的匯集,可以解決不同數據的規約問題,并支持各種不同的源數據格式。源數據格式支持聯機事務處理系統(OLTP)數據、聯機分析處理系統(OLAP)數據、各種日志數據、爬蟲數據等,同時要提供多種數據同步方式,例如數據庫實時同步、socket 消息同步、文件傳輸協議同步等各種各樣的方式,如圖3所示。
圖3 數據匯集中心
數據匯集調度中心主要是完成對不同類型數據的匯集。本數據匯集調度中心采用模板化設計技術,支持新數據的模板和元數據配置以達到不同業務數據的統一收集和規約。
3.3 服務調度和服務管理技術
為了能夠讓不同的業務系統使用本計算平臺,平臺必須要提供服務調度和服務管理功能。服務調度根據服務的優先級以及服務和資源的匹配情況等進行調度,解決服務的并行互斥、隔離等,保證數據挖掘平臺的云服務是安全、可靠的,并根據服務管控進行調度控制。
服務管理實現統一的服務注冊、服務暴露等功能,不僅支持本地服務能力的暴露,也支持第三方數據挖掘能力的接入,很好地擴展數據挖掘平臺的服務能力。
3.4 挖掘算法并行化技術
挖掘算法并行化是有效利用云計算平臺提供的基礎能力的關鍵技術之一,涉及到算法是否可以并行、以及并行策略的選擇等技術。文章通過K-means 聚類算法并行化并行計算框架來說明挖掘算法的并行化技術[13]。
3.4.1 K-means 算法的主要思想
K-means算法的主要思想是基于使聚類性能指標最小化。這里所用的聚類準則函數是聚類集中每一樣本點到該類簇中心點距離平方之和,并使它最小化。如圖4 所示,K 均值算法的處理流程如下:首先,隨機地選擇k 個對象,每個對象代表一個簇的初始均值和中心;對剩余的每個對象,則根據其與各個簇的均值距離,將它指派到最相似的簇;然后計算每個簇的新均值。這個過程不斷重復,直到準則函數收斂。通常,采用平方誤差準則,其定義如圖(1)所示:
圖(1)K-means算法
其中,E 是數據集中所有對象的平方誤差和,p 是空間中的點,表示給定的對象,mi 是簇Ci 的均值。對于每個簇中的每個對象,首先要求出對象到其簇中心的均值的平方,然后再求和。
圖4 K-means算法流程圖
3.4.2 K-means 并行化思路
是以聚類中心來劃分聚類的,一旦k 個聚類中心確定了,聚類可立即完成。因此,這里主要講述如何并行實現更新聚類中心。
在隨機的初始化k 個聚類中心以后,每一次任務的執行都會更新當前個聚類中心的值。在映射階段,對于每一個樣本OS ,需要計算與其最近的聚類中心Oi (0≤i ≤k -1) ,然后輸出<i,OS >鍵值對。
在化簡(Reducer) 階段,框架會收集屬于相同鍵的值,相當于對每個聚類中心Oi (0≤i ≤k-1) ,而離它最近的樣本都會作為值收集起來。這樣Reducer 里就可以利用這些樣本重新估計出k 個聚類中心,如圖(2)所示:
圖(2)K-means 并行化思路
這樣,在一輪MapReduce 完成后,新的聚類中心也已經計算出來。通過比較本輪聚類中心與上一輪聚類中心差異度,可確定算法是否收斂。
4.結束語
文章通過對數據挖掘和云計算技術的發展分析,提出了基于云計算的數據挖掘平臺架構以及數據挖掘服務化的思路。本平臺不僅僅是基于云計算實現了一個數據挖掘平臺,同時也對數據挖掘平臺進行了化。本平臺可以為運營商、企業提供效益增值的數據挖掘應用,同時也減少了運營商、企業在數據挖掘技術上的投入。運營商、企業即可以創建自己內部的數據挖掘私有云,為內部產品提供數據挖掘服務,也可以提供數據挖掘公用云,為不同的企業提供數據挖掘服務。
核心關注:拓步ERP系統平臺是覆蓋了眾多的業務領域、行業應用,蘊涵了豐富的ERP管理思想,集成了ERP軟件業務管理理念,功能涉及供應鏈、成本、制造、CRM、HR等眾多業務領域的管理,全面涵蓋了企業關注ERP管理系統的核心領域,是眾多中小企業信息化建設首選的ERP管理軟件信賴品牌。
轉載請注明出處:拓步ERP資訊網http://www.lukmueng.com/