大數據開發涉及到的關鍵技術有哪些?

大數據本身是一種現象而不是一種技術。大數據技術是一系列使用非傳統的工具來對大量的結構化、半結構化和非結構化數據進行處理,從而獲得分析和預測結果的數據處理技術。
大數據價值的完整體現需要多種技術的協同。大數據關鍵技術涵蓋數據存儲、處理、應用等多方面的技術,根據大數據的處理過程,可將其分爲大數據採集、大數據預處理、大數據存儲及管理、大數據處理、大數據分析及挖掘、大數據展示等。

大數據採集技術

大數據採集技術是指通過 RFID 數據、傳感器數據、社交網絡交互數據及移動互聯網數據等方式獲得各種類型的結構化、半結構化及非結構化的海量數據。
因爲數據源多種多樣,數據量大,產生速度快,所以大數據採集技術也面臨着許多技術挑戰,必須保證數據採集的可靠性和高效性,還要避免重複數據。
大數據的數據源主要有運營數據庫、社交網絡和感知設備 3 大類。針對不同的數據源,所採用的數據採集方法也不相同。《大數據採集技術概述》教程中會對大數據採集技術做詳細介紹。

大數據預處理技術

大數據預處理技術主要是指完成對已接收數據的辨析、抽取、清洗、填補、平滑、合併、規格化及檢查一致性等操作。
因獲取的數據可能具有多種結構和類型,數據抽取的主要目的是將這些複雜的數據轉化爲單一的或者便於處理的結構,以達到快速分析處理的目的。
通常數據預處理包含 3 個部分:數據清理、數據集成和變換及數據規約。

1)數據清理

數據清理主要包含遺漏值處理(缺少感興趣的屬性)、噪音數據處理(數據中存在錯誤或偏離期望值的數據)和不一致數據處理。

  • 遺漏數據可用全局常量、屬性均值、可能值填充或者直接忽略該數據等方法處理。
  • 噪音數據可用分箱(對原始數據進行分組,然後對每一組內的數據進行平滑處理)、聚類、計算機人工檢查和迴歸等方法去除噪音。
  • 對於不一致數據則可進行手動更正。

2)數據集成

數據集成是指把多個數據源中的數據整合並存儲到一個一致的數據庫中。
這一過程中需要着重解決 3 個問題:模式匹配、數據冗餘、數據值衝突檢測與處理。
由於來自多個數據集合的數據在命名上存在差異,因此等價的實體常具有不同的名稱。對來自多個實體的不同數據進行匹配是處理數據集成的首要問題。
數據冗餘可能來源於數據屬性命名的不一致,可以利用皮爾遜積矩來衡量數值屬性,對於離散數據可以利用卡方檢驗來檢測兩個屬性之間的關聯。
數據值衝突問題主要表現爲,來源不同的統一實體具有不同的數據值。數據變換的主要過程有平滑、聚集、數據泛化、規範化及屬性構造等。
數據規約主要包括數據方聚集、維規約、數據壓縮、數值規約和概念分層等。
使用數據規約技術可以實現數據集的規約表示,使得數據集變小的同時仍然近於保持原數據的完整性。
在規約後的數據集上進行挖掘,依然能夠得到與使用原數據集時近乎相同的分析結果。
《大數據預處理架構和方法》教程中會對大數據預處理技術進行詳細介紹。

大數據存儲及管理技術

大數據存儲及管理的主要目的是用存儲器把採集到的數據存儲起來,建立相應的數據庫,並進行管理和調用。
在大數據時代,從多渠道獲得的原始數據常常缺乏一致性,數據結構混雜,並且數據不斷增長,這造成了單機系統的性能不斷下降,即使不斷提升硬件配置也難以跟上數據增長的速度。這導致傳統的處理和存儲技術失去可行性。
大數據存儲及管理技術重點研究複雜結構化、半結構化和非結構化大數據管理與處理技術,解決大數據的可存儲、可表示、可處理、可靠性及有效傳輸等幾個關鍵問題。
具體來講需要解決以下幾個問題:海量文件的存儲與管理,海量小文件的存儲、索引和管理,海量大文件的分塊與存儲,系統可擴展性與可靠性。
面對海量的 Web 數據,爲了滿足大數據的存儲和管理,Google 自行研發了一系列大數據技術和工具用於內部各種大數據應用,並將這些技術以論文的形式逐步公開,從而使得以 GFS、MapReduce、BigTable 爲代表的一系列大數據處理技術被廣泛瞭解並得到應用,同時還催生出以 Hadoop 爲代表的一系列大數據開源工具。
從功能上劃分,這些工具可以分爲分佈式文件系統、NoSQL 數據庫系統和數據倉庫系統。這 3 類系統分別用來存儲和管理非結構化、半結構化和結構化數據,如圖 1 所示。

 

