大數(shù)據(jù)處理是對(duì)復(fù)雜海量數(shù)據(jù)價(jià)值的提煉,而最有價(jià)值的部分是預(yù)測(cè)分析,它可以幫助數(shù)據(jù)科學(xué)家通過數(shù)據(jù)挖掘形式,例如數(shù)據(jù)可視化,統(tǒng)計(jì)模式識(shí)別和數(shù)據(jù)描述等等,更好地理解數(shù)據(jù)。根據(jù)數(shù)據(jù)挖掘的結(jié)果得出預(yù)測(cè)性決策。
1、批處理模式
Google 公司在 2004 年提出的 MapReduce 編程模型是最具代表性的批處理模式。MapReduce 模型首先將用戶的原始數(shù)據(jù)源進(jìn)行分塊,然后分別交給不同的 Map 任務(wù)去處理。
Map 任務(wù)從輸入中解析出 key/value 對(duì)集合,然后對(duì)這些集合執(zhí)行用戶自行定義的 Map 函數(shù)以得到中間結(jié)果,并將該結(jié)果寫入本地硬盤。Reduce 任務(wù)從硬盤上讀取數(shù)據(jù)之后,會(huì)根據(jù) key 值進(jìn)行排序,將具有相同 key 值的數(shù)據(jù)組織在一起。最后,用戶自定義的 Reduce 函數(shù)會(huì)作用于這些排好序的結(jié)果并輸出最終結(jié)果。
MapReduce 的核心設(shè)計(jì)思想有兩點(diǎn)。
· 將問題分而治之,把待處理的數(shù)據(jù)分成多個(gè)模塊分別交給多個(gè) Map 任務(wù)去并發(fā)處理。
· 把計(jì)算推到數(shù)據(jù)而不是把數(shù)據(jù)推到計(jì)算,從而有效地避免數(shù)據(jù)傳輸過程中產(chǎn)生的大量通信開銷。
2、流處理模式
流處理模式的基本理念是,數(shù)據(jù)的價(jià)值會(huì)隨著時(shí)間的流逝而不斷減少。因此,盡可能快地對(duì)最新的數(shù)據(jù)做出分析并給出結(jié)果是所有流處理模式的主要目標(biāo)。
需要采用流處理模式的大數(shù)據(jù)應(yīng)用場(chǎng)景主要有網(wǎng)頁點(diǎn)擊數(shù)的實(shí)時(shí)統(tǒng)計(jì),傳感器網(wǎng)絡(luò),金融中的高頻交易等。流處理模式將數(shù)據(jù)視為流,將源源不斷的數(shù)據(jù)組成數(shù)據(jù)流。當(dāng)新的數(shù)據(jù)到來時(shí)就立刻處理并返回所需的結(jié)果。
數(shù)據(jù)的實(shí)時(shí)處理是一個(gè)很有挑戰(zhàn)性的工作,數(shù)據(jù)流本身具有持續(xù)到達(dá)、速度快、規(guī)模巨大等特點(diǎn),因此,通常不會(huì)對(duì)所有的數(shù)據(jù)進(jìn)行永久化存儲(chǔ),同時(shí),由于數(shù)據(jù)環(huán)境處在不斷的變化之中,系統(tǒng)很難準(zhǔn)確掌握整個(gè)數(shù)據(jù)的全貌。
由于響應(yīng)時(shí)間的要求,流處理的過程基本在內(nèi)存中完成,其處理方式更多地依賴于在內(nèi)存中設(shè)計(jì)巧妙的概要數(shù)據(jù)結(jié)構(gòu)。內(nèi)存容量是限制流處理模式的一個(gè)主要瓶頸。
大數(shù)據(jù)處理的第一個(gè)步驟就是數(shù)據(jù)抽取與集成。這是因?yàn)榇髷?shù)據(jù)處理的數(shù)據(jù)來源類型豐富,大數(shù)據(jù)處理的第一步是對(duì)數(shù)據(jù)進(jìn)行抽取和集成,從中提取出關(guān)系和實(shí)體,經(jīng)過關(guān)聯(lián)和聚合等操作,按照統(tǒng)一定義的格式對(duì)數(shù)據(jù)進(jìn)行存儲(chǔ)。現(xiàn)有的數(shù)據(jù)抽取和集成方法有三種,分別是基于物化或ETL方法的引擎、基于聯(lián)邦數(shù)據(jù)庫(kù)或中間件方法的引擎、基于數(shù)據(jù)流方法的引擎。這些引擎都是很重要的。
大數(shù)據(jù)處理的第二個(gè)步驟就是數(shù)據(jù)分析。數(shù)據(jù)分析是大數(shù)據(jù)處理流程的核心步驟,通過數(shù)據(jù)抽取和集成環(huán)節(jié),我們已經(jīng)從異構(gòu)的數(shù)據(jù)源中獲得了用于大數(shù)據(jù)處理的原始數(shù)據(jù),用戶可以根據(jù)自己的需求對(duì)這些數(shù)據(jù)進(jìn)行分析處理,比如數(shù)據(jù)挖掘、機(jī)器學(xué)習(xí)、數(shù)據(jù)統(tǒng)計(jì)等,數(shù)據(jù)分析可以用于決策支持、商業(yè)智能、推薦系統(tǒng)、預(yù)測(cè)系統(tǒng)等。通過數(shù)據(jù)分析我們能夠掌握數(shù)據(jù)中的信息。
大數(shù)據(jù)處理的第三個(gè)步驟就是數(shù)據(jù)解釋。大數(shù)據(jù)處理流程中用戶最關(guān)心的是數(shù)據(jù)處理的結(jié)果,正確的數(shù)據(jù)處理結(jié)果只有通過合適的展示方式才能被終端用戶正確理解,因此數(shù)據(jù)處理結(jié)果的展示非常重要,可視化和人機(jī)交互是數(shù)據(jù)解釋的主要技術(shù)。這個(gè)步驟能夠讓我們知道我們分析數(shù)據(jù)的結(jié)果。
當(dāng)然,使用可視化技術(shù),可以將處理的結(jié)果通過圖形的方式直觀地呈現(xiàn)給用戶,標(biāo)簽云、歷史流、空間信息流等是常用的可視化技術(shù),用戶可以根據(jù)自己的需求靈活地使用這些可視化技術(shù)。而人機(jī)交互技術(shù)可以引導(dǎo)用戶對(duì)大數(shù)據(jù)進(jìn)行逐步的分析,使用戶參與到數(shù)據(jù)分析的過程中,使用戶可以深刻地理解數(shù)據(jù)分析結(jié)果。這些都是我們所關(guān)注的內(nèi)容。