大數(shù)據(jù)與云計(jì)算的關(guān)系,引起一些人的困惑。為了便于探討二者的關(guān)系,這里從“計(jì)算”和“數(shù)據(jù)”的歷史關(guān)系說(shuō)起。因?yàn)樵朴?jì)算首先是一種“計(jì)算”,大數(shù)據(jù)首先是一種“數(shù)據(jù)”,而計(jì)算機(jī)就是用來(lái)“計(jì)算”“數(shù)據(jù)”的。
計(jì)算機(jī)是軟件和硬件分離的,是一種軟件定義的電子產(chǎn)品(可編程)。計(jì)算機(jī)設(shè)計(jì)中的一個(gè)重要問(wèn)題是如何有效管理CPU、內(nèi)存和I/O等硬件資源,以及如何讓應(yīng)用程序合理使用這些資源。這兩大任務(wù)最早內(nèi)嵌在各種應(yīng)用程序中,由應(yīng)用程序自身完成,缺點(diǎn)是費(fèi)力、復(fù)雜和易錯(cuò),難以升級(jí)和移植,而且重復(fù)工作。
上世紀(jì)60年代這些共性功能開(kāi)始從應(yīng)用中分離出來(lái),逐步形成了一種通用的軟件包,這就是操作系統(tǒng)。操作系統(tǒng)是位于硬件和應(yīng)用程序之間的“中間件”,讓應(yīng)用軟件和硬件得以分離并獨(dú)立發(fā)展,發(fā)展成了最核心的計(jì)算機(jī)系統(tǒng)軟件,也成就了微軟公司的偉大。
以UNIX為始祖的常見(jiàn)現(xiàn)代操作系統(tǒng)有Android、BSD、iOS、Linux、 MacOSX、QNX等,以及原創(chuàng)的微軟Windows、 Windows Phone和IBM的z/OS。操作系統(tǒng)的工作范圍,也從最初的計(jì)算機(jī)蔓延到手機(jī)、游戲控制器、電視機(jī)頂盒、智能汽車和智能眼鏡等,還有與云計(jì)算密切相關(guān)的Web服務(wù)器。
上世紀(jì)70年代,計(jì)算機(jī)的快速發(fā)展使得數(shù)字化數(shù)據(jù)爆發(fā)式增長(zhǎng),“海量”數(shù)據(jù)管理成了新挑戰(zhàn)。把通用操作系統(tǒng)的文件管理用于數(shù)據(jù)管理時(shí),無(wú)論是擴(kuò)展性、效率和便利性,都不適應(yīng)“海量”數(shù)據(jù)的管理需要,應(yīng)用軟件被迫內(nèi)嵌自己設(shè)計(jì)的數(shù)據(jù)管理系統(tǒng)。同樣的,“海量”數(shù)據(jù)管理由每個(gè)應(yīng)用程序自身完成,缺點(diǎn)也是費(fèi)力、復(fù)雜和易錯(cuò),難以升級(jí)和移植,并且重復(fù)工作。
于是一種專門面向“海量”數(shù)據(jù)管理的通用軟件問(wèn)世了,那就是數(shù)據(jù)庫(kù)管理系統(tǒng)(DBMS),一種應(yīng)用系統(tǒng)軟件。DBMS包括了數(shù)據(jù)庫(kù)定義、創(chuàng)建、查詢、更新和管理等功能,這些都是數(shù)據(jù)管理所必需的,是操作系統(tǒng)的文件管理系統(tǒng)所沒(méi)有的。
著名的DBMS有 MySQL、 PostgreSQL、SQLite、Microsoft SQL Server、Microsoft Access、Oracle、Sybase、dBASE、FoxPro和IBM DB2等,都是關(guān)系型DBMS。當(dāng)然還有非關(guān)系型No SQL模式的,只是沒(méi)那么流行。
DBMS與字處理軟件等一起,成為單機(jī)時(shí)代最重要的應(yīng)用軟件,也成就了一家偉大的應(yīng)用軟件公司Oracle。大約不足20年前,操作系統(tǒng)和數(shù)據(jù)庫(kù)的技術(shù)和市場(chǎng)未來(lái),看起來(lái)都那么可預(yù)知。一個(gè)是微軟的天下,一個(gè)是Oracle的天下。
但互聯(lián)網(wǎng)來(lái)了,尤其是Web開(kāi)始流行。
Web服務(wù)器所使用的操作系統(tǒng),最初面向單機(jī)設(shè)計(jì),擴(kuò)展用于局域網(wǎng)范圍內(nèi)管理多臺(tái)服務(wù)器還勉強(qiáng)可用。但當(dāng)互聯(lián)網(wǎng)巨頭崛起,需要Web服務(wù)器的操作系統(tǒng)管理數(shù)百萬(wàn)臺(tái)Web服務(wù)器的時(shí)候,傳統(tǒng)操作系統(tǒng)勉為其難,需要“技術(shù)革命”了。“革命”的結(jié)果就是云計(jì)算。
云計(jì)算大傘下有很多概念,核心技術(shù)之一是虛擬化。虛擬化有“1虛N”和“N虛1”兩種模式,前者主要是為了省錢,以Amazon AWS為代表;后者主要是為了大數(shù)據(jù)處理,以Google GAE為代表。
云計(jì)算的“N虛1”模式,可將多臺(tái)物理計(jì)算機(jī)虛擬化為一臺(tái)超級(jí)計(jì)算機(jī),向應(yīng)用程序提供資源池的調(diào)度管理服務(wù),與傳統(tǒng)操作系統(tǒng)的功能幾乎完全相同,因此常被稱為“云計(jì)算操作系統(tǒng)”。只是云計(jì)算操作系統(tǒng)的工作范圍,擴(kuò)大到數(shù)據(jù)中心甚至整個(gè)互聯(lián)網(wǎng)范圍內(nèi),把每臺(tái)計(jì)算機(jī)也當(dāng)做資源看待和管理。
有了云計(jì)算操作系統(tǒng),云應(yīng)用軟件和硬件(計(jì)算機(jī)資源)得以分離,各自可以獨(dú)立發(fā)展。歷史再次重演,云計(jì)算以及SNS、微博、移動(dòng)互聯(lián)網(wǎng)和物聯(lián)網(wǎng)等的快速發(fā)展,具有3V特點(diǎn)的數(shù)據(jù)爆發(fā),大數(shù)據(jù)管理的挑戰(zhàn)也最先到來(lái)。同樣,面向計(jì)算設(shè)計(jì)的通用云計(jì)算操作系統(tǒng),在大數(shù)據(jù)管理方面的擴(kuò)展性、效率和便利性,都面臨新挑戰(zhàn)。
歷史上計(jì)算機(jī)面對(duì)“海量”數(shù)據(jù)的挑戰(zhàn),將數(shù)據(jù)應(yīng)用和數(shù)據(jù)管理分離,催生了通用的DBMS?,F(xiàn)在云計(jì)算面對(duì)大數(shù)據(jù)的挑戰(zhàn),也必將使大數(shù)據(jù)應(yīng)用和大數(shù)據(jù)管理分離,催生“大數(shù)據(jù)庫(kù)管理系統(tǒng)”,并且逐步走向通用化和平臺(tái)化。
ATM(異步傳輸模式)是通信資源稀缺時(shí)代的產(chǎn)物,TCP/IP是通信資源富饒時(shí)代的產(chǎn)物。類似的,傳統(tǒng)DBMS是IT資源稀缺時(shí)代的產(chǎn)物,大數(shù)據(jù)管理系統(tǒng)是IT資源富饒時(shí)代的產(chǎn)物。
計(jì)算是工具,可以工業(yè)化提供;數(shù)據(jù)是資源,是個(gè)性化的資產(chǎn)。如果說(shuō)Office、游戲等是PC的殺手锏應(yīng)用,瀏覽器、搜索、SNS等是互聯(lián)網(wǎng)的殺手锏應(yīng)用,那么大數(shù)據(jù)等就是云計(jì)算的殺手锏應(yīng)用。