近些年,由於以社交網站、基於位置的服務LBS 等為代表的新型資訊產生方式的湧現,以及雲計算、移動和物聯網技術的迅猛發展,無處不在的移動、無線感應器等設備無時不刻都在產生資料, 數以億計使用者的互聯網服務時時刻刻都在產生著資料交互,大資料時代已經到來。 在當下,大資料炙手可熱,不管是企業還是個人都在談論或者從事大資料相關的話題與業務,我們創造大資料同時也被大資料時代包圍。 雖然大資料的市場前景讓人充滿期待,但是在公眾眼中,對於資料量早已逾越TB、增長率驚人、即時性高的大資料,如何分析、管理、利用大資料等工作仍將面臨若干的挑戰。
目前,對於大資料的定義尚未達成完全的共識。 維琪百科對大資料的定義為:所涉及的資料量規模巨大到無法通過目前主流軟體工具,在合理時間內達到獲取、管理、處理、並整理説明企業經營決策更積極目的的資訊。 互聯網資料中心對大資料的定義為:為更經濟地從高頻率的、大容量的、不同結構和類型的資料中獲取價值而設計的新一代構架和技術。 所有對大資料的定義基本上是從大資料的特徵出發,通過這些特徵的闡述和歸納給出其定義。 在這些定義中,可將大資料的特點總結為:規模性(volume)、多樣性(variety)、高速型(velocity)和價值性(value)。
1.大資料的視覺化分析
從最初的資料整合到資料分析,直到最後的資料解釋,資料易用性應當貫穿整大資料分析的流程。 大資料時代的資料量大且資料結構多樣化,其複雜程度早已超過了傳統意義上的關係資料庫。 另外,隨著大資料已經滲透到人們生活的各個領域,很多行業都開始增加對大資料的需求。 但普通使用者往往更關心結果的展示,資料的複雜性限制了普通使用者從大資料中直接獲取知識。 因此,資料的視覺化在進行大資料的分析工作時應當被研究工作者加以重視並進一步提升。
(1)視覺化技術。 視覺化技術是目前解釋大量資料最有效的手段之一,通過將分析結果用形象的視覺化方式向使用者展示結果,且圖形化方式比傳統的文字展示方式更容易理解與接收。 在資料視覺化中,資料結果展現從底層的平臺處理的資料採礦結果中的圖片,映射關係或表格,以簡單,友好,醫用的圖形化,智慧化的形式呈現給使用者供其分析使用。 目前面對大資料常見的視覺化技術有標籤雲(tag cloud)、歷史流(history flow)、空間資訊流(spatial information flow)等。 對級數達到PB 甚至更大的大資料,傳統的圖表方式已經很難實現其視覺化,需引進能夠快速而準確地處理海量資料的科學計算方法。 科學計算可以用2D,3D 的圖形實現資料的視覺化,為數據分心及研究提供了更加直觀的表現形式,其涉及電腦圖形學,影像處理,電腦視覺及圖形化使用者介面等多個研究領域。 資料的視覺化全球最大的商業網站之一eBay 選擇Tableau 公司提供的資料視覺化軟體,使得在給定的時間內,所有員工都能夠看到圖形化的搜索聯繫及監督客戶的回饋及情感分析,為eBay 帶去了商業的洞察力。
(2) Web 視覺化。 網路的飛速發展、網路性能的不斷提升,使得基於Web 的資料可視技術成為一個熱點。 網路上已有很多的Web 圖表工具,它們常用來展現股票、天氣資料等。 目前最為廣泛使用的是JavaScript、Flash、JAVA Applet 等,這些技術都可以實現在Web 上的圖形繪製。 對於需要處理萬級以上的大資料量的科學計算資料,可以採用EJSChart 或者JFreeChart,其繪圖速度快、相容性強且具有良好的交互性,可以作為首選的繪圖工具;對於繪圖工具的開發,可以選擇JavaScript 和Flash,這兩者繪圖速度快且差異不大。 現在很多瀏覽器支援HTML5,包括手機和平板電腦,如果要求具有更好的跨平臺相容性,JavaScript 是個不錯的選擇。
2.資料採礦常用的方法
在大資料時代,資料採礦是最關鍵的工作。 大資料的挖掘是從海量、不完全的、有雜訊的、模糊的、隨機的大型資料庫中發現隱含在其中有價值的、潛在有用的資訊和知識的過程,也是一種決策支援過程。 其主要基於人工智慧,機器學習,模式學習,統計學等。 通過對大資料高度自動化地分析,做出歸納性的推理,從中挖掘出潛在的模式,可以説明企業、商家、使用者調整市場政策、減少風險、理性面對市場,並做出正確的決策。 目前,在很多領域尤其是在商業領域如銀行、電信、電商等,資料採礦可以解決很多問題,包括市場行銷策略制定、背景分析、企業管理危機等。 大資料的挖掘常用的方法有分類、迴歸分析、聚類、關聯規則、神經網路方法、Web 資料採礦等。 這些方法從不同的角度對資料進行挖掘。
(1)分類。 分類是找出資料庫中的一組資料物件的共同特點並按照分類模式將其劃分為不同的類,其目的是通過分類模型,將資料庫中的資料項目映射到摸個給定的類別中。 可以應用到涉及到應用分類、趨勢預測中,如淘寶商鋪將使用者在一段時間內的購買情況劃分成不同的類,根據情況向使用者推薦關聯類的商品,從而增加商鋪的銷售量。
(2)迴歸分析。 迴歸分析反映了資料庫中資料的屬性值的特性,通過函數表達資料對應的關係來發現屬性值之間的依賴關係。 它可以應用到對資料序列的預測及相關關係的研究中去。 在市場行銷中,迴歸分析可以被應用到各個方面。 如通過對本季度銷售的迴歸分析,對下一季度的銷售趨勢作出預測並做出針對性的行銷改變。
(3)聚類。 聚類類似于分類,但與分類的目的不同,是針對資料的相似性和差異性將一組資料分為幾個類別。 屬於同一類別的資料間的相似性很大,但不同類別之間資料的相似性很小,跨類的資料關聯性很低。
(4)關聯規則。 關聯規則是隱藏在資料項目之間的關聯或相互關係,即可以根據一個資料項目的出現推匯出其他資料項目的出現。 關聯規則的挖掘過程主要包括兩個階段:第一階段為從海量原始資料中找出所有的高頻專案組;第二極端為從這些高頻專案組產生關聯規則。 關聯規則挖掘技術已經被廣泛應用於金融行業企業中用以預測客戶的需求,各銀行在自己的ATM 機上通過捆綁客戶可能感興趣的資訊供使用者瞭解並獲取相應資訊來改善自身的行銷。
(5)神經網路方法。 神經網路作為一種先進的人工智慧技術,因其自身自行處理、分佈存儲和高度容錯等特性非常適合處理非線性的以及那些以模糊、不完整、不嚴密的知識或資料為特徵的處理問題,它的這一特點十分適合解決資料採礦的問題。 典型的神經網路模型主要分為三大類:第一類是以用於分類預測和模式識別的前饋式神經網路模型,其主要代表為函數型網路、感知機;第二類是用於聯想記憶和優化演算法的回饋式神經網路模型,以Hopfield 的離散模型和連續模型為代表。 第三類是用於聚類的自組織映射方法,以ART 模型為代表。 雖然神經網路有多種模型及演算法,但在特定領域的資料採礦中使用何種模型及演算法並沒有統一的規則,而且人們很難理解網路的學習及決策過程。
(6) Web資料採礦。 Web資料採礦是一項綜合性技術,指Web 從文檔結構和使用的集合C 中發現隱含的模式P,如果將C看做是輸入,P 看做是輸出,那麼Web 挖掘過程就可以看做是從輸入到輸出的一個映射過程。 其流程如圖所示:
圖1 Web資料挖流程圖
當前越來越多的Web 資料都是以資料流程的形式出現的,因此對Web 資料流程挖掘就具有很重要的意義。 目前常用的Web資料採礦演算法有:PageRank演算法,HITS演算法以及LOGSOM 演算法。 這三種演算法提到的使用者都是籠統的使用者,並沒有區分使用者的個體。 目前Web 資料採礦面臨著一些問題,包括:使用者的分類問題、網站內容時效性問題,使用者在頁面停留時間問題,頁面的鏈入與鏈出數問題等。 在Web 技術高速發展的今天,這些問題仍舊值得研究並加以解決。
3.資料分析技術
資料的分析是大資料處理的核心。 傳統資料分析主要是針對結構化資料,其大致過程為:首先利用資料庫存儲結構化資料,在此基礎上構建資料倉儲,根據需要再構建相應立方體並進行線上分析處理。 這一過程在處理相對較少的結構化資料時非常高效。 但對於大資料而言,分析技術面臨3 個直觀問題:大容量資料、多格式資料及分析速度,這使得標準存儲技術無法對大資料進行存儲,從而需要引進更加合理的分析平臺進行大資料分析。 目前,開源的Hadoop 是廣泛應用的大資料處理技術,它也是分析處理大資料的核心技術。
Hadoop是一個基於JAVA的分散式密集資料處理和資料分析的軟體框架,使用者可以在不了解分散式底層細節的情況下,開發分散式程式,充分利用集群的威力高速運算和存儲。 其基本工作原理為:將規模巨大的資料分解成較小、易訪問的批量資料並分發到多台伺服器來分析。 主要包括檔案系統(HDFS)、資料處理(MapReduce)兩部分功能模組,最底層是HDFS 用來存儲Hadoop 集群中所有存儲節點上的檔,HDFS 上一層是MapReduce 引擎,該引擎由Job Trackers 和Task Trackers 組成。 其組成架構如圖所示:
圖2 Hadoop組成架構圖
鑒於商用的硬體集群上。 所謂商用硬體並非低端硬體,其故障率比低端硬體要低很多。 Hadoop 不需要運行在價格昂貴並且高度可靠的硬體上,即使對於節點故障的幾率較高的龐大集群,HDFS在遇到故障時仍能夠繼續運行且不讓使用者察覺到明顯的中斷,這種設計降低了對機器的維護成本, 尤其是在使用者管理上百台甚至上千台機器時。
Hadoop 的設計是基於一次寫入、多次讀取的高效訪問模式。 每次對資料的分析會涉及到資料所在的整個資料集,這種高資料的輸送量會造成高的時間延遲,對於低延遲的資料訪問,HBase是更好的選擇。 HDFS 採用master/slave 的構架,即一個HDFS集群由一個NameNode(master)和多個DataNode(slave)組成。 NameNode 是一個中心伺服器,負責管理HDFS 的命名空間,並維護HDFS 的所有檔及目錄。 這些資訊以命名空間鏡像檔案和編輯日誌檔的形式永久地保存在本地磁片上。 它還記錄著每個檔中各個塊所在的DataNode 資訊,但不永久保存塊的位置資訊,因為DataNode 會在系統啟動時重新建立新的位置資訊。 同時,NameCode 還負責控制外部Client 的訪問。
DataNode 是HDFS 的工作節點,在集群中一般為一個機器節點一個,負責管理節點上附帶的存儲。 它們根據用戶端需要或NameNode 調度存儲並檢索資料塊(Block),執行創建、刪除和複製資料塊的命令,並定期向NameNode 發送存儲資料塊清單的動態資訊,NameNode 獲取每個DataNode 的動態資訊並據此驗證塊映射和檔案系統中繼資料。
3.2 MapReduce
MapReduce是用於處理大資料的軟體框架。 其核心設計思想為:將問題分塊處理,把計算推到資料而非把資料推向計算。 最簡單的MapReduce應用程式至少包含3 個部分:Map函數、Reduce 函數和main函數,其模型相對簡單,將使用者的原始資料進行分塊,然後交給不同的Map任務區執行Map函數處理輸出中間結果, Reduce函數讀取資料清單並對資料進行排序並輸出最終結果。 其流程如圖所示:
3.3 Hadoop 的優勢及問題
Hadoop 是一個能夠對大量資料進行分散式處理的軟體框架,同時是以一種可靠、高效、可伸縮的方式進行處理。 可靠是因為它假設計算元素和存儲會失敗,因此它維護多個工作資料副本,確保能夠針對失敗的節點重新分佈處理;高效是因為它以並行的方式工作,通過並行處理加快處理速度;可伸縮是說它能夠處理PB 級資料。
但與其他新興科技一樣,Hadoop 同樣面臨一些需要解決的問題。 (1)目前Hadoop 缺乏企業級的資料保護功能,開發人員必須手動設置HDFS 的資料複製參數, 而依賴開發人員來確定複製參數很可能會導致對存儲空間的浪費。 (2) Hadoop 需要投資建設專用的計算集群,但這通常會產生獨立存儲、計算資源以及存儲或CPU 資源利用問題,且這種存儲在與其他程式的共用問題中也存在相容性問題。
4.預測性分析能力
對資料採礦可以讓使用者更好的理解資料,而對大資料進行預測性分析可以讓使用者根據視覺化分析和資料採礦的結果做出一些預測性的判斷。
與傳統的資料分析相比較,大資料分析的一個重要目標就是從海量,資料繁多的資料庫中找出隱藏的規律,使資料庫發揮最大的價值。 資料的價值遠不止于資料本身,而是隱藏在資料之間的關係隱含的知識。 比如,現在企業與客戶之間的接觸途道和介面越來越豐富,而這些途徑承載了客戶與企業之間、客戶與產品之間、客戶與品牌之間的大量互動資訊與資料。 如果可將這些資料整合,企業便有更多的機會準確瞭解現有的使用者及挖掘潛在的使用者群體。
為了充分發揮和利用大資料的價值,對視覺化分析及資料採礦後的結果進行預測性分析。 在大資料時代,對資料進行預測性分析,為企業帶來了洞察客戶的機會,更全面更深入地瞭解和把握客戶的需求特徵、興趣愛好、消費傾向和消費心理等,説明企業提升運營管理能力及績效。
5.結論
隨著資料爆炸式的增長,我們正被各種資料包圍著。 正確利用大資料將給人們帶來極大的便利,但與此同時也給傳統的資料分析帶來了技術的挑戰。 本文對大資料的分析關鍵技術進行了詳細的分析,主要闡述了大資料分析時的視覺化技術、挖掘技術、分析技術以資料採礦後的預測性分析問題。 總的來說,雖然我們已經進入大資料時代,但是「大資料」技術還仍處於起步階段,進一步地開發以完善大資料分析技術仍舊是大資料研究課題的熱點。