大數據正在徹底改變IT世界。那么,什么樣的數據談得上數據呢?
根據IDC的報告,未來十年全球大數據將增加50倍。僅在2011年,我們就將看到1.8ZB(也就是1.8萬億GB)的大數據創建產生。這相當于每位美國人每分鐘寫3條Tweet,而且還是不停地寫2.6976萬年。在未來十年,管理數據倉庫的服務器的數量將增加10倍以便迎合50倍的大數據增長。
毫無疑問,大數據將挑戰企業的存儲架構及數據中心基礎設施等,也會引發云計算、數據倉庫、數據挖掘、商業智能等應用的連鎖反應。2011年企業會將更多的多TB(1TB=1000GB)數據集用于商務智能和商務分析;到2020年,全球數據使用量預計暴增44倍,達到35.2ZB(1ZB=10億TB)。
大數據面臨的挑戰——RISC已無法滿足未來的企業架構需求
對于海量的數據信息,如何對這些數據進行復雜的應用成了現今數據倉庫、商業智能和數據分析技術的研究熱點。數據挖掘就是從大量的數據中發現隱含的規律性的內容,解決數據的應用質量問題。充分利用有用的數據,廢棄虛偽無用的數據,是數據挖掘技術的最重要的應用。傳統的數據庫中的數據結構性很強,即其中的數據為完全結構化的數據,而目前數據最大特點就是半結構化,因此此類數據挖掘比面向單個數據倉庫的數據挖掘要復雜得多。
談到傳統數據倉庫的時候,大家不免就會買存儲設備,選服務器,不管是IBM Power或者是Oracle架構的,這些其實都是在傳統時代非常有名的數據庫品牌,把它構建在一起,構成數據倉庫,微軟、COCNOS等都提供解決方案。
但從目前來看,現有的數據倉庫已經遠遠不能滿足未來的企業大數據架構。
對企業業務來說,不光要有高擴展性,而且是動態的需求,能夠讓設備自由擴充,不用去管數據倉庫、應用具體運行在這些機器的哪一臺上,這些計算能力的耗費完全是根據業務的伸縮而來的。
傳統的架構做這類的項目十年到二十年的時間,它們有一個特點,數據倉庫的訪問和傳統的不同,所謂的不同就是查詢特別大,查詢的語句特別長、特別復雜,不像去銀行的存提款只是在眾多的記錄中查詢一兩條,它符合大數據查詢的特征,傳統的查詢索引作用非常有限。在數據庫中涉及多張表的連接,同時還有匯總、算標準差等復雜的運算。但是相反它的并發請求不是很多,一個企業就是人再多,不會同時超過一千個業務分析員在分析數據。
因此,在數據倉庫誕生的第一天,系統一直就有一個瓶頸,要把大查詢分解成小任務,這些小任務由并行的服務器來完成,我們強調小的機器要多,而不要大的機器CPU數少。因此,數據倉庫天生就是MPP、開放架構的CPU加上并行擴展橫向擴展數量,從這方面來看,擴展性較差,并行處理能力有限的RISC架構已經不能代表未來的企業架構。
而以英特爾為代表的X86處理器天生就是為大數據應用而生,Oracle推出的Exadata數據倉庫服務器采用了英特爾至強(Nehalem)處理器、DDR3內存和40Gbps InfiniBand,Exadata數據庫機第二版的CPU、內存和網絡速度分別提高了80%、200%、100%,單個數據庫服務器內存容量則達到了72GB,原始磁盤容量和每機架磁盤容量達到100TB、336TB,Sun FlashFire內存卡則實現了高性能的OLTP。
當大數據遭遇云計算
云計算為什么能盛行呢?在互聯網領域應用系統的構建:客戶群體是不確定的、系統規模不確定、系統投資不固定、業務應用有很清晰的并行分割特征、數據倉庫系統的構建、數據倉庫規模可估算、數據倉庫的系統投資與業務分析的價值和回報相關、商業智能應用屬于整體應用、Saas模式構建數據倉庫系統。
在大數據技術上用云計算構建下一代數據倉庫成為熱門話題,這當中包括大數據管理,分布式進行文件系統,如Hadoop、Mapreduce數據分割與訪問執行;同時SQL支持,以Hive HADOOP為代表的SQL界面支持。從系統需求來看,大數據的架構對系統提出了新的挑戰:
1、集成度更高:這意味著一個標準機箱最大限度完成特定任務,華碩不久推出的一款高密度機架式服務器RS720,2U高度最大能采用支持4個雙路計算節點,實現單機8個英特爾5600系列處理器和高達總計768G內存資源。
2、配置更合理、速度更快:存儲、控制器、I/O通道、內存、CPU、網絡均衡設計,針對數據倉庫訪問最優設計,比傳統類似平臺高出一個數量級以上,這方面的經典案例是數據倉庫頭號廠商Teradata,其采用雙路Xeon六核處理器的企業級數據倉庫5650可輕松為數千名用戶處理更復雜、更大量的工作負載、持續負載以及批負載、操作性查詢、簡單報表和復雜的分析,所有功能均在同一個平臺上運行。與上一代產品相比,動態企業級數據倉庫5650的性能提高了43%,占地面積保持不變,減少了能源消耗和空間需求。
3、整體能耗更低:同等計算任務,能耗最低。
4、系統更加穩定可靠:能夠消除各種單點故障環節,統一一個部件、器件的品質和標準。
5、管理維護費用低:數據藏的常規管理全部集成。
6、可規劃和預見的系統擴容、升級路線圖。
云計算環境作為大數據處理平臺
1.云計算環境中基本計算單元的分化
企業云計算平臺上雖然有多個并行計算的CPU,但并沒有創造出具有超強數據處理能力的超級CPU,因此云計算平臺需要的是有并行運算能力的軟件系統。同時,當所有用戶的數據全部放在云端時,雖然存儲容量可以很方便地擴充,但面對大量用戶同時發起的海量數據處理請求,簡單的數據處理邏輯已經無法滿足需要。
可以看到,國內有相當多的電商企業,用小型機和Oracle扛了好幾年,并請了全國最牛的Oracle的專家不停優化他的Oracle和小型機,初期發展可能很快,但是后來由于數據量激增,業務開始受到嚴重影響,最典型的例子無疑是京東商城前段時間發生的大規模訪問請求宕機事件,因此他們開始逐漸放棄了Oracle或者MS-SQL,并逐漸轉向MySQL X86的分布式架構。
目前的基本計算單元常常是普通的X86服務器,它們組成了一個大的云,而未來的云計算單元里有可能有存儲單元、計算單元、協調單元,總體的效率會更高。
2、對系統穩定性的需求
在應對大規模訪問的時候有一些系統穩定性的追求,來自很多方面,來自網絡穩定性、數據庫穩定性。對系統而言,需要把握一個大原則,需要消除任何單點故障。不光是網絡上單點故障,還有來自你呼叫中心里的單點故障,只要有單點故障一定要消除掉。因為對于電商行業而言,每一秒都是錢,電子商務業務如果宕機一個小時,損失多少是可以算出來的,電商行業需要非常全面的技術系統監控報警系統。有時候你會發現你如果通過技術系統的監控去推導出你的技術發生問題已經晚了。