大資料技術創新呈現“原創-開源-產品化”的階梯格局

iris_1992發表於2015-01-09
(一) 大資料對傳統資料處理技術體系提出挑戰


  大資料來源於網際網路、企業系統和物聯網等資訊系統,經過大資料處理系統的分析挖掘,產生新的知識用以支撐決策或業務的自動智慧化運轉。從資料在資訊系統中的生命週期看,大資料從資料來源經過分析挖掘到最終獲得價值一般需要經過 5 個主要環節,包括資料準備、資料儲存與管理、計算處理、資料分析和知識展現,技術體系如圖 1所示。每個環節都面臨不同程度的技術上的挑戰。


  資料準備環節:在進行儲存和處理之前,需要對資料進行清洗、整理,傳統資料處理體系中稱為 ETL ( Extracting ,Transforming,Loading)過程。與以往資料分析相比,大資料的來源多種多樣,包括企業內部資料庫、網際網路資料和物聯網資料,不僅數量龐大、格式不一,質量也良莠不齊。這就要求資料準備環節一方面要規範格式,便於後續儲存管理,另一方面要在儘可能保留原有語義的情況下去粗取精、消除噪聲。


  資料儲存與管理環節:當前全球資料量正以每年超過 50%的速度增長,儲存技術的成本和效能面臨非常大的壓力。大資料儲存系統不僅需要以極低的成本儲存海量資料,還要適應多樣化的非結構化資料管理需求,具備資料格式上的可擴充套件性。


  計算處理環節:需要根據處理的資料型別和分析目標,採用適當的演算法模型,快速處理資料。海量資料處理要消耗大量的計算資源,對於傳統單機或平行計算技術來說,速度、可擴充套件性和成本上都難以適應大資料計算分析的新需求。分而治之的分散式計算成為大資料的主流計算架構,但在一些特定場景下的實時性還需要大幅提升。


  資料分析環節:資料分析環節需要從紛繁複雜的資料中發現規律提取新的知識,是大資料價值挖掘的關鍵。傳統資料探勘物件多是結構化、單一物件的小資料集,挖掘更側重根據先驗知識預先人工建立模型,然後依據既定模型進行分析。對於非結構化、多源異構的大資料集的分析,往往缺乏先驗知識,很難建立顯式的數學模型,這就需要發展更加智慧的資料探勘技術。


  知識展現環節:在大資料服務於決策支撐場景下,以直觀的方式將分析結果呈現給使用者,是大資料分析的重要環節。如何讓複雜的分析結果易於理解是主要挑戰。在嵌入多業務中的閉環大資料應用中,一般是由機器根據演算法直接應用分析結果而無需人工干預,這種場景下知識展現環節則不是必需的。






  總的來看,大資料對資料準備環節和知識展現環節來說只是量的變化,並不需要根本性的變革。但大資料對資料分析、計算和儲存三個環節影響較大,需要對技術架構和演算法進行重構,是當前和未來一段時間大資料技術創新的焦點。下面簡要分析上述 3 個環節面臨的挑戰及發展趨勢。


  (二) 大資料儲存、計算和分析技術是關鍵


  1.大資料儲存管理技術


  資料的海量化和快增長特徵是大資料對儲存技術提出的首要挑戰。這要求底層硬體架構和檔案系統在價效比上要大大高於傳統技術,並能夠彈性擴充套件儲存容量。但以往網路附著儲存系統(NAS)和儲存區域網路(SAN)等體系,儲存和計算的物理裝置分離,它們之間要透過網路介面連線,這導致在進行資料密集型計算(Data Intensive Computing)時 I/O 容易成為瓶頸。同時,傳統的單機檔案系統(如NTFS)和網路檔案系統(如 NFS)要求一個檔案系統的資料必須儲存在一臺物理機器上,且不提供資料冗餘性,可擴充套件性、容錯能力和併發讀寫能力難以滿足大資料需求。


  谷歌檔案系統(GFS)和 Hadoop 的分散式檔案系統 HDFS(Hadoop Distributed File System)奠定了大資料儲存技術的基礎。與傳統系統相比,GFS/HDFS 將計算和儲存節點在物理上結合在一起,從而避免在資料密集計算中易形成的 I/O 吞吐量的制約,同時這類分散式儲存系統的檔案系統也採用了分散式架構,能達到較高的併發訪問能力。儲存架構的變化如圖 2 所示。


  當前隨著應用範圍不斷擴充套件,GFS 和 HDFS 也面臨瓶頸。雖然 GFS和 HDFS 在大檔案的追加(Append)寫入和讀取時能夠獲得很高的效能,但隨機訪問(random access)、海量小檔案的頻繁寫入效能較低,因此其適用範圍受限。業界當前和下一步的研究重點主要是在硬體上基於 SSD 等新型儲存介質的儲存體系架構,同時對現有分散式儲存的檔案系統進行改進,以提高隨機訪問、海量小檔案存取等效能。






  大資料對儲存技術提出的另一個挑戰是多種資料格式的適應能力。格式多樣化是大資料的主要特徵之一,這就要求大資料儲存管理系統能夠適應對各種非結構化資料進行高效管理的需求。資料庫的一致性(Consistency)、可用性(Availability)和分割槽容錯性(Partition-Tolerance)不可能都達到最佳,在設計儲存系統時,需要在 C、A、P 三者之間做出權衡。傳統關係型資料庫管理系統(RDBMS)以支援事務處理為主,採用了結構化資料表的管理方式,為滿足強一致性(C)要求而犧牲了可用性(A)。


  為大資料設計的新型資料管理技術,如谷歌 BigTable 和 Hadoop HBase 等非關係型資料庫(NoSQL,Not only SQL),透過使用“鍵-值(Key-Value)”對、檔案等非二維表的結構,具有很好的包容性,適應了非結構化資料多樣化的特點。同時,這類 NoSQL 資料庫主要面向分析型業務,一致性要求可以降低,只要保證最終一致性即可,給併發效能的提升讓出了空間。谷歌公司在 2012 年披露的 Spanner 資料庫,透過原子鐘實現全域性精確時鐘同步,可在全球任意位置部署,系統規模可達到 100 萬~1000 萬臺機器。Spanner 能夠提供較強的一致性,還支援 SQL 介面,代表了資料管理技術的新方向。整體來看,未來大資料的儲存管理技術將進一步把關係型資料庫的操作便捷性特點和非關係型資料庫靈活性的特點結合起來,研發新的融合型儲存管理技術。


  2.大資料平行計算技術


  大資料的分析挖掘是資料密集型計算,需要巨大的計算能力。與傳統“資料簡單、演算法複雜”的高效能運算不同,大資料的計算是資料密集型計算,對計算單元和儲存單元間的資料吞吐率要求極高,對價效比和擴充套件性的要求也非常高。傳統依賴大型機和小型機的平行計算系統不僅成本高,資料吞吐量也難以滿足大資料要求,同時靠提升單機 CPU 效能、增加記憶體、擴充套件磁碟等實現效能提升的縱向擴充套件(Scale Up)的方式也難以支撐平滑擴容。






  谷歌在 2004 年公開的 MapReduce 分散式平行計算技術,是新型分散式計算技術的代表。一個 MapReduce 系統由廉價的通用伺服器構成,透過新增伺服器節點可線性擴充套件系統的總處理能力(Scale Out),在成本和可擴充套件性上都有巨大的優勢。谷歌的 MapReduce 是其內部網頁索引、廣告等核心系統的基礎。之後出現的開源實現 Apache Hadoop MapReduce 是谷歌 MapReduce 的開源實現,目前已經成為目前應用最廣泛的大資料計算軟體平臺。


  MapReduce 架構能夠滿足“先儲存後處理”的離線批次計算(batch processing)需求,但也存在侷限性,最大的問題是時延過大,難以適用於機器學習迭代、流處理等實時計算任務,也不適合針對大規模圖資料等特定資料結構的快速運算。


  為此,業界在 MapReduce 基礎上,提出了多種不同的平行計算技術路線,如圖 3 所示。如 Yahoo 提出的 S4 系統、Twitter 的 Storm系統是針對“邊到達邊計算”的實時流計算(Real time streaming process)框架,可在一個時間視窗上對資料流進行線上實時分析,已經在實時廣告、微博等系統中得到應用。谷歌 2010 年公佈的 Dremel系統,是一種互動分析(Interactive Analysis)引擎,幾秒鐘就可完成 PB(1PB=1015B)級資料查詢操作。此外,還出現了將 MapReduce記憶體化以提高實時性的 Spark 框架、針對大規模圖資料進行了最佳化的Pregel 系統等等。






  針對不同計算場景建立和維護不同計算平臺的做法,硬體資源難以複用,管理運維也很不方便,研發適合多種計算模型的通用架構成為業界的普遍訴求。為此,Apache Hadoop 社群在 2013 年 10 月釋出的 Hadoop 2.0 中推出了新一代的 MapReduce 架構。新架構的主要變化是將舊版本 MapReduce 中的任務排程和資源管理功能分離,形成一層與任務無關的資源管理層(YARN)。如圖 4 所示,YARN 對下負責物理資源的統一管理,對上可支援批處理、流處理、圖計算等不同模型,為統一大資料平臺的建立提供了新平臺。基於新的統一資源管理層開發適應特定應用的計算模型,仍將是未來大資料計算技術發展的重點。


  3.大資料分析技術


  在人類全部數字化資料中,僅有非常小的一部分(約佔總資料量的 1%)數值型資料得到了深入分析和挖掘(如迴歸、分類、聚類),大型網際網路企業對網頁索引、社交資料等半結構化資料進行了淺層分析(如排序)。佔總量近 60%的語音、圖片、影片等非結構化資料還難以進行有效的分析。


  大資料分析技術的發展需要在兩個方面取得突破,一是對體量龐大的結構化和半結構化資料進行高效率的深度分析,挖掘隱性知識,如從自然語言構成的文字網頁中理解和識別語義、情感、意圖等;二是對非結構化資料進行分析,將海量複雜多源的語音、影像和影片資料轉化為機器可識別的、具有明確語義的資訊,進而從中提取有用的知識。


  目前的大資料分析主要有兩條技術路線,一是憑藉先驗知識人工建立數學模型來分析資料,二是透過建立人工智慧系統,使用大量樣本資料進行訓練,讓機器代替人工獲得從資料中提取知識的能力。由於佔大資料主要部分的非結構化資料,往往模式不明且多變,因此難以靠人工建立數學模型去挖掘深藏其中的知識。


  透過人工智慧和機器學習技術分析大資料,被業界認為具有很好的前景。2006 年穀歌等公司的科學家根據人腦認知過程的分層特性,提出增加人工神經網路層數和神經元節點數量,加大機器學習的規模,構建深度神經網路,可提高訓練效果,並在後續試驗中得到證實。這一事件引起工業界和學術界高度關注,使得神經網路技術重新成為資料分析技術的熱點。目前,基於深度神經網路的機器學習技術已經在語音識別和影像識別方面取得了很好的效果。但未來深度學習要在大資料分析上廣泛應用,還有大量理論和工程問題需要解決,主要包括模型的遷移適應能力,以及超大規模神經網路的工程實現等。


  (三) 大資料技術創新呈現“原創-開源-產品化”的階梯格局


  當前,國際上大資料技術創新方面形成了獨特的“網際網路公司原創——開源擴散——IT 廠商產品化——其他企業使用”特點,如圖 5所示。