想學習好大數據可以加我微信號(VIP452141 ) 有視頻資源分享一起學習
圖 1 典型大數據存儲與管理系統及其分類


《Hadoop HDFS分佈式文件系統》教程和《NoSQL非關係型數據庫》教程分別對分佈式文件系統和 NoSQL 數據庫系統進行詳細介紹。

大數據處理

大數據的應用類型很多,主要的處理模式可以分爲流處理模式和批處理模式兩種。批處理是先存儲後處理,而流處理則是直接處理。

1. 批處理模式

Google 公司在 2004 年提出的 MapReduce 編程模型是最具代表性的批處理模式。
MapReduce 模型首先將用戶的原始數據源進行分塊,然後分別交給不同的 Map 任務去處理。
Map 任務從輸入中解析出 key/value 對集合,然後對這些集合執行用戶自行定義的 Map 函數以得到中間結果,並將該結果寫入本地硬盤。
Reduce 任務從硬盤上讀取數據之後,會根據 key 值進行排序,將具有相同 key 值的數據組織在一起。最後,用戶自定義的 Reduce 函數會作用於這些排好序的結果並輸出最終結果。
MapReduce 的核心設計思想有兩點。

  • 將問題分而治之,把待處理的數據分成多個模塊分別交給多個 Map 任務去併發處理。
  • 把計算推到數據而不是把數據推到計算,從而有效地避免數據傳輸過程中產生的大量通信開銷。

2. 流處理模式

流處理模式的基本理念是,數據的價值會隨着時間的流逝而不斷減少。因此,儘可能快地對最新的數據做出分析並給出結果是所有流處理模式的主要目標。
需要採用流處理模式的大數據應用場景主要有網頁點擊數的實時統計,傳感器網絡,金融中的高頻交易等。
流處理模式將數據視爲流,將源源不斷的數據組成數據流。當新的數據到來時就立刻處理並返回所需的結果。
數據的實時處理是一個很有挑戰性的工作,數據流本身具有持續到達、速度快、規模巨大等特點,因此,通常不會對所有的數據進行永久化存儲,同時,由於數據環境處在不斷的變化之中,系統很難準確掌握整個數據的全貌。
由於響應時間的要求,流處理的過程基本在內存中完成,其處理方式更多地依賴於在內存中設計巧妙的概要數據結構。內存容量是限制流處理模式的一個主要瓶頸。
《Hadoop MapReduce概述》教程和《Spark簡介》《Spark Streaming簡介》教程會分別對批處理模式和流處理模式進行詳細介紹。

大數據分析及挖掘技術

大數據處理的核心就是對大數據進行分析,只有通過分析才能獲取很多智能的、深入的、有價值的信息。
越來越多的應用涉及大數據,這些大數據的屬性,包括數量、速度、多樣性等都引發了大數據不斷增長的複雜性,所以,大數據的分析方法在大數據領域就顯得尤爲重要,可以說是決定最終信息是否有價值的決定性因素。
利用數據挖掘進行數據分析的常用方法主要有分類、迴歸分析、聚類、關聯規則等,它們分別從不同的角度對數據進行挖掘。

1) 分類

分類是找岀數據庫中一組數據對象的共同特點並按照分類模式將其劃分爲不同的類。
其目的是通過分類模型,將數據庫中的數據項映射到某個給定的類別。它可以應用到客戶的分類、客戶的屬性和特徵分析、客戶滿意度分析、客戶的購買趨勢預測等。

2) 迴歸分析

