1. 程式人生 > >大資料技術和應用

大資料技術和應用

什麼是大資料

  大資料是指無法在一定時間內用常規軟體工具對其內容進行抓取、管理和處理的資料集合。大資料技術,是指從各種各樣型別的資料中,快速獲得有價值資訊的能力。適用於大資料的技術,包括大規模並行處理資料庫,資料探勘電網,分散式檔案系統,分散式資料庫,雲端計算平臺網際網路,和可擴充套件的儲存系統。

[編輯]

大資料的定義

  大資料由巨型資料集組成,這些資料集大小常超出人類在可接受時間下的收集、庋用、管理和處理能力。大資料的大小經常改變,截至2012年,單一資料集的大小從數太位元組(TB)至數十兆億位元組(PB)不等。

  2001年麥塔集團(META Group)分析員道格·萊尼(Doug Laney)指出資料增長的挑戰和機遇有三個方向:量(Volume,資料大小)、速(Velocity,資料輸入輸出的速度)與多變(Variety,多樣性),合稱“3V”。高德納於2012年修改對大資料

的定義:“大資料是大量、高速、多變的資訊資產,它需要新型的處理方式去促成更強的決策能力。”

  大資料必須藉由計算機對資料進行統計、比對、分析方能得出客觀結果。美國在2012年就開始著手大資料,奧巴馬更在同年投入2億美金在大資料的開發中,更強調大資料會是未來的石油。資料探勘(data mining)則是在探討用以分析大資料的方法。

[編輯]

大資料的特點[1]

  具體來說,大資料具有4個基本特徵:

  一是資料體量巨大。百度資料表明,其新首頁導航每天需要提供的資料超過1.5PB(1PB=1024TB),這些資料如果打印出來將超過5千億張A4紙。有資料證實,到目前為止,人類生產的所有印刷材料的資料量

僅為200PB。

  二是資料型別多樣。現在的資料型別不僅是文字形式,更多的是圖片、視訊、音訊、地理位置資訊等多型別的資料,個性化資料佔絕對多數。

  三是處理速度快。資料處理遵循“1秒定律”,可從各種型別的資料中快速獲得高價值的資訊。

  四是價值密度低。以視訊為例,一小時的視訊,在不間斷的監控過程中,可能有用的資料僅僅只有一兩秒。

[編輯]

大資料的作用[2]

  第一,對大資料的處理分析正成為新一代資訊科技融合應用的結點。移動網際網路物聯網、社交網路、數字家庭、電子商務等是新一代資訊科技的應用形態,這些應用不斷產生大資料。雲端計算為這些海量、多樣化的大資料提供儲存和運算平臺。通過對不同來源資料的管理、處理、分析與優化,將結果反饋到上述應用中,將創造出巨大的經濟

和社會價值。

  大資料具有催生社會變革的能量。但釋放這種能量,需要嚴謹的資料治理、富有洞見的資料分析和激發管理創新的環境(Ramayya Krishnan,卡內基·梅隆大學海因茲學院院長)。

  第二,大資料是資訊產業持續高速增長的新引擎。面向大資料市場的新技術、新產品、新服務、新業態會不斷湧現。在硬體與整合裝置領域,大資料將對晶片、儲存產業產生重要影響,還將催生一體化資料儲存處理伺服器、記憶體計算等市場。在軟體與服務領域,大資料將引發資料快速處理分析、資料探勘技術和軟體產品的發展。

  第三,大資料利用將成為提高核心競爭力的關鍵因素。各行各業的決策正在從“業務驅動” 轉變“資料驅動”。

  對大資料的分析可以使零售商實時掌握市場動態並迅速做出應對;可以為商家制定更加精準有效的營銷策略提供決策支援;可以幫助企業消費者提供更加及時和個性化的服務;在醫療領域,可提高診斷準確性和藥物有效性;在公共事業領域,大資料也開始發揮促進經濟發展、維護社會穩定等方面的重要作用。

  第四,大資料時代科學研究的方法手段將發生重大改變。例如,抽樣調查社會科學的基本研究方法。在大資料時代,可通過實時監測、跟蹤研究物件在網際網路上產生的海量行為資料,進行挖掘分析,揭示出規律性的東西,提出研究結論和對策。

[編輯]