大資料技術


  總結網際網路企業在大資料技術創新方面的經驗,如下幾個方面值得關注:


  第一,豐富的資料和強大的平臺是大資料創新的基礎條件。以谷歌為例,它的資料資源極為豐富,擁有全球網頁索引庫,掌握幾十億使用者的搜尋行為資料,建立了高解析度的谷歌地圖資料資料庫,擁有2014谷歌+社交資料和 YouTube 海量影片資料。谷歌的基礎設施也十分強大,在全球擁有 36 個超大型資料中心,上百萬臺伺服器。


  第二,大資料的應用效益不是飛躍突進的,必須依靠長期的不斷累積。從搜尋、廣告和推薦等成熟應用來看,大資料的應用效果並非立竿見影,其巨大的效益是在日積月累的微小進步中逐漸形成的。


  第三,累積效益的獲取,主要靠持續不斷的技術迭代。網際網路企業一直奉行敏捷開發、快速迭代的軟體開發理念,往往在一兩週內就能完成一個“規劃、開發、測試、釋出”的迭代週期。大型網際網路企業透過這種長期持續“小步快跑”的研發方式,支撐了大資料應用效果的持續提升,建立了技術上的領先優勢。


  第四,技術和應用一體化組織,是快速迭代的保障。網際網路企業之所以能夠保持高效率的持續技術演進,其研發和應用一體化的組織方式是很重要的因素。與傳統行業“應用者——解決方案提供商”分離的組織形態不同,網際網路企業省去了解決方案供應商環節,可以迅速將需求轉化為解決方案。谷歌、百度等大型網際網路企業的研發人員佔比一般都在 50%~70%,遠遠高於其他型別的公司,這為技術開發提供了強大的後盾。


  最後,大資料技術發展與開源運動的結合也成為大資料技術創新中的一個鮮明特點。領先企業進行前沿創新,創新成果透過開源得到不斷完善並向全社會輻射,原創與開源相得益彰,在國際上形成了一套高效運轉的研發產業化體系。開源模式讓人們“不必重複發明輪子”,能夠降低研發和採購成本,還能夠啟發新的創意,加快再創新步伐。特別是開源 Apache Hadoop 的大範圍應用,大大加速了大資料應用程式,一大批網際網路公司和傳統 IT 企業都從這種技術擴散體系中受益。在此背景下,國內大資料技術研發也應該把自主創新和開源結合起來,以更加開放的心態融入到國際大資料技術創新潮流中去。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/30042727/viewspace-1395524/,如需轉載,請註明出處,否則將追究法律責任。

相關文章