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