大資料的分析

  眾所周知,大資料已經不簡簡單單是資料大的事實了,而最重要的現實是對大資料進行分析,只有通過分析才能獲取很多智慧的,深入的,有價值的資訊。那麼越來越多的應用涉及到大資料,而這些大資料的屬性,包括數量,速度,多樣性等等都是呈現了大資料不斷增長的複雜性,所以大資料的分析方法在大資料領域就顯得尤為重要,可以說是決定最終資訊是否有價值的決定性因素。基於如此的認識,大資料分析普遍存在的方法理論有哪些呢?

  1. 視覺化分析。大資料分析的使用者有大資料分析專家,同時還有普通使用者,但是他們二者對於大資料分析最基本的要求就是視覺化分析,因為視覺化分析能夠直觀的呈現大資料特點,同時能夠非常容易被讀者所接受,就如同看圖說話一樣簡單明瞭。

  2. 資料探勘演算法。大資料分析的理論核心就是資料探勘演算法,各種資料探勘的演算法基於不同的資料型別和格式才能更加科學的呈現出資料本身具備的特點,也正是因為這些被全世界統計學家所公認的各種統計方法(可以稱之為真理)才能深入資料內部,挖掘出公認的價值。另外一個方面也是因為有這些資料探勘的演算法才能更快速的處理大資料,如果一個演算法得花上好幾年才能得出結論,那大資料的價值也就無從說起了。

  3. 預測性分析。大資料分析最終要的應用領域之一就是預測性分析,從大資料中挖掘出特點,通過科學的建立模型,之後便可以通過模型帶入新的資料,從而預測未來的資料。

  4. 語義引擎。非結構化資料的多元化給資料分析帶來新的挑戰,我們需要一套工具系統的去分析,提煉資料。語義引擎需要設計到有足夠的人工智慧足以從資料中主動地提取資訊。

  5.資料質量和資料管理大資料分析離不開資料質量和資料管理,高質量的資料和有效的資料管理,無論是在學術研究還是在商業應用領域,都能夠保證分析結果的真實和有價值。

  大資料分析的基礎就是以上五個方面,當然更加深入大資料分析的話,還有很多很多更加有特點的、更加深入的、更加專業的大資料分析方法。

[編輯]

大資料的技術

  資料採集:ETL工具負責將分佈的、異構資料來源中的資料如關係資料、平面資料檔案等抽取到臨時中間層後進行清洗、轉換、整合,最後載入到資料倉庫資料集市中,成為聯機分析處理、資料探勘的基礎。

  資料存取關係資料庫、NOSQL、SQL等。

  基礎架構:雲端儲存、分散式檔案儲存等。

  資料處理:自然語言處理(NLP,Natural Language Processing)是研究人與計算機互動的語言問題的一門學科。處理自然語言的關鍵是要讓計算機"理解"自然語言,所以自然語言處理又叫做自然語言理解(NLU,Natural Language Understanding),也稱為計算語言學(Computational Linguistics。一方面它是語言資訊處理的一個分支,另一方面它是人工智慧(AI, Artificial Intelligence)的核心課題之一。

  統計分析假設檢驗顯著性檢驗差異分析相關分析T檢驗方差分析、卡方分析、偏相關分析、距離分析、迴歸分析、簡單迴歸分析、多元迴歸分析、逐步迴歸、迴歸預測與殘差分析、嶺迴歸、logistic迴歸分析、曲線估計、因子分析、聚類分析主成分分析、因子分析、快速聚類法與聚類法、判別分析對應分析、多元對應分析(最優尺度分析)、bootstrap技術等等。

  資料探勘:分類 (Classification)、估計(Estimation)、預測(Prediction)、相關性分組或關聯規則(Affinity grouping or association rules)、聚類(Clustering)、描述和視覺化、Description and Visualization)、複雜資料型別挖掘(Text, Web ,圖形影象,視訊,音訊等)

  模型預測:預測模型、機器學習、建模模擬。

  結果呈現:雲端計算、標籤雲、關係圖等。

[編輯]