迴歸分析方法反映的是事務數據庫中屬性值在時間上的特徵。
該方法可產生一個將數據項映射到一個實值預測變量的函數,發現變量或屬性間的依賴關係,其主要研究問題包括數據序列的趨勢特徵、數據序列的預測及數據間的相關關係等。
它可以應用到市場營銷的各個方面,如客戶尋求、保持和預防客戶流失活動、產品生命週期分析、銷售趨勢預測及有針對性的促銷活動等。

3) 聚類

聚類是把一組數據按照相似性和差異性分爲幾個類別。
其目的是使得屬於同一類別的數據間的相似性儘可能大,不同類別中的數據間的相似性儘可能小。它可以應用於客戶羣體的分類、客戶背景分析、客戶購買趨勢預測、市場的細分等。

4) 關聯規則

關聯規則是描述數據庫中數據項之間所存在的關係的規則。
即根據一個事務中某些項的出現可推導岀另一些項在同一事務中也會出現,即隱藏在數據間的關聯或相互關係。
在客戶關係管理中,通過對企業的客戶數據庫裏的大量數據進行挖掘,可以從大量的記錄中發現有趣的關聯關係,找出影響市場營銷效果的關鍵因素,爲產品定位、定價,客戶尋求、細分與保持,市場營銷與推銷,營銷風險評估和詐騙預測等決策支持提供參考依據。
《數據挖掘分析》教程對數據分析技術進行詳細介紹。

大數據展示技術

在大數據時代下,數據井噴似地增長,分析人員將這些龐大的數據彙總並進行分析,而分析出的成果如果是密密麻麻的文字,那麼就沒有幾個人能理解,所以我們就需要將數據可視化。
圖表甚至動態圖的形式可將數據更加直觀地展現給用戶,從而減少用戶的閱讀和思考時間,以便很好地做出決策。圖 1 可以清晰地展示人物之間的關係。

 


圖 1“人立方”展示人物關係圖


可視化技術是最佳的結果展示方式之一,其通過清晰的圖形圖像展示直觀地反映出最終結果。
數據可視化是將數據以不同的視覺表現形式展現在不同系統中,包括相應信息單位的各種屬性和變量。
數據可視化技術主要指的是技術上較爲高級的技術方法,這些技術方法通過表達、建模,以及對立體、表面、屬性、動畫的顯示,對數據加以可視化解釋。
傳統的數據可視化工具僅僅將數據加以組合,通過不同的展現方式提供給用戶,用於發現數據之間的關聯信息。
隨着大數據時代的來臨,數據可視化產品已經不再滿足於使用傳統的數據可視化工具來對數據倉庫中的數據進行抽取、歸納及簡單的展現。
新型的數據可視化產品必須滿足互聯網上爆發的大數據需求,必須快速收集、篩選、分析、歸納、展現決策者所需要的信息,並根據新增的數據進行實時更新。因此,在大數據時代,數據可視化工具必須具有以下特性。

1)實時性

數據可視化工具必須適應大數據時代數據量的爆炸式增長需求,必須快速收集分析數據,並對數據信息進行實時更新。

2)操作簡單

數據可視化工具滿足快速開發、易於操作的特性,能滿足互聯網時代信息多變的特點。

3)更豐富的展現

數據可視化工具需要具有更豐富的展現方式,能充分滿足數據展現的多維度要求。

4)多種數據集成支持方式

數據的來源不僅僅侷限於數據庫,數據可視化工具將支持團隊協作數據、數據倉庫、文本等多種方式,並能夠通過互聯網進行展現。
數據可視化技術是一個新興領域,有許多新的發展。
企業獲取數據可視化功能主要通過編程和非編程兩類工具實現。
主流編程工具包括 3 種類型:從藝術的角度創作的數據可視化工具,比較典型的工具是 Processing.js,它是爲藝術家提供的編程語言。
從統計和數據處理的角度創作的數據可視化工具,R 語言是一款典型的工具,它本身既可以做數據分析,又可以做圖形處理。
介於兩者之間的工具,既要兼顧數據處理,又要兼顧展現效果,D3.js 是一個不錯的選擇,像 D3.js 這種基於 JavaScript 的數據可視化工具更適合在互聯網上互動式展示數據。

發佈了88 篇原創文章 · 獲贊 3 · 訪問量 6063
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章