縱橫大數據——云計算數據基礎設施( 簡體 字) | |
作者:何小朝 | 類別:1. -> 程式設計 -> 大數據 |
出版社:電子工業出版社 | 3dWoo書號: 38651 詢問書籍請說出此書號! 有庫存 NT售價: 245 元 |
出版日:5/1/2014 | |
頁數:264 | |
光碟數:0 | |
站長推薦: | |
印刷:黑白印刷 | 語系: ( 簡體 字 ) |
ISBN:9787121232138 | 加入購物車 │加到我的最愛 (請先登入會員) |
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證, 繁體書的下載亦請直接連絡出版社) | |
第1部分 大數據概論
第1章 大數據與云計算 2 1.1 云計算概論 3 1.2 大數據概論 4 1.2.1 現代數據管理需求分析 4 1.2.2 大數據的引入 9 1.2.3 大數據的定義與特征 10 1.2.4 大數據與互聯網 12 1.2.5 大數據戰略、大數據與大數據技術 14 1.3 大數據的技術實現——云計算 15 1.4 本章小結 16 第2章 關系數據庫的挑戰與應對 17 2.1 關系數據庫技術的核心特征 18 2.2 主流關系數據庫的挑戰 22 2.2.1 經典DBMS的挑戰 22 2.2.2 Shared Disk 23 2.2.3 Shared Nothing 24 2.3 改進型關系數據庫 26 2.3.1 技術改進 26 2.3.2 主要產品代表 30 2.4 本章小結 40 第3章 非SQL技術簡介 41 3.1 大數據技術家族 42 3.1.1 NoSQL 42 3.1.2 關系數據庫聯邦NewSQL 42 3.1.3 分布式海量文件管理 43 3.1.4 Map Reduce 43 3.2 分與合——云計算的兩種技術路線 44 3.3 本章小結 44 第 2部分 “分”為云——數據切分 第4章 NoSQL 46 4.1 NoSQL的引入 47 4.1.1 概念詮釋與特征分析 47 4.1.2 NoSQL的本質 50 4.2 NoSQL家族 52 4.2.1 NoSQL產品目錄與分類 52 4.2.2 Hadoop之HBase 54 4.2.3 Facebook之Cassandra 58 4.2.4 MongoDB與CouchDB 61 4.2.5 Oracle NoSQL DB 63 4.2.6 Memcached與Redis 65 4.2.7 圖數據庫Neo4J 65 4.2.8 其他NoSQL數據庫 67 4.2.9 問題與疑惑 67 4.3 NoSQL技術探研 68 4.3.1 NoSQL理論基礎 68 4.3.2 NoSQL技術手段 75 4.3.3 NoSQL技術解析 83 4.4 NoSQL與關系數據庫 88 4.5 本章小結 89 第5章 NewSQL——關系數據庫聯邦 90 5.1 數據庫聯邦的引入 91 5.1.1 企業業務數據管理面臨的問題 91 5.1.2 垂直分庫 92 5.1.3 水平分表 93 5.1.4 讀寫分離 95 5.1.5 聯邦的引入 97 5.2 “聯邦”的設計與實踐 99 5.2.1 企業級“聯邦”架構設計 99 5.2.2 公共基礎服務設計 103 5.2.3 聯邦的元數據庫 106 5.2.4 聯邦的應用實踐 107 5.3 “聯邦”技術分析 108 5.3.1 關于“垂直分庫” 108 5.3.2 如何“水平分表” 110 5.3.3 關于“讀寫分離” 112 5.3.4 基本方法——分布與聚合 114 5.3.5 關于分布式事務 116 5.3.6 關聯操作 117 5.2.7 冗余策略 119 5.2.8 異步解耦策略 120 5.2.9 使用緩存 122 5.2.10 其他問題 123 5.4 數據庫聯邦、NoSQL與主流關系數據庫 124 5.4.1 技術與應用——八仙過海,各顯神通 124 5.4.2 互聯網的神話 126 5.5 本章小結 128 第6章 文件系統聯邦 129 6.1 問題的引入 130 6.1.1 關于幾個數據概念的澄清 130 6.1.2 文件數據管理的困難 131 6.1.3 文件系統聯邦的引入 133 6.2 典型開源技術介紹 135 6.2.1 MogileFS 135 6.2.2 FastDFS 136 6.2.3 MogileFS與FastDFS的對比 138 6.3 技術分析 139 6.4 本章小結 140 第7章 平民化的分布計算——MapReduce 141 7.1 分布式計算概述 142 7.1.1 幾個概念的澄清 142 7.1.2 分布式計算技術綜述 143 7.1.3 MapReduce的引入 147 7.2 MapReduce技術介紹 148 7.2.1 設計思想 148 7.2.2 MapReduce框架介紹 152 7.3 MapReduce技術分析 160 7.3.1 關于效率 160 7.3.2 關于擴展性 162 7.3.3 關于可靠性與可用性 163 7.3.4 關于MapReduce與關系數據庫 164 7.3.5 關于適用的數據類型 167 7.3.6 關于數據存儲與管理 168 7.4 MapReduce的應用實踐 169 7.5 本章小結 170 第8章 后Hadoop時代 171 8.1 Hadoop體系及其困惑 172 8.2 Google的新三駕馬車 173 8.2.1 新一代搜索引擎Caffeine 173 8.2.2 大規模圖處理系統Pregel 174 8.2.3 Dremel——秒級實現PB級數據分析 175 8.3 Symphony MapReduce 181 8.4 后Hadoop時代即將來臨 181 8.5 本章小結 183 第9章 InfiniData—一種關系型云數據庫的設計與實踐 184 9.1 現代企業數據管理需求再分析 185 9.1.1 新的企業數據需求——海量關系數據管理 185 9.1.2 技術分析 187 9.2 關系型云數據庫架構設計 188 9.2.1 關系型云數據庫的引入 188 9.2.2 技術架構設計 189 9.3 云存儲層 192 9.3.1 邏輯架構 193 9.3.2 物理架構 194 9.3.3 關系模型云存儲元 196 9.4 云計算層 198 9.4.1 MapReduce云計算引擎 198 9.4.2 集群式云計算引擎 200 9.4.3 兩種引擎的比較 201 9.5 云存儲索引層 202 9.5.1 存儲索引的管理 202 9.5.2 索引云運行時動態創建 203 9.6 技術分析 203 9.7 本章小結 205 第3部分 云計算的分與合 第10章 合為“云”——數據整合 208 10.1 數據整合的需求分析 209 10.2 存儲整合云 210 10.3 數據庫整合云 211 10.4 本章小結 213 第11章 關于分與合的討論 214 11.1 困惑——分與合,孰是孰非? 215 11.2 分為技,合為神 216 11.3 分為雨,合為云——大數據云 217 11.4 數據管理技術發展趨勢總結 219 11.4.1 數據管理物理基礎設施發展趨勢 219 11.4.2 數據管理軟基礎設施發展趨勢 220 11.5 本章小結 221 第12章 企業大數據技術體系與云計算數據基礎設施 222 12.1 現代企業數據管理需求再分析 223 12.2 新一代企業數據體系建設 225 12.2.1 新一代企業數據體系建設的定義與內容 225 12.2.2 新一代企業數據分類體系 228 12.2.3 新一代企業數據分布與流轉規劃 230 12.3 大數據技術在企業數據架構中的定位 234 12.3.1 技術規劃戰略 234 12.3.2 大數據技術架構規劃 235 12.3.3 典型場景——電子渠道線上行為分析 238 12.4 云計算數據基礎設施概念的引入 240 12.5 本章小結 242 后記——超越技術 243 參考文獻 245 大數據的概念很火,但人們對它的認識卻是混亂的:有人說大數據就是指所有的數據,有人說大數據是指線上行為、日志等半結構/非結構化的數據形態,有人說大數據就是以Hadoop為代表的新技術……到底什么是大數據?同樣風風火火了很久的云計算與大數據有什么關系?令人眼花繚亂的眾多大數據技術的本質是什么?各有什么優缺點?爭論不休的“小變大”與“大變小”技術策略到底孰正孰邪?企業究竟應該如何定位與使用大數據,難道是為了Hadoop而Hadoop?未來的技術方向究竟如何?
本書結合現代企業數據管理實踐,從策略、技術、應用、企業數據架構等多個維度,體系化地對大數據及相關技術進行了全面深入的論述:首先對大數據相關概念予以澄清;接著深入剖析各種大數據技術的內在本質,指出其各自的優缺點、適用場景與相互關系;同時對大數據技術“分”與“合”這兩種廣受爭議的技術策略的內在聯系進行了分析與討論,明確指出現代數據管理技術的發展趨勢;最后結合大數據時代企業新一代數據架構規劃的實際,對大數據及相關技術在企業數據體系中的具體定位給出了切實可行的建議,并且面向云數據中心建設,提出了大數據云——云計算數據基礎設施的概念與方法。 推薦序一
花五個小時,你獲得什么? 這兩年市面上大數據的書也很多了,大體分為兩類,一類是講趨勢,重點是大數據對商業、社會、政府的影響;另一類是講工具,比如,專門講Hadoop指南,但對于企業CIO,CTO和企業架構師們來說,缺少一本承上啟下的“中堅論著”,尤其是對于數據管理類各種技術流派做出一致性評價的書籍,可能是因為從業人員里面能夠擁有如此寬的架構視野,具備具體技術實踐,同時具備思辨能力的人本來就很少,何博士的經歷剛好滿足這幾個要求。 本書有這么幾個特質,導致了它的可讀性和實用價值。 解惑:具備清晰的分析邏輯和對多種技術的內在理解 從關系型數據庫到MapReduce,從NoSQL到分布式文件系統,筆者討論了今天IT環境里的多種技術,并圍繞著CAP,BASE,Codd原則等基本原則對多個技術流派的特點進行了精辟的分析,使得多種技術體系的利弊在一個整體分析框架里來討論,并結合具體應用案例,筆者對相關技術(包括硬件技術潮流),對主要技術演進的“所以然”給出了清晰的分析與解釋。能夠把紛繁復雜的多種技術講得環環相扣,體現了筆者的技術功底和思辨精神,尤其可貴的是,筆者對主要技術優缺點的分析是相對中立和客觀的。何種情況采用何種技術策略,讀者如果“吃透”了本書的見解,會有一個基本的判斷方向。 書中對有些問題的講解,甚至有偵探小說的味道,這個是非常難得的,帶著問題來讀會使讀者收獲更大。同時本書敢于表達自己的“定義”能力,對很多技術的本質闡述用詞精準。 授業:具備實踐性的架構經驗,有實戰指導價值 筆者本人是直接動手做過一個已在應用中的大數據系統的,在本書的后半段也直接分享了這個實踐,這使得整個書中的見解和建議都具備實戰價值,這點對于今天“雷聲大,雨點小”的中國大數據市場是非常可貴了。盡管做過Hadoop工程師、關系型數據庫架構師的人不少,但能夠根據一個特定的企業架構需求,給出恰當的技術建議,包括一套整體思考方法的人,卻非常稀有,何博士此書有些實踐性的“干貨”也是本書的特色之一。 傳道:幫助從業人員提升對數據管理的整體視野 對于更多的IT業者,希望對云計算與大數據的體系有一個整體的理解,尤其能夠歷史地理解數據管理的前世今生,包括互聯網大潮下的架構變遷,這本書尤為可貴。此書對于技術的理解,既包括了技術的深入理解力,又超過了技術本身,能夠站在取舍之道的角度來看技術趨勢,所以這本書,等于對云計算的數據基礎設施與架構選擇等方面,給出了一個方法論與原則方面的參考。對于從事數據中心規劃、大數據架構設計、云計算數據基礎設施的從業人員都有很大幫助。 一本非常有可讀性的書! 甲骨文大中華區技術戰略部總經理 劉松 推薦序二 大數據,從麥肯錫完整給出定義到現在還不到三年的時間。也就是說,這個概念本身依然很新,時間不長。但是,在當今互聯網時代,三年已經是一個不短的時間,尤其對于知識傳播來講。這是一個數據爆炸的時代,是一個信息飛速傳遞的時代,是一個隨時創造奇跡的時代。只有到了今天我才真正有了科技水平日新月異的感覺,新科技、新應用層出不窮。一個“余額寶”幾個月就可以到幾千萬,超越基金公司老大十多年積累的規模;微信一個發紅包的簡單應用,短短幾天時間就有幾千萬人樂在其中;一個求關愛買保險方式,幾天就有幾十萬人參與。 僅僅幾年的時間,大數據的理念已經深入人心。這個概念已經突破了行業界限,突破了地域界限,突破了國家界限,成為全世界都在關心的理念。對于大數據技術和應用的研究已經成為很多國家的科技戰略,甚至已經成為國家戰略。從各國的投入和重視程度,我們不難看到它的重要性和未來前景的廣闊。不論是美國總統奧巴馬計劃投入幾億美元、英國準備用近2億英鎊投入大數據的研究,還是新加坡的大數據人才發展戰略都充分凸顯了各國把大數據作為研究的重點方向和戰略高地。在我們中國,這個概念的普及和重視程度絲毫不亞于任何一個國家。從國務院、工信部到各個地方政府,我們都能夠聽到和看到領導們對大數據的重視程度。短短幾個月的時間,各地政府的想法和做法相繼出臺。 山西太原首先宣布建立中國金融業大數據中心,貴州公布了雄心勃勃的大數據發展戰略與規劃(800億的投入和2020年4500億的產值),廣東省準備設立專門的大數據部門,中關村建立大數據交易中心,可以說是政策和策略層出不窮。各個企業更是不甘落后,不論是互聯網企業,還是技術應用前沿的金融和電信,以及眾多的IT服務公司,大數據無疑都已經成為大家關注的焦點。 對于任何一個事物,不論熱到什么程度,在我們參與和推廣之前,我們一定要理解其本質是什么,它能夠干什么,我們可以如何用,應用這些技術和理念能夠給我們的生活和工作帶來什么好處。要回答這些問題,我們就需要了解什么是大數據,大數據如何定義才比較全面,大數據有哪些特點和特征,大數據在各個行業的潛在應用有哪些,大數據的關鍵技術有哪些,推廣大數據需要什么樣的人才,凡此等等。要用好大數據,有太多的問題需要我們回答,有太多的知識需要我們去學習。 何博士的這本書可以很好地幫助我們去理解和回答這些問題,尤其是他多年的實戰經驗,可以彌補目前這一領域實戰應用的相對匱乏。 我非常同意本書對大數據的定義:大數據就是指企業以“數據驅動業務與運營”的相關戰略與戰術。也就是說,在大數據時代,企業在進行一門決策、開展一項活動、設計一個產品時,需要養成一種習慣(甚至可以說是一種制度或規范):讓數據說話!以數據分析的結果來指導這些決策與設計活動。這樣看來,很顯然,大數據就不是單指某一種數據類型,也不是單指某一種技術了。 那么,要實現“數據驅動業務與運營”,過去企業所擁有的以交易行為為核心的數據顯然是遠遠不夠的。例如,根據一個銀行以前所擁有的交易數據,無法知道這個人的愛好、行為習慣、社會關系等信息,也就無法全面地了解該客戶,那么對該客戶做出的營銷,就無法達到滿足客戶要求的個性化,自然也就很難說是精準營銷了。我們必須將新的數據源補充到現有的數據體系中來,而這些數據正好就是那些被大多數人稱作是大數據的社交媒體、線上行為數據等。也就是說,在這樣的定義下,新數據源成為了企業實現大數據策略所需要補充的數據,是大數據體系中必不可少的重要成員。傳統的結構化數據、內部數據和眾多的非結構化數據、外包數據的結合,才可以讓我們更加準確地理解我們的客戶和服務對象。 再看看在該定義之下的Hadoop技術。同樣,企業要實現“數據驅動業務與運營”,過去所掌握的關系數據庫技術也已經不夠了,同樣必須引入新的技術手段,而以Hadoop為代表的新技術手段也成為了企業大數據體系中需要補充的成員。 在我看來,至今為止,本書這樣的定義,既有相當的高度與長期的可適用性,并且還合理地囊括與兼容了我們過去對大數據的普遍理解,是目前見到的最為恰當的解釋了。 再有就是純技術層面的問題了:Hadoop、NoSQL等技術在企業內到底應該如何使用?這確實是令很多企業頭痛的實際問題。我很贊同本書作者的看法:沒有一種觀點是完全可以拿來照辦的!要做出正確的決策,就必須先對各種技術的本質特點有一個全面正確的了解,然后結合企業自身的實際,做出自己的判斷。于是,該書將很大一部分內容都放在了對各種技術手段的深入分析上了,并且還給出了各種技術在企業數據管理實際中具體的定位參考的相關實例,同時還對實現大數據的技術策略,以及未來數據管理技術的發展趨勢等進行了分析與判斷,內容十分翔實豐富。而到目前為止,在涉及大數據話題的資料與書籍中,能像本書這樣全面分析與介紹大數據技術的還非常少!我認為,對企業與技術人員來講,本書的這些內容遠遠比介紹Hadoop到底如何使用要重要、要有意義得多! 另外,從本書的內容中,我們還了解到一個非常重要的前沿趨勢:即使是純從技術上看大數據,目前以互聯網數據源及Hadoop技術為主導的固有思路已經需要調整與提高了。在不久的將來,除了數據庫技術之外,大數據技術的重點可能會逐漸以更加實時高效的、面向海量數據對象或海量計算任務的大規模并行處理技術為主,而Hadoop應該只是其中的一員而已。 基于上述原因,我認為該書是目前大數據領域內不可多得的一本好書,無論是對企業來講,還是對技術人員來講,都有相當的參考意義,我樂于將該書推薦給各位讀者。 劉世平 中科院大學教授,博導 金融科技研究中心主任 吉貝克信息技術(北京)有限公司董事長 前言 “云計算”與“大數據”應該說是目前IT界最為熱門的兩個概念了。云計算以各種軟硬件資源新的消費與交付模式為核心理念,被普遍認為將會成為未來社會最為深遠的革新。而現實卻是:在多“云”的天空,成功的實踐卻少得可憐,致使其很多情況下只是充當了一個時髦的噱頭。 令人遺憾的是,如今風頭已遠遠蓋過“云計算”的“大數據”,其現實情況與此類似。大數據概念最初是伴隨著Hadoop等開源技術的推廣而出現的,在國內外眾多互聯網公司依靠它們取得巨大成功的強力推動下,傳統數據管理技術的地位受到了嚴重的挑戰,似乎不知Hadoop、不用Hadoop就會落后!但如何才能在本企業或者某個具體需求中正確有效地使用這些新技術呢?這至今依然是眾多企業技術決策者的困惑。 大多數企業目前對大數據潮流的熱烈響應其實是“雷聲大,雨點小”,其中相當一部分是不分青紅皂白,純粹為了Hadoop而Hadoop,很少有產生實際成效的案例。本書認為,要正確回答這些問題,給出合適的決策,必須對這些技術本身進行較為深入的了解與分析,然后結合自己企業的實際,做出自己的判斷。任何其他企業的經驗都不可以照搬照抄;任何資料中關于各種技術的適用場景描述,即使是正確的,也都有其特殊的上下文環境,不可以當成普遍真理去盲目遵從。這里所說的對技術的了解,并不是指具體如何去使用它,而是指其內在本質、特點與相互聯系,這些往往比使用方法更重要,也是本書區別于其他大數據資料的主要特點之一。 首先,讓我們看看云計算與大數據的關系,目前人們對此的理解更是混亂不堪,有人認為兩者完全不同,有人則認為大數據技術其實就是云計算。對“云”,最開始,人們普遍認為那是一種采用一堆閑散資源完成一件重大任務的技術。后來,人們又意識到現代社會對“云”的詮釋,其實更多的是指一種以服務為主的商業模式,而不是一種技術。現在,絕大多數人對“云”的理解停留于此,認為“云計算”與技術無關的人大都是這種思路。但在對“云”業務模式的實踐中卻發現,要搞“云”服務,必須從技術手段與商業模式兩個維度同時入手才有意義,只擁有其中任何一個方面都是不行的,甚至可以說前者要比后者重要得多。大多數情況下,在“云”能適用的領域內,如果沒有前者,后者所能提供的服務水平自然也就很有限,從而也就自然失去了“云”的含義。所以說,云計算的本質是商業模式,但其核心卻仍然是技術問題。 而云在技術層面的核心問題又是什么呢?有人認為是“小變大”的分布式計算,有人認為是“大變小”的虛擬化,而本書認為,云計算最核心的問題是數據,具體地講,是現代業務環境下的數據管理問題,也就是能實現海量、多類型、高負載、高性能、低成本需求的數據管理技術,這實際上就是傳統數據管理技術在現代的最大挑戰。這其中最耀眼的,就是各種新興的大數據家族成員的出現,包括開源體系的Hadoop、各種NoSQL數據庫、NewSQL數據庫(關系數據庫聯邦)、分布式文件系統等,甚至還包括非開源體系的新一代關系數據庫。這樣看來,“大數據”應該是“云計算”業務模式得以實現在數據管理層面的核心技術支撐,兩者密不可分。 而從純技術的角度看,“云計算”概念最初出現時就是指采用網絡互聯起來的設備共同完成一項龐大任務的技術策略,而Hadoop等流行大數據技術的核心思路大多如此。因此,我們又可以說:“云計算”是大數據的技術實現方法。這便是云計算與大數據的聯系,兩者無論是在業務上,還是技術上,都是相互依存的。一句話,無論叫什么名稱,其實都是代表現代IT發展的最新進展而已。 再來看看各種流行的大數據技術本身,包括Hadoop,NoSQL,NewSQL,甚至一些新一代的關系數據庫等。對它們,在現代數據管理領域內,目前的狀態卻是:人們普遍困惑的并不是能不能掌握這些技術的具體用法,而是到底什么時候,在什么場景下,如何定位與使用這些技術?這主要表現在以下幾個方面。 一是如何定位新舊技術。即指新興的以Hadoop為代表的開源技術,與傳統的關系數據庫技術,到底是新技術徹底顛覆傳統技術,還是兩者共存?如果是共存,如何共存?這是目前各個企業普遍感到困惑的最重要的問題。 二是部分技術人員對新事物只是盲從。大家在應用實踐中或多或少地會遇到一些困難,于是很多技術人員就會把希望寄托在新出現的技術上,認為只要一用上如Hadoop或NoSQL這些新東西,目前的問題就會迎刃而解。接下來就立即緊張地投入到新技術的學習與使用上去,而不做是否適合自己需求的合理判斷。很顯然,這種對新技術的崇拜是盲目的。 三是各種技術之間出現了互相攻擊、互相否定的態勢。一度以來,傳統的主流關系數據庫(如Oracle,DB2等)在實踐中出現了一些問題,主要是對高負荷環境下的海量數據應用出現了力不從心的現象,同時,其水平擴展性的限制與高昂的成本問題使客戶越來越難以忍受。于是,一些非關系型的NoSQL數據庫,或者一些低端數據庫集群方案(如MySQL集群)就在一些場合替代了主流的商業數據庫,并且表現出很優秀的性價比;另外,有些企業在分析領域也出現了以Hadoop MapReduce等開源產品全面替代關系型數據倉庫的現象。于是,便出現了一種思潮,認為關系數據庫最終將退出歷史舞臺。而另有一部分人則認為,所謂極其成功的新技術,只是曇花一現的暫時現象而已,傳統的關系數據庫經過改良以后,依然會是數據管理領域的王者,其他的技術會像30多年前關系數據庫與其他數據管理技術之爭的結果一樣,逐漸消失。這些觀點中,大多都是憑直覺、憑感覺、憑個人經驗的判斷得出,雖然不能說是武斷,但如果沒有令人信服的技術分析做支撐,就很難說誰對誰錯。 四是新技術本身在實踐中也出現了很多的問題。例如Hadoop MapReduce,雖然已經出現了Hadoop 2.0中的各項重要改進,但相信只要是真正用過它的人都知道,其在方便性、可靠性、可用性、效率等方面都還很不盡如人意。筆者記得一位很熟悉Hadoop的朋友說:“如果企業能用關系數據庫解決問題,就盡量不要用它!”再如Twitter放棄了用Cassandra替代MySQL的決策,Digg使用Cassandra后出現的一系列嚴重問題等,都使很多人開始重新審視這些新技術。 其實,究其根本,以上現象出現的主要原因是:人們只是去學習如何使用這些新技術,卻很少獨立思考,對它們進行較為深入的學習與剖析;很少在設計思想、技術架構、內在本質等方面將它們與其他技術進行對比,以能在真正掌握后,做出屬于自己、適合自己的判斷。而這些又正是本書的主體內容。 如果在數據庫技術領域繼續探究,會發現NoSQL技術雖然適合海量數據的快速存取,卻無法滿足較復雜的關系模型數據管理及人們對習慣使用SQL語言的要求,而標準的關系數據庫在水平擴展性上又嚴重受限。那么,是否存在一種技術,既可以使用關系模型存儲數據,使用SQL操作數據,又可以像NoSQL一樣方便擴展?于是,本書還與讀者分享了筆者自主研發的一個關系型云數據庫的設計與實踐,它既不同于目前流行的Hadoop/NoSQL等開源技術,也不同于傳統的關系數據庫,是一種介于兩者之間的技術模式,目前的狀態正好滿足Hadoop與傳統關系數據庫都不太適用的企業級海量歷史數據管理的需求,并已經在實踐中取得一定的成果。接著,由該自主產品的設計實踐活動出發,我們產生了對Hadoop本身許多固有技術問題更大膽的、更進一步的深入思考:PB級海量數據的批量分析能不能比Hadoop再提高一個數量級,例如,達到秒級?在保守的認識中,這樣的要求似乎是不合理的,也是不可能實現的。然而大數據領域最新的技術進展——Hadoop的締造者Google近年來一系列更前沿的、被稱為“Google新三駕馬車”的研究成果,通過模式(Schema)的回歸與精巧的設計,已經向這樣似乎是“不可能的任務”的宏偉目標邁出了一大步。這使我們意識到:技術的發展瞬息萬變,Hadoop本身已不見得有多么先進了,想要在實踐中做出正確的決策,就必須不斷學習,勇于創新,不斷經歷破與立的過程,而不能故步自封,原地不動。 除了需要對各種大數據技術手段進行深入剖析以外,當今IT界還在云計算技術兩個不同的技術策略上有著廣泛的爭議,即“分”為云與“合”為云,前者是指數據切分后以小變大,后者是指以大變小,將分散的小資源集中整合起來管理后,再將資源進行統一的按需調度與分配。兩者都稱自己是云計算技術(或者說是大數據技術)的正宗,相互攻擊與否定的現象極為激烈,并且各自都有堅實的成功實踐為基礎。表現最明顯的就是以淘寶為代表的新興互聯網技術力量與IBM、Oracle等老牌的數據庫廠商之間關于以“分”為主的開源技術及以“合”為主的一體機技術之間的爭論與競爭,可以說已經到了白熱化的階段。他們各說各話,各有千秋,已經成為企業技術決策者的主要困惑之一。而實際上,經過研究與分析,很容易就可以發現,他們所爭論的“分”與“合”,看起來是完全相反的,實際上并不矛盾,其實是你中有我,我中有你,兩者是有機結合的統一體,在現代數據管理的需求中都有各自的定位。企業所要做的并不是對技術策略進行非你即他的選擇,而是根據自己的實際情況與需求,對各種技術與產品進行合理的定位;同時,更加重要的工作并不是某一項技術的正確定位與使用,而是能站在云數據中心建設的高度,將傳統關系數據庫資源與Hadoop集群資源集中起來形成PaaS平臺,再對外提供分散的、數據相關的云服務,包括數據庫云與Hadoop平臺云,可以將之統稱為大數據云。將大數據的話題提高到這樣的層面,雖然相關的資源池調度與分配技術也非常重要,但更重要的卻已經是面向云計算的大數據服務模式了。 另一方面,雖然關系數據庫將與Hadoop等技術共存的思想被大多數人接受,也是本書所認同的觀點,但廣大讀者可能還注意到一個現象:新興的Hadoop/NoSQL等非SQL技術在不斷發展的過程中,已經在逐步引進一些原本屬于SQL技術體系的功能,如索引與事務;而關系數據庫領域,也在逐步將這些新興的技術引入其技術體系,如AsterData與最新Oracle 12C所具備的InDB MapReduce功能,都是除原有的SQL引擎以外,在其數據庫內引入MapReduce處理引擎。那么,未來數據管理技術的發展趨勢究竟如何呢?我們說,在物理基礎設施上,分布式集群架構應該是未來發展的大趨勢,而在軟基礎設施層面,雖然SQL與非SQL技術體系在相當長的時間內會共存,但未來的趨勢是相互融合的。現在看來,起碼對數據管理技術來講,開源是大趨勢,摒棄產品銷售為主導的商業模式,以技術服務為主體應該是各大廠商應該盡早考慮的策略。 在本書最后,筆者結合企業數據架構規劃的實際,針對當今各個企業在響應大數據潮流時最為關心、最為困惑的問題:“到底如何在本企業實施與推廣大數據”給出了切實可行的建議。可以看到,企業引入大數據的本質就是:以適合更多更廣的數據源,以及提供更強大的數據管理處理能力為目標,面向新時代的業務規劃(如互聯網金融),對現有數據體系的各個層面(包括采集、傳輸、加工、集成、分析、展現等)進行全面改造,推出大數據時代的新一代企業級數據架構,并將其作為現代企業IT架構的重要組成部分之一。筆者認為,企業引入云計算與大數據的戰略思想應該是:“業務上是改造,技術上是改進;業務上是創新,技術上是補充”,僅供企業參考。 最后借此機會向王建波、李鵬、葛蓀葳等朋友表示感謝,與他們的討論使我受益匪淺,也一并感謝所有對我的寫作有過幫助的人。希望本書是一個成功的嘗試,同時也希望能為廣大讀者與企業的相關設計、規劃與實踐活動提供有用的借鑒與幫助。 何小朝 2014年2月 |