大資料的處理

  1. 大資料處理之一:採集

  大資料的採集是指利用多個數據庫來接收發自客戶端(Web、App或者感測器形式等)的資料,並且使用者可以通過這些資料庫來進行簡單的查詢和處理工作。比如,電商會使用傳統的關係型資料庫MySQL和Oracle等來儲存每一筆事務資料,除此之外,Redis和MongoDB這樣的NoSQL資料庫也常用於資料的採集。

  在大資料的採集過程中,其主要特點和挑戰是併發數高,因為同時有可能會有成千上萬的使用者來進行訪問和操作,比如火車票售票網站和淘寶,它們併發的訪問量在峰值時達到上百萬,所以需要在採集端部署大量資料庫才能支撐。並且如何在這些資料庫之間進行負載均衡和分片的確是需要深入的思考和設計。

  2. 大資料處理之二:匯入/預處理

  雖然採集端本身會有很多資料庫,但是如果要對這些海量資料進行有效的分析,還是應該將這些來自前端的資料匯入到一個集中的大型分散式資料庫,或者分散式儲存叢集,並且可以在匯入基礎上做一些簡單的清洗和預處理工作。也有一些使用者會在匯入時使用來自Twitter的Storm來對資料進行流式計算,來滿足部分業務的實時計算需求。

  匯入與預處理過程的特點和挑戰主要是匯入的資料量大,每秒鐘的匯入量經常會達到百兆,甚至千兆級別。

  3. 大資料處理之三:統計/分析

  統計與分析主要利用分散式資料庫,或者分散式計算叢集來對儲存於其內的海量資料進行普通的分析和分類彙總等,以滿足大多數常見的分析需求,在這方面,一些實時性需求會用到EMC的GreenPlum、Oracle的Exadata,以及基於MySQL的列式儲存Infobright等,而一些批處理,或者基於半結構化資料的需求可以使用Hadoop

  統計與分析這部分的主要特點和挑戰是分析涉及的資料量大,其對系統資源,特別是I/O會有極大的佔用。

  4. 大資料處理之四:挖掘

  與前面統計和分析過程不同的是,資料探勘一般沒有什麼預先設定好的主題,主要是在現有資料上面進行基於各種演算法的計算,從而起到預測(Predict)的效果,從而實現一些高級別資料分析的需求。比較典型演算法有用於聚類的Kmeans、用於統計學習的SVM和用於分類的NaiveBayes,主要使用的工具有Hadoop的Mahout等。該過程的特點和挑戰主要是用於挖掘的演算法很複雜,並且計算涉及的資料量和計算量都很大,常用資料探勘演算法都以單執行緒為主。

  整個大資料處理的普遍流程至少應該滿足這四個方面的步驟,才能算得上是一個比較完整的大資料處理。

[編輯]

大資料的常見誤解

  一、資料不等於資訊

  經常有人把資料和資訊當作同義詞來用。其實不然,資料指的是一個原始的資料點(無論是通過數字,文字,圖片還是視訊等等),資訊則直接與內容掛鉤,需要有資訊性(informative)。資料越多,不一定就能代表資訊越多,更不能代表資訊就會成比例增多。有兩個簡單的例子:

  備份。很多人如今已經會定期的對自己的硬碟進行備份。這個沒什麼好多解釋的,每次備份都會創造出一組新的資料,但資訊並沒有增多。

  多個社交網站上的資訊。我們當中的很多人在多個社交網站上活躍,隨著我們上的社交網站越多,我們獲得的資料就會成比例的增多,我們獲得的資訊雖然也會增多,但卻不會成比例的增多。不單單因為我們會互相轉發好友的微博(或者其他社交網站上的內容),更因為很多內容會十分類似,有些微博雖然具體文字不同,但表達的內容十分相似。

  二、資訊不等於智慧(Insight)

  現在我們去除了資料中所有重複的部分,也整合了內容類似的資料,現在我們剩下的全是資訊了,這對我們就一定有用嗎?不一定,資訊要能轉化成智慧,至少要滿足一下三個標準:

  可破譯性。這可能是個大資料時代特有的問題,越來越多的企業每天都會生產出大量的資料,卻還沒想好怎麼用,因此,他們就將這些資料暫時非結構化(unstructured)的儲存起來。這些非結構化的資料卻不一定可破譯。比如說,你記錄了某客戶在你網站上三次翻頁的時間間隔:3秒,2秒,17秒,卻忘記標註這三個時間到底代表了什麼,這些資料是資訊(非重複性),卻不可破譯,因此不可能成為智慧。

  關聯性。無關的資訊,至多隻是噪音。

  新穎性。這裡的新穎性很多時候無法僅僅根據我們手上的資料和資訊進行判斷。舉個例子,某電子商務公司通過一組資料/資訊,分析出了客戶願意為當天送貨的產品多支付10塊錢,然後又通過另一組完全獨立的資料/資訊得到了同樣的內容,這樣的情況下,後者就不具備新穎性。不幸的是,很多時候,我們只有在處理了大量的資料和資訊以後,才能判斷它們的新穎性。

