大數據開發涉及到的關鍵技術有哪些?
大數據本身是一種現象而不是一種技術。大數據技術是一系列使用非傳統的工具來對大量的結構化、半結構化和非結構化數據進行處理,從而獲得分析和預測結果的數據處理技術。
大數據價值的完整體現需要多種技術的協同。大數據關鍵技術涵蓋數據存儲、處理、應用等多方面的技術,根據大數據的處理過程,可將其分為大數據采集、大數據預處理、大數據存儲及管理、大數據處理、大數據分析及挖掘、大數據展示等。
大數據采集技術
大數據采集技術是指通過 RFID 數據、傳感器數據、社交網絡交互數據及移動互聯網數據等方式獲得各種類型的結構化、半結構化及非結構化的海量數據。
因為數據源多種多樣,數據量大,產生速度快,所以大數據采集技術也面臨著許多技術挑戰,必須保證數據采集的可靠性和高效性,還要避免重復數據。
大數據的數據源主要有運營數據庫、社交網絡和感知設備 3 大類。針對不同的數據源,所采用的數據采集方法也不相同。
大數據預處理技術
大數據預處理技術主要是指完成對已接收數據的辨析、抽取、清洗、填補、平滑、合并、規格化及檢查一致性等操作。
因獲取的數據可能具有多種結構和類型,數據抽取的主要目的是將這些復雜的數據轉化為單一的或者便于處理的結構,以達到快速分析處理的目的。
通常數據預處理包含 3 個部分:數據清理、數據集成和變換及數據規約。
1. 數據清理
數據清理主要包含遺漏值處理(缺少感興趣的屬性)、噪音數據處理(數據中存在錯誤或偏離期望值的數據)和不一致數據處理。
- 遺漏數據可用全局常量、屬性均值、可能值填充或者直接忽略該數據等方法處理。
- 噪音數據可用分箱(對原始數據進行分組,然后對每一組內的數據進行平滑處理)、聚類、計算機人工檢查和回歸等方法去除噪音。
- 對于不一致數據則可進行手動更正。
2. 數據集成
數據集成是指把多個數據源中的數據整合并存儲到一個一致的數據庫中。這一過程中需要著重解決 3 個問題:模式匹配、數據冗余、數據值沖突檢測與處理。
- 由于來自多個數據集合的數據在命名上存在差異,因此等價的實體常具有不同的名稱。對來自多個實體的不同數據進行匹配是處理數據集成的首要問題。
- 數據冗余可能來源于數據屬性命名的不一致,可以利用皮爾遜積矩來衡量數值屬性,對于離散數據可以利用卡方檢驗來檢測兩個屬性之間的關聯。
- 數據值沖突問題主要表現為,來源不同的統一實體具有不同的數據值。數據變換的主要過程有平滑、聚集、數據泛化、規范化及屬性構造等。
3. 數據規約
數據規約主要包括數據方聚集、維規約、數據壓縮、數值規約和概念分層等。
使用數據規約技術可以實現數據集的規約表示,使得數據集變小的同時仍然近于保持原數據的完整性。
在規約后的數據集上進行挖掘,依然能夠得到與使用原數據集時近乎相同的分析結果。
大數據存儲及管理技術
大數據存儲及管理的主要目的是用存儲器把采集到的數據存儲起來,建立相應的數據庫,并進行管理和調用。
在大數據時代,從多渠道獲得的原始數據常常缺乏一致性,數據結構混雜,并且數據不斷增長,這造成了單機系統的性能不斷下降,即使不斷提升硬件配置也難以跟上數據增長的速度。這導致傳統的處理和存儲技術失去可行性。
大數據存儲及管理技術重點研究復雜結構化、半結構化和非結構化大數據管理與處理技術,解決大數據的可存儲、可表示、可處理、可靠性及有效傳輸等幾個關鍵問題。
具體來講需要解決以下幾個問題:海量文件的存儲與管理,海量小文件的存儲、索引和管理,海量大文件的分塊與存儲,系統可擴展性與可靠性。
面對海量的 Web 數據,為了滿足大數據的存儲和管理,Google 自行研發了一系列大數據技術和工具用于內部各種大數據應用,并將這些技術以論文的形式逐步公開,從而使得以 GFS、MapReduce、BigTable 為代表的一系列大數據處理技術被廣泛了解并得到應用,同時還催生出以 Hadoop 為代表的一系列大數據開源工具。
從功能上劃分,這些工具可以分為分布式文件系統、NoSQL 數據庫系統和數據倉庫系統。這 3 類系統分別用來存儲和管理非結構化、半結構化和結構化數據。
大數據處理
大數據的應用類型很多,主要的處理模式可以分為流處理模式和批處理模式兩種。批處理是先存儲后處理,而流處理則是直接處理。
1. 批處理模式
Google 公司在 2004 年提出的 MapReduce 編程模型是最具代表性的批處理模式。
MapReduce 模型首先將用戶的原始數據源進行分塊,然后分別交給不同的 Map 任務去處理。Map 任務從輸入中解析出 key/value 對集合,然后對這些集合執行用戶自行定義的 Map 函數以得到中間結果,并將該結果寫入本地硬盤。Reduce 任務從硬盤上讀取數據之后,會根據 key 值進行排序,將具有相同 key 值的數據組織在一起。最后,用戶自定義的 Reduce 函數會作用于這些排好序的結果并輸出最終結果。
MapReduce 的核心設計思想有兩點:
- 將問題分而治之,把待處理的數據分成多個模塊分別交給多個 Map 任務去并發處理。
- 把計算推到數據而不是把數據推到計算,從而有效地避免數據傳輸過程中產生的大量通信開銷。
2. 流處理模式
流處理模式的基本理念是,數據的價值會隨著時間的流逝而不斷減少。因此,盡可能快地對最新的數據做出分析并給出結果是所有流處理模式的主要目標。
需要采用流處理模式的大數據應用場景主要有網頁點擊數的實時統計,傳感器網絡,金融中的高頻交易等。
流處理模式將數據視為流,將源源不斷的數據組成數據流。當新的數據到來時就立刻處理并返回所需的結果。
數據的實時處理是一個很有挑戰性的工作,數據流本身具有持續到達、速度快、規模巨大等特點,因此,通常不會對所有的數據進行永久化存儲,同時,由于數據環境處在不斷的變化之中,系統很難準確掌握整個數據的全貌。
由于響應時間的要求,流處理的過程基本在內存中完成,其處理方式更多地依賴于在內存中設計巧妙的概要數據結構。內存容量是限制流處理模式的一個主要瓶頸。
大數據分析及挖掘技術
大數據處理的核心就是對大數據進行分析,只有通過分析才能獲取很多智能的、深入的、有價值的信息。
越來越多的應用涉及大數據,這些大數據的屬性,包括數量、速度、多樣性等都引發了大數據不斷增長的復雜性,所以,大數據的分析方法在大數據領域就顯得尤為重要,可以說是決定最終信息是否有價值的決定性因素。
利用數據挖掘進行數據分析的常用方法主要有分類、回歸分析、聚類、關聯規則等,它們分別從不同的角度對數據進行挖掘。
1.分類
分類是找出數據庫中一組數據對象的共同特點并按照分類模式將其劃分為不同的類。
其目的是通過分類模型,將數據庫中的數據項映射到某個給定的類別。它可以應用到客戶的分類、客戶的屬性和特征分析、客戶滿意度分析、客戶的購買趨勢預測等。
2.回歸分析
回歸分析方法反映的是事務數據庫中屬性值在時間上的特征。
該方法可產生一個將數據項映射到一個實值預測變量的函數,發現變量或屬性間的依賴關系,其主要研究問題包括數據序列的趨勢特征、數據序列的預測及數據間的相關關系等。它可以應用到市場營銷的各個方面,如客戶尋求、保持和預防客戶流失活動、產品生命周期分析、銷售趨勢預測及有針對性的促銷活動等。
3.聚類
聚類是把一組數據按照相似性和差異性分為幾個類別。
其目的是使得屬于同一類別的數據間的相似性盡可能大,不同類別中的數據間的相似性盡可能小。它可以應用于客戶群體的分類、客戶背景分析、客戶購買趨勢預測、市場的細分等。
4.關聯規則
關聯規則是描述數據庫中數據項之間所存在的關系的規則。即根據一個事務中某些項的出現可推導出另一些項在同一事務中也會出現,即隱藏在數據間的關聯或相互關系。
在客戶關系管理中,通過對企業的客戶數據庫里的大量數據進行挖掘,可以從大量的記錄中發現有趣的關聯關系,找出影響市場營銷效果的關鍵因素,為產品定位、定價,客戶尋求、細分與保持,市場營銷與推銷,營銷風險評估和詐騙預測等決策支持提供參考依據。
大數據展示技術
在大數據時代下,數據井噴似地增長,分析人員將這些龐大的數據匯總并進行分析,而分析出的成果如果是密密麻麻的文字,那么就沒有幾個人能理解,所以我們就需要將數據可視化。
圖表甚至動態圖的形式可將數據更加直觀地展現給用戶,從而減少用戶的閱讀和思考時間,以便很好地做出決策。下圖可以清晰地展示大企業職員相互之間的流向。
可視化技術是最佳的結果展示方式之一,其通過清晰的圖形圖像展示直觀地反映出最終結果。
數據可視化是將數據以不同的視覺表現形式展現在不同系統中,包括相應信息單位的各種屬性和變量。
數據可視化技術主要指的是技術上較為高級的技術方法,這些技術方法通過表達、建模,以及對立體、表面、屬性、動畫的顯示,對數據加以可視化解釋。
傳統的數據可視化工具僅僅將數據加以組合,通過不同的展現方式提供給用戶,用于發現數據之間的關聯信息。
隨著大數據時代的來臨,數據可視化產品已經不再滿足于使用傳統的數據可視化工具來對數據倉庫中的數據進行抽取、歸納及簡單的展現。
新型的數據可視化產品必須滿足互聯網上爆發的大數據需求,必須快速收集、篩選、分析、歸納、展現決策者所需要的信息,并根據新增的數據進行實時更新。因此,在大數據時代,數據可視化工具必須具有以下特性:
1.實時性
數據可視化工具必須適應大數據時代數據量的爆炸式增長需求,必須快速收集分析數據,并對數據信息進行實時更新。
2.操作簡單
數據可視化工具滿足快速開發、易于操作的特性,能滿足互聯網時代信息多變的特點。
3.更豐富的展現
數據可視化工具需要具有更豐富的展現方式,能充分滿足數據展現的多維度要求。
4.多種數據集成支持方式
數據的來源不僅僅局限于數據庫,數據可視化工具將支持團隊協作數據、數據倉庫、文本等多種方式,并能夠通過互聯網進行展現。
數據可視化技術是一個新興領域,有許多新的發展。
企業獲取數據可視化功能主要通過編程和非編程兩類工具實現。
主流編程工具包括 3 種類型:從藝術的角度創作的數據可視化工具,比較典型的工具是Processing.js,它是為藝術家提供的編程語言。
從統計和數據處理的角度創作的數據可視化工具,R語言是一款典型的工具,它本身既可以做數據分析,又可以做圖形處理。
介于兩者之間的工具,既要兼顧數據處理,又要兼顧展現效果,D3.js 是一個不錯的選擇,像 D3.js 這種基于 JavaScript 的數據可視化工具更適合在互聯網上互動式展示數據。