一種基于大數據的數據分析方法
【技術領域】
[0001]本發明涉及數據處理,特別涉及一種大數據分析和挖掘方法。
【背景技術】
[0002]面對增長迅速的數據量,如何從數據中發掘有用的信息成為當前大多數數據挖掘系統面臨的問題。大數據集的數據分析與挖掘系統需要具備的特性包括(I)數據適應性:系統可接受多種類型的數據,避免系統對存儲的數據的類型、結構和數據完整性的強要求,從而避免通常的數據倉庫對數據的強要求帶來的問題;(2)敏捷性:系統能夠適應數據遞增且更新頻繁的應用場景;(3)分析深度:提供對數據分析多角度、多切面的分析,可便捷得加入復雜的概率統計和機器學習算法,適應多類型數據分析需求。
[0003]關系型數據庫通常提供進行數據分析與挖掘的數據分析工具,然而,以關系型數據庫為基礎的數據挖掘系統存在以下幾個弊端:
[0004](I)在龐大數據量背景下,數據迀移所帶來的時間損失巨大,在此種情況下,把計算力移向數據是比數據迀移到計算系統更有效率的方法;
[0005](2)只能通過抽樣的方式使得數據量縮小到內存可接受的范圍內,數據的抽樣通常會導致數據信息量丟失;
[0006](3)不斷增加的數據很容易造成數據庫索引的不斷增加,索引增加的滯后性容易導致數據庫的處理速度降低。
[0007]因此數據庫系統在數據處理效率和可處理的數據量無法滿足當前大數據量的爆炸式增長。針對相關技術中所存在的上述問題,目前尚未提出有效的解決方案。
【發明內容】
[0008]為解決上述現有技術所存在的問題,本發明提出了一種基于大數據的數據分析方法,包括:
[0009]通過可視化的界面接收用戶定義的數據挖掘過程,并配置相關的組件信息,實現圖形化的數據流程處理;生成符合Hadoop規范的代碼,用戶通過參數配置界面配置需用戶定義的參數;然后將用戶定義的數據挖掘過程模型轉換成可在Hadoop上運行的代碼,該轉換包括過程模型分析、依賴關系分析、代碼模板解析;將數據挖掘組件連接起來構成數據挖掘過程,所述數據挖掘組件封裝不同的數據操作邏輯,分成數據挖掘算法組件、連接器組件、用戶自定義組件;以Hadoop提供的框架作為數據挖掘過程執行平臺,向執行框架提交代碼,運用云平臺的并行計算能力實現挖掘過程的并行化。
[0010]優選地,該方法還包括:
[0011]用戶通過數據挖掘過程模型組件來定義符合過程邏輯模型的數據挖掘過程,并實現邏輯模型到物理模型的轉換,挖掘過程中的每一步數據操作被抽象成一個數據操作節點,稱為邏輯節點,通過解析邏輯節點的輸入輸出信息、用戶配置參數、節點對應的系統組件元信息來構建物理過程模型,邏輯模型經過系統的后臺解析轉換成物理模型后才能執行;
[0012]用戶通過模型的圖形化方式來實現邏輯模型的定義,數據挖掘過程包括數據收集、數據預處理、數據挖掘和結果展示,其中在數據收集中定義一個或多個數據來源,并在執行過程中完成數據提取工作,通過定義不同的連接器組件來實現對不同數據源的數據提取;在數據預處理中包括數據清理、數據集成和數據選擇,定義過濾、正則匹配組件來實現預處理;運用數據挖掘算法對經過預處理的數據執行挖掘算法,最后將執行結果以數據或圖表的形式展示給用戶。
[0013]優選地,該方法還包括:利用代碼生成引擎完成從邏輯模型到可由執行框架執行的可執行代碼的轉換過程,該轉換分成模型解析與代碼生成;
[0014]所述模型解析包括解析邏輯模型,根據數據挖掘過程模型定義的節點信息來劃分操作子流程,以數據挖掘操作節點為劃分點,以子流程構造任務集,并根據流程的連接順序來定義子流程之間的依賴關系;
[0015]所述代碼生成,根據以上模型解析得到的子流程以及依賴關系生成代碼,數據挖掘組件接收與其相連組件的輸入輸出類型信息,根據輸入輸出類型信息和組件代碼模板,生成相應的代碼,并將處理后的輸出按照輸出模式存儲,其中組件模型包含組件ID、代碼模板、用戶定義參數類與組件元信息,組件ID用于標識組件的唯一性;代碼模板包括了與執行平臺相關的模板信息;用戶自定義參數類是用戶輸入的參數;組件描述元信息包含組件描述、可視化圖標、模板路徑數據;
[0016]所述數據挖掘過程模型被轉換成Java可執行代碼,最后生成一個以用戶定義的數據挖掘過程名稱為類名的主類來控制整個數據挖掘過程,并通過配置模板提供的信息按照模型解析獲得的任務依賴關系構建挖掘代碼。
[0017]本發明相比現有技術,具有以下優點:
[0018]通過定義組件模型,用戶可快速定義數據挖掘過程;實現對數據挖掘過程的可視化定義,以及挖掘過程到可執行代碼的轉換;實現了對多種數據存儲系統的數據訪問。
【附圖說明】
[0019]圖1是根據本發明實施例的基于大數據的數據分析方法的流程圖。
【具體實施方式】
[0020]下文與圖示本發明原理的附圖一起提供對本發明一個或者多個實施例的詳細描述。結合這樣的實施例描述本發明,但是本發明不限于任何實施例。本發明的范圍僅由權利要求書限定,并且本發明涵蓋諸多替代、修改和等同物。在下文描述中闡述諸多具體細節以便提供對本發明的透徹理解。出于示例的目的而提供這些細節,并且無這些具體細節中的一些或者所有細節也可以根據權利要求書實現本發明。
[0021]本發明提出一種可擴展數據分析和挖掘方法,通過定義可重用的數據挖掘組件,對多數據源實現組件復用,提高數據挖掘過程敏捷性。
[0022]圖1是根據本發明實施例的基于大數據的數據分析方法流程圖。
[0023]該方法實現于具有以下系統架構的數據分析系統,包括數據挖掘過程模型、代碼生成引擎、數據挖掘組件模型、執行框架4個模塊。用戶通過可視化的界面來定義數據挖掘過程,并配置相關的組件信息,實現圖形化的數據流程處理模型。為了避免讓用戶重復編寫通用代碼,代碼生成引擎生成符合Hadoop規范代碼,用戶通過系統提供的參數配置界面配置需用戶定義的參數,這些參數最后將會反映到最終生成的代碼中。從用戶定義的數據挖掘過程模型轉換成可在Hadoop上運行的代碼有一個過程分析與代碼生成過程,該過程由代碼生成引擎完成,主要包括了過程模型分析、依賴關系分析、代碼模板解析等工作。數據挖掘過程是通過將組件連接起來構成的,組件為了實現不同的功能,將封裝不同的數據操作邏輯。數據挖掘組件主要分成數據挖掘算法組件、連接器組件、用戶自定義組件三大類。系統以Hadoop提供的框架作為數據挖掘過程執行平臺,通過向執行框架提交代碼的形式,運用云平臺的并行計算能力實現挖掘過程的并行化。
[0024]運用基于模型的開發方法,本發明將軟件過程中使用的算法提取出來形成抽象模型,使用戶無需關心特定算法實現細節,系統以面向組件的方式簡化數據挖掘流程定義和算法組件定義。該方法提高了系統的抽象層次,以一種可擴展的方式實現了數據分析系統的低耦合、高內聚。
[0025]用戶通過數據挖掘過程模型組件來定義數據挖掘過程,數據挖掘過程是一個符合過程邏輯模型的挖掘過程。在邏輯模型中,挖掘過程中的每一步數據操作被抽象成一個數據操作節點,該節點可稱為邏輯節點。系統通過解析邏輯節點的輸入輸出信息、用戶配置參數、節點對應的系統組件元信息來構建物理過程模型。邏輯過程模型與具體實現技術無關。物理模型則是從計算機系統的角度來定義,該模型與系統的實現平臺、編程模型和MapReduce任務調度策略相關。邏輯模型經過系統的后臺解析轉換成物理模型后才能在系統中執行。
[0026]過程模型實現邏輯模型到物理模型的轉換。同時,用戶可通過模型的圖形化方式來實現邏輯模型的定義。物理模型與具體實現相關,物理模型包含了數據挖掘組件模型、模板代碼生成模型等相關內容。
[0027]數據挖掘過程包括數據收集、數據預處理、數據挖掘和結果展示幾個步驟。數據收集主要是指定義一個或多個數據來源,并在執行過程