[編輯]

大資料時代儲存所面對的問題[3]

  隨著大資料應用的爆發性增長,它已經衍生出了自己獨特的架構,而且也直接推動了儲存、網路以及計算技術的發展。畢竟處理大資料這種特殊的需求是一個新的挑戰。硬體的發展最終還是由軟體需求推動的,就這個例子來說,我們很明顯的看到大資料分析應用需求正在影響著資料儲存基礎設施的發展。

  從另一方面看,這一變化對儲存廠商和其他IT基礎設施廠商未嘗不是一個機會。隨著結構化資料和非結構化資料量的持續增長,以及分析資料來源的多樣化,此前儲存系統的設計已經無法滿足大資料應用的需要。儲存廠商已經意識到這一點,他們開始修改基於塊和檔案的儲存系統的架構設計以適應這些新的要求。在這裡,我們會討論哪些與大資料儲存基礎設施相關的屬性,看看它們如何迎接大資料的挑戰。

  容量問題

  這裡所說的“大容量”通常可達到PB級的資料規模,因此,海量資料儲存系統也一定要有相應等級的擴充套件能力。與此同時,儲存系統的擴充套件一定要簡便,可以通過增加模組或磁碟櫃來增加容量,甚至不需要停機。基於這樣的需求,客戶現在越來越青睞Scale-out架構的儲存。Scale-out叢集結構的特點是每個節點除了具有一定的儲存容量之外,內部還具備資料處理能力以及互聯裝置,與傳統儲存系統的煙囪式架構完全不同,Scale-out架構可以實現無縫平滑的擴充套件,避免儲存孤島。

  “大資料”應用除了資料規模巨大之外,還意味著擁有龐大的檔案數量。因此如何管理檔案系統層累積的元資料是一個難題,處理不當的話會影響到系統的擴充套件能力和效能,而傳統的NAS系統就存在這一瓶頸。所幸的是,基於物件的儲存架構就不存在這個問題,它可以在一個系統中管理十億級別的檔案數量,而且還不會像傳統儲存一樣遭遇元資料管理的困擾。基於物件的儲存系統還具有廣域擴充套件能力,可以在多個不同的地點部署並組成一個跨區域的大型儲存基礎架構。

  延遲問題

  “大資料”應用還存在實時性的問題。特別是涉及到與網上交易或者金融類相關的應用。舉個例子來說,網路成衣銷售行業的線上廣告推廣服務需要實時的對客戶的瀏覽記錄進行分析,並準確的進行廣告投放。這就要求儲存系統在必須能夠支援上述特性同時保持較高的響應速度,因為響應延遲的結果是系統會推送“過期”的廣告內容給客戶。這種場景下,Scale-out架構的儲存系統就可以發揮出優勢,因為它的每一個節點都具有處理和互聯元件,在增加容量的同時處理能力也可以同步增長。而基於物件的儲存系統則能夠支援併發的資料流,從而進一步提高資料吞吐量。

  有很多“大資料”應用環境需要較高的IOPS效能(IOPS (Input/Output Operations Per Second),即每秒進行讀寫(I/O)操作的次數,多用於資料庫等場合,衡量隨機訪問的效能),比如HPC高效能運算。此外,伺服器虛擬化的普及也導致了對高IOPS的需求,正如它改變了傳統IT環境一樣。為了迎接這些挑戰,各種模式的固態儲存裝置應運而生,小到簡單的在伺服器內部做快取記憶體,大到全固態介質的可擴充套件儲存系統等等都在蓬勃發展。

  併發訪問一旦企業認識到大資料分析應用的潛在價值,他們就會將更多的資料集納入系統進行比較,同時讓更多的人分享並使用這些資料。為了創造更多的商業價值,企業往往會綜合分析那些來自不同平臺下的多種資料物件。包括全域性檔案系統在內的儲存基礎設施就能夠幫助使用者解決資料訪問的問題,全域性檔案系統允許多個主機上的多個使用者併發訪問檔案資料,而這些資料則可能儲存在多個地點的多種不同型別的儲存裝置上。

  安全問題

  某些特殊行業的應用,比如金融資料、醫療資訊以及政府情報等都有自己的安全標準和保密性需求。雖然對於IT管理者來說這些並沒有什麼不同,而且都是必須遵從的,但是,大資料分析往往需要多類資料相互參考,而在過去並不會有這種資料混合訪問的情況,因此大資料應用也催生出一些新的、需要考慮的安全性問題。

  成本問題

  “大”,也可能意味著代價不菲。而對於那些正在使用大資料環境的企業來說,成本控制是關鍵的問題。想控制成本,就意味著我們要讓每一臺裝置都實現更高的“效率”,同時還要減少那些昂貴的部件。目前,像重複資料刪除等技術已經進入到主儲存市場,而且現在還可以處理更多的資料型別,這都可以為大資料儲存應用帶來更多的價值,提升儲存效率。在資料量不斷增長的環境中,通過減少後端儲存的消耗,哪怕只是降低幾個百分點,都能夠獲得明顯的投資回報。此外,自動精簡配置、快照和克隆技術的使用也可以提升儲存的效率

  很多大資料儲存系統都包括歸檔元件,尤其對那些需要分析歷史資料或需要長期儲存資料的機構來說,歸檔裝置必不可少。從單位容量儲存成本的角度看,磁帶仍然是最經濟的儲存介質,事實上,在許多企業中,使用支援TB級大容量磁帶的歸檔系統仍然是事實上的標準和慣例。

  對成本控制影響最大的因素是那些商業化的硬體裝置。因此,很多初次進入這一領域的使用者以及那些應用規模最大的使用者都會定製他們自己的“硬體平臺”而不是用現成的商業產品,這一舉措可以用來平衡他們在業務擴充套件過程中的成本控制戰略。為了適應這一需求,現在越來越多的儲存產品都提供純軟體的形式,可以直接安裝在使用者已有的、通用的或者現成的硬體裝置上。此外,很多儲存軟體公司還在銷售以軟體產品為核心的軟硬一體化裝置,或者與硬體廠商結盟,推出合作型產品。

  資料的積累

  許多大資料應用都會涉及到法規遵從問題,這些法規通常要求資料要儲存幾年或者幾十年。比如醫療資訊通常是為了保證患者的生命安全,而財務資訊通常要儲存7年。而有些使用大資料儲存的使用者卻希望資料能夠儲存更長的時間,因為任何資料都是歷史記錄的一部分,而且資料的分析大都是基於時間段進行的。要實現長期的資料儲存,就要求儲存廠商開發出能夠持續進行資料一致性檢測的功能以及其他保證長期高可用的特性。同時還要實現資料直接在原位更新的功能需求。

  靈活性

  大資料儲存系統的基礎設施規模通常都很大,因此必須經過仔細設計,才能保證儲存系統的靈活性,使其能夠隨著應用分析軟體一起擴容及擴充套件。在大資料儲存環境中,已經沒有必要再做資料遷移了,因為資料會同時儲存在多個部署站點。一個大型的資料儲存基礎設施一旦開始投入使用,就很難再調整了,因此它必須能夠適應各種不同的應用型別和資料場景。

  應用感知

  最早一批使用大資料的使用者已經開發出了一些針對應用的定製的基礎設施,比如針對政府專案開發的系統,還有大型網際網路服務商創造的專用伺服器等。在主流儲存系統領域,應用感知技術的使用越來越普遍,它也是改善系統效率和效能的重要手段,所以,應用感知技術也應該用在大資料儲存環境裡。

  小使用者怎麼辦?

  依賴大資料的不僅僅是那些特殊的大型使用者群體,作為一種商業需求,小型企業未來也一定會應用到大資料。我們看到,有些儲存廠商已經在開發一些小型的“大資料”儲存系統,主要吸引那些對成本比較敏感的使用者。

