大數據下的技術
4 人贊了文章
書接上回,我們談過了什麼是大數據和大數據思維,那麼今天我們聊一下大數據下的技術。我們知道技術的產生全部是由於需求驅動的,所以我們先來回顧一下第一節課的關於大數據的定義:
形容(傳統)不能滿足+需要(新處理模式)=大數據+具有4v特徵。
4v是指Volume(大量)、Velocity(高速)、Variety(多樣)、Value(價值)
首先們先看Volume(大量),傳統以前數據基本上存儲在關係資料庫,典型的架構也就是IOE(也即IBM小機+Oracle資料庫+Emc存儲)。在這種架構下,以前數據量少的時候還能很快滿足需求,但隨著數據積累到一定規模的時候,就很難處理了。例如,我們在一個客戶的IOE架構中發現,對一張積累很多年的歷史表,數據量超過1億條,對這張表的模糊或關聯操作會非常慢,甚至無法出結果。那麼到這個時候,人們開始想是否有替代方案,IOE就相當於一頭大象,雖然很強壯但處理能力會有瓶頸,它是典型的集中處理模式。那麼接下來就自然對應了分散式處理模式,也即所謂的蟻群戰術,通過多個分散式的PC伺服器去處理海量數據。提到大數據下的技術,就不得不提這個時代最引領技術的公司Google。Google在2003年到2004年公布了關於GFS、MapReduce和BigTable三篇技術論文,從此開源界出來了Hadoop,也就是我們很多人提到大數據就會提到Hadoop。其中GFS是分散式文件系統對應Hdfs,MapReduce是並行處理框架對應hadoop上的mapreduce,bigtable對應hbase。
其次是Velocity(高速),我們知道大數據時代產生了很多感測器的數據,這些數據需要實時上傳,並且需要實時處理。在傳統的處理中,基本沒有這種應用場景。而在大數據時代,我們把這種數據想像成河流一樣,源源不斷地產生和處理,所以就有了流處理技術。伴隨著業務發展的步調,以及業務流程的複雜化,我們的注意力越來越集中在「數據流」而非「數據集」上面。決策者感興趣的是緊扣其組織機構的命脈,並獲取實時的結果。他們需要的是能夠處理隨時發生的數據流的架構,當前的資料庫技術並不適合數據流處理。
例如,計算一組數據的平均值,可以使用一個傳統的腳本實現。但對於移動數據平均值的計算,不論是到達、增長還是一個又一個的單元,有更高效的演算法。如果你想構建數據倉庫,並執行任意的數據分析、統計,開源的產品R或者類似於SAS的商業產品就可以實現。但是你想創建的是一個數據流統計集,對此逐步添加或移除數據塊,進行移動平均計算,而且資料庫不存在或者尚不成熟。數據流周邊的生態系統有欠發達。換言之,如果你正在與一家供應商洽談一個大數據項目,那麼你必須知道數據流處理對你的項目而言是否重要,並且供應商是否有能力提供。
接下來是Variety(多樣),大數據時代下,除了傳統需要處理的結構化數據、還有半結構化數據、非結構化數據。例如大量的日誌數據屬於非結構化數據,很多互聯網企業都有自己的海量數據採集工具,多用於系統日誌採集,如Hadoop的Chukwa,Cloudera的Flume,Facebook的Scribe等,這些工具均採用分散式架構,能滿足每秒數百MB的日誌數據採集和傳輸需求。MogoDB也是Nosql中的一個重要產品,MongoDB是一個基於分散式文件存儲的資料庫。它支持的數據結構非常鬆散,是類似json的bson格式,因此可以存儲比較複雜的數據類型。MongoDB支持的查詢語言非常強大,其語法有點類似於面向對象的查詢語言,幾乎可以實現類似關係資料庫單表查詢的絕大部分功能,而且還支持對數據建立索引。 還有適用於各種應用場景的內存資料庫和圖資料庫等多種產品。大數據時代下數據多樣性和場景多樣性帶來了多種單一的技術產品和形態。
最後是Value(價值),這裡面有兩種技術,一種是對數據的價值進行挖掘,一種是對數據的價值進行呈現。 數據的分析與挖掘主要目的是把隱藏在一大批看來雜亂無章的數據中的信息集中起來,進行萃取、提煉,以找出潛在有用的信息和所研究對象的內在規律的過程。
數據挖掘演算法是根據數據創建數據挖掘模型的一組試探法和計算。為了創建該模型,演算法將首先分析用戶提供的數據,針對特定類型的模式和趨勢進行查找。並使用分析結果定義用於創建挖掘模型的最佳參數,將這些參數應用於整個數據集,以便提取可行模式和詳細統計信息。大數據分析的理論核心就是數據挖掘演算法,數據挖掘的演算法多種多樣,不同的演算法基於不同的數據類型和格式會呈現出數據所具備的不同特點。各類統計方法都能深入數據內部,挖掘出數據的價值。
大數據分析最重要的應用領域之一就是預測性分析,預測性分析結合了多種高級分析功能,包括特別統計分析、預測建模、數據挖掘、文本分析、實體分析、優化、實時評分、機器學習等,從而對未來,或其他不確定的事件進行預測。從紛繁的數據中挖掘出其特點,可以幫助我們了解目前狀況以及確定下一步的行動方案,從依靠猜測進行決策轉變為依靠預測進行決策。它可幫助分析用戶的結構化和非結構化數據中的趨勢、模式和關係,運用這些指標來洞察預測將來事件,並作出相應的措施。
數據可視化主要是藉助於圖形化手段,清晰有效地傳達與溝通信息。主要應用于海量數據關聯分析,由於所涉及到的信息比較分散、數據結構有可能不統一,藉助功能強大的可視化數據分析平台,可輔助人工操作將數據進行關聯分析,並做出完整的分析圖表,簡單明了、清晰直觀,更易於接受。
D3是一個javascript面向文檔的可視化的類庫,。它強大的創新性的讓我們能直接看到信息和讓我們進行正常的交互。它的作者是Michael Bostock一個紐約時報的圖形界面設計師。例如,你可以使用D3來從任意數量的數組中創建H?l表格。你能使用任意的數據來創建交互進度條等。使用D3,程序員能在程序之間創建界面,組織所有的各種類型的數據。
推薦閱讀:
※【數據life】你的健身和別人一樣嗎
※吐槽《細思極恐|趙薇事件揭示:大數據控制權之爭暗流涌動》
※2017數博會開幕|大數據成果與黑科技搶先看
※2018年離婚大數據曝光,為什麼有些女人不會再結婚了
TAG:大數據 |