近期由中關村大數據產業聯盟舉辦的“大數據100分”線上研討會中,南大通用的CTO、資深業界專家武新博士同眾多網友分享了底層數據處理技術的發展趨勢和正在經歷的巨大變革。以下為分享實錄:
大數據這個領域過去5年發展很快、熱度很高,但是總的來說目前還在起步階段。本次研討會我會先談談數據,以及大數據對數據處理技術的壓力,然后為大家分享一下為什么這幾年數據處理技術上的創新很多。
1. 數據價值的發現與使用
在大數據的4個V中,最顯著的特征應該是Value(價值)。不管數據多大,是什么結構,來源如何,能給使用者帶來價值的數據是最重要的數據。
我跟數據打了20多年的交道,從來沒感覺到搞數據的地位有今天這么高。整個社會對數據的認知變了,大數據最大的貢獻至少是讓社會各個層面開始認識到數據的重要性,包括最高領導和底層的老百姓。
目前大家基本達成共識:數據像石油、煤一樣是寶貴的資產,其內在的價值非常巨大。另外一個顯著的貢獻無疑是互聯網企業對于數據的巧妙使用和價值體現。
2. 數據處理技術的回顧
互聯網的數據“大”是不爭的事實,現在分析一下數據處理技術面臨的挑戰。目前除了互聯網企業外,數據處理領域還是傳統關系型數據庫(RDBMS)的天下。傳統RDBMS的核心設計思想基本上是30年前形成的。過去30年脫穎而出的無疑是Oracle公司。全世界數據庫市場基本上被Oracle,IBM/DB2,Microsoft/SQL Server 壟斷,其他幾家市場份額都比較小。SAP去年收購了Sybase,也想成為數據庫廠商。有份量的獨立數據庫廠商現在就剩下Oracle和Teradata。開源數據庫主要是MySQL,PostgreSQL,除了互聯網領域外,其他行業用的很少。這些數據庫當年主要是面向OLTP交易型需求設計、開發的,是用來開發人機會話應用為主的。這些傳統數據庫底層的物理存儲格式都是行存儲,比較適合數據頻繁的增刪改操作,但對于統計分析類的查詢,行存儲其實效率很低。在這些成熟的數據庫產品中,有2個典型特例:一個是Teradata,一個是Sybase IQ。
Teradata一開始就使用MPP(Massive Parallel Processing)架構,以軟硬一體機的產品方式提供給客戶,其定位是高端客戶的數據倉庫和決策分析系統,Teradata在全世界的客戶只有幾千個。在這個數據分析高端市場上,Teradata一直是老大,在數據分析技術上Oracle和IBM打不過Teradata。Sybase IQ是一款最早基于列存儲的關系型數據庫產品,其定位跟Teradata類似,不過是以軟件方式銷售的。Teradata和Sybase IQ在數據分析應用上的性能其實都比Oracle,DB2等要普遍好。
3. 數據增長加速,數據多樣化,大數據時代來臨
如果說現在是大數據時代了,其實是數據來源發生了質的變化。在互聯網出現之前,數據主要是人機會話方式產生的,以結構化數據為主。所以大家都需要傳統的RDBMS來管理這些數據和應用系統。那時候的數據增長緩慢、系統都比較孤立,用傳統數據庫基本可以滿足各類應用開發。
互聯網的出現和快速發展,尤其是移動互聯網的發展,加上數碼設備的大規模使用,今天數據的主要來源已經不是人機會話了,而是通過設備、服務器、應用自動產生的。傳統行業的數據同時也多起來了,這些數據以非結構、半結構化為主,而真正的交易數據量并不大,增長并不快。機器產生的數據正在幾何級增長,比如基因數據、各種用戶行為數據、定位數據、圖片、視頻、氣象、地震、醫療等等。
所謂的“大數據應用”主要是對各類數據進行整理、交叉分析、比對,對數據進行深度挖掘,對用戶提供自助的即席、迭代分析能力。還有一類就是對非結構化數據的特征提取,以及半結構化數據的內容檢索、理解等。
傳統數據庫對這類需求和應用無論在技術上還是功能上都幾乎束手無策。這樣其實就給類似Hadoop的技術和平臺提供了很好的發展機會和空間。互聯網公司自然就選擇能支撐自己業務的開源技術了,反過來又推動了開源技術的快速發展。
4. 新的數據處理技術、產品和創新
為了應對數據處理的壓力,過去十年間在數據處理技術領域有了很多的創新和發展。除了面向高并發、短事務的OLTP內存數據庫外(Altibase, Timesten),其他的技術創新和產品都是面向數據分析的,而且是大規模數據分析的,也可以說是大數據分析的。
在這些面向數據分析的創新和產品中,除了基于Hadoop環境下的各種NoSQL外,還有一類是基于Shared Nothing架構的面向結構化數據分析的新型數據庫產品(可以叫做NewSQL),如:Greenplum(EMC收購),Vertica(HP 收購),Asterdata(TD 收購),以及南大通用在國內開發的GBase 8a MPP Cluster等。目前可以看到的類似開源和商用產品達到幾十個,而且還有新的產品不斷涌出。一個有趣的現象是這些新的數據庫廠商多數都還沒有10年歷史,而且發展好的基本都被收購了。收購這些新型數據庫廠商的公司,比如EMC、HP,都希望通過收購新技術和產品進入大數據處理市場,是新的玩家。SAP除了收購Sybase外,自己開發了一款叫HANA的新產品,這是一款基于內存、面向數據分析的內存數據庫產品。
這類新的分析型數據庫產品的共性主要是:
架構基于大規模分布式計算(MPP);硬件基于X86 PC 服務器;存儲基于服務器自帶的本地硬盤;操作系統主要是Linux;擁有極高的橫向擴展能力(scale out)和內在的故障容錯能力和數據高可用保障機制;能大大降低每TB數據的處理成本,為“大數據”處理提供技術和性價比支撐。
總的來看,數據處理技術進入了一個新的創新和發展高潮,機會很多。這里的主要原因是一直沿用了30年的傳統數據庫技術遇到了技術瓶頸,而市場和用戶的需求在推動著技術的創新,并為此創造了很多機會。在大數據面前,越來越多的用戶愿意嘗試新技術和新產品,不那么保守了,因為大家開始清晰地看到傳統技術的瓶頸,選擇新的技術才有可能解決他們面臨的新問題。
現在的總體趨勢是在數據量快速增長、多類數據分析并存的需求壓力下,數據處理技術朝著細分方向發展,過去30年一種平臺滿足所有應用需求的時代已經過去。我們必須開始根據應用需求和數據量選擇最適合的產品和技術來支撐應用。世界數據處理市場格局正在發生革命性的變化,傳統數據庫(OldSQL)一統天下變成了OldSQL+NewSQL+NoSQL+其他新技術(流、實時、內存等)共同支撐多類應用的局面。在大數據時代,需要的是數據驅動最優平臺和產品的選擇。
5. MPP關系型數據庫與Hadoop的非關系型數據庫
大數據存儲技術路線最典型的共有三種:
第一種是采用MPP架構的新型數據庫集群,重點面向行業大數據,采用Shared Nothing架構,通過列存儲、粗粒度索引等多項大數據處理技術,再結合MPP架構高效的分布式計算模式,完成對分析類應用的支撐,運行環境多為低成本PC Server,具有高性能和高擴展性的特點,在企業分析類應用領域獲得極其廣泛的應用。
這類MPP產品可以有效支撐PB級別的結構化數據分析,這是傳統數據庫技術無法勝任的。對于企業新一代的數據倉庫和結構化數據分析,目前最佳選擇是MPP數據庫。
圖1 MPP架構圖
第二種是基于Hadoop的技術擴展和封裝,圍繞Hadoop衍生出相關的大數據技術,應對傳統關系型數據庫較難處理的數據和場景,例如針對非結構化數據的存儲和計算等,充分利用Hadoop開源的優勢,伴隨相關技術的不斷進步,其應用場景也將逐步擴大,目前最為典型的應用場景就是通過擴展和封裝Hadoop來實現對互聯網大數據存儲、分析的支撐。這里面有幾十種NoSQL技術,也在進一步的細分。對于非結構、半結構化數據處理、復雜的ETL流程、復雜的數據挖掘和計算模型,Hadoop平臺更擅長。
第三種是大數據一體機,這是一種專為大數據的分析處理而設計的軟、硬件結合的產品,由一組集成的服務器、存儲設備、操作系統、數據庫管理系統以及為數據查詢、處理、分析用途而特別預先安裝及優化的軟件組成,高性能大數據一體機具有良好的穩定性和縱向擴展性。
6. 數據倉庫的重要性
在互聯網高速發展之前,無論是電信運營商,還是大銀行,保險公司等都花費了巨額資金建立了自己的企業級數據倉庫。這些倉庫主要是為企業決策者生成企業的一些關鍵指標(KPI),有的企業有幾千張、甚至上萬張KPI報表,有日表,周表,月表等等。這些系統有幾個主要特征:
技術架構主要基于傳統RDBMS + 小型機 + 高端陣列 (就是大家說的IOE),當然數據庫有部分DB2,Teradata等。
報表基本都是固定的靜態報表,產生的方式是T+1 (無法即時產生)。
數據量增長相對緩慢,DW的環境變化很少。
最終用戶只能看匯總的報表,很少能夠基于匯總數據做動態drilldown (鉆取)。
多數領導基本上認為花了很多錢,但看不出是否值得做,有雞肋的感覺。最后大家對大量的報表都視而不見了。
這類系統屬于“高富帥”,是有錢的企業給領導用的。
最后,目前多數企業和部門根本就沒有數據倉庫。其實大家對傳統數據的分析還沒做得太好、還沒有普及,現在又遇上了大數據。
數據倉庫對企業是真正有用的,其關鍵還是如何把數據用好。
7. 數據處理技術的核心問題到底是什么?
其實我們一直面臨著數據處理中最核心、最大的問題,那就是性能問題。性能不好的技術和產品是沒有生命力的。數據處理性能問題不是因為大數據才出現,也不會有了大數據技術而消失。處理性能的提升將促進對數據價值的挖掘和使用,而數據價值挖掘的越多、越深入,對處理技術要求就越高。
目前的數據倉庫只能滿足一些靜態統計需求,而且是T+1模式;也是因為性能問題,運營商無法有效構造超過PB級別的大數據倉庫,無法提供即席查詢、自助分析、復雜模型迭代分析的能力,更無法讓大量一線人員使用數據分析手段。
今天如果做“大數據”數據倉庫,運營商面臨的挑戰比上個10年要大的多。目前沒有單一技術和平臺能夠滿足類似運營商的數據分析需求。可選的方案只能是混搭架構,用不同的分布式技術來支撐一個超越PB級的數據倉庫系統。這個混搭架構主要的核心是新一代的MPP并行數據庫集群+ Hadoop集群,再加上一些內存計算、甚至流計算技術等。
大數據需要多元化的技術來支撐。當前數據處理對企業的挑戰越來越大,主要是下面幾個原因:
第一個原因是數據量已經是上一代的一個數量級了,1個省份級運營商1年就可超越1PB結構化數據。
第二個原因是“大數據”關注的更多是用戶行為、群體趨勢、事件之間的相關性等,而不僅僅是過去的KPI,。這就對數據分析平臺對數據的分析能力和性能提出了新的要求和挑戰。
圖2未來大數據處理的核心技術
8. 總結——新型MPP數據庫的價值
技術:基于列存儲+MPP架構的新型數據庫在核心技術上跟傳統數據庫有巨大差別,是為面向結構化數據分析設計開發的,能夠有效處理PB級別的數據量。在技術上為很多行業用戶解決了數據處理性能問題。
用戶價值:新型數據庫是運行在x-86 PC服務器之上的,可以大大降低數據處理的成本(1個數量級)。
未來趨勢:新型數據庫將逐步與Hadoop生態系統結合混搭使用,用MPP處理PB級別的、高質量的結構化數據,同時為應用提供豐富的SQL和事務支持能力;用Hadoop實現半結構化、非結構化數據處理。這樣可同時滿足結構化、半結構化和非結構化數據的處理需求。
下圖是南大通用正在做的大數據處理平臺架構圖,將逐步把MPP與Hadoop技術融合在一起,為用戶提供透明的數據管理平臺。
圖3 MPP與Hadoop技術融合的產品架構圖