[編輯]

大資料應用與案例分析

  1. 大資料應用案例之:醫療行業

  [1] Seton Healthcare是採用IBM最新沃森技術醫療保健內容分析預測的首個客戶。該技術允許企業找到大量病人相關的臨床醫療資訊,通過大資料處理,更好地分析病人的資訊。

  [2] 在加拿大多倫多的一家醫院,針對早產嬰兒,每秒鐘有超過3000次的資料讀取。通過這些資料分析,醫院能夠提前知道哪些早產兒出現問題並且有針對性地採取措施,避免早產嬰兒夭折。

  [3] 它讓更多的創業者更方便地開發產品,比如通過社交網路來收集資料的健康類App。也許未來數年後,它們蒐集的資料能讓醫生給你的診斷變得更為精確,比方說不是通用的成人每日三次一次一片,而是檢測到你的血液中藥劑已經代謝完成會自動提醒你再次服藥。

  2. 大資料應用案例之:能源行業

  [1] 智慧電網現在歐洲已經做到了終端,也就是所謂的智慧電錶。在德國,為了鼓勵利用太陽能,會在家庭安裝太陽能,除了賣電給你,當你的太陽能有多餘電的時候還可以買回來。通過電網收集每隔五分鐘或十分鐘收集一次資料,收集來的這些資料可以用來預測客戶的用電習慣等,從而推斷出在未來2~3個月時間裡,整個電網大概需要多少電。有了這個預測後,就可以向發電或者供電企業購買一定數量的電。因為電有點像期貨一樣,如果提前買就會比較便宜,買現貨就比較貴。通過這個預測後,可以降低採購成本

  [2] 維斯塔斯風力系統,依靠的是BigInsights軟體和IBM超級計算機,然後對氣象資料進行分析,找出安裝風力渦輪機和整個風電場最佳的地點。利用大資料,以往需要數週的分析工作,現在僅需要不足1小時便可完成。

  3. 大資料應用案例之:通訊行業

  [1] XO Communications通過使用IBM SPSS預測分析軟體,減少了將近一半的客戶流失率。XO現在可以預測客戶的行為,發現行為趨勢,並找出存在缺陷的環節,從而幫助公司及時採取措施,保留客戶。此外,IBM新的Netezza網路分析加速器,將通過提供單個端到端網路、服務、客戶分析檢視的可擴充套件平臺,幫助通訊企業制定更科學、合理決策。

  [2] 電信業者透過數以千萬計的客戶資料,能分析出多種使用者行為和趨勢,賣給需要的企業,這是全新的資料經濟。

  [3] 中國移動通過大資料分析,對企業運營的全業務進行鍼對性的監控、預警、跟蹤。系統在第一時間自動捕捉市場變化,再以最快捷的方式推送給指定負責人,使他在最短時間內獲知市場行情。

  [4] NTT docomo(日本最大的行動通訊運營商,擁有超過6千萬的簽約使用者)把手機位置資訊和網際網路上的資訊結合起來,為顧客提供附近的餐飲店資訊,接近末班車時間時,提供末班車資訊服務。

  4. 大資料應用案例之:零售業

  [1] "我們的某個客戶,是一家領先的專業時裝零售商,通過當地的百貨商店、網路及其郵購目錄業務為客戶提供服務。公司希望向客戶提供差異化服務,如何定位公司的差異化,他們通過從 Twitter 和 Facebook 上收集社交資訊,更深入的理解化妝品的營銷模式,隨後他們認識到必須保留兩類有價值的客戶:高消費者和高影響者。希望通過接受免費化妝服務,讓使用者進行口碑宣傳,這是交易資料與互動資料的完美結合,為業務挑戰提供瞭解決方案。"Informatica的技術幫助這家零售商用社交平臺上的資料充實了客戶主資料,使他的業務服務更具有目標性。

  [2] 零售企業也監控客戶的店內走動情況以及與商品互動。它們將這些資料與交易記錄相結合來展開分析,從而在銷售哪些商品、如何擺放貨品以及何時調整售價上給出意見,此類方法已經幫助某領先零售企業減少了17%的存貨,同時在保持市場份額的前提下,增加了高利潤率自有品牌商品的比例。