SequoiaDB CTO:企業(yè)級NoSQL的發(fā)展之路
幾年后的今天,大數(shù)據(jù)的熱潮開始影響傳統(tǒng)行業(yè)。隨著企業(yè)信息化、社交化和移動化的水平不斷提升,傳統(tǒng)數(shù)據(jù)庫的瓶頸日益顯現(xiàn)。對于這些企業(yè)而言,他們開始從一個(gè)新的角度重新審視數(shù)據(jù)戰(zhàn)略。近日,記者采訪到SequoiaDB巨杉軟件公司CTO及總架構(gòu)師王濤,向我們分享了他的創(chuàng)業(yè)歷程,以及企業(yè)級NoSQL的發(fā)展之路。
從DB2工程師轉(zhuǎn)身NoSQL創(chuàng)業(yè)者
王濤曾經(jīng)是DB2領(lǐng)域的專家,作為IBM DB2全球最高技術(shù)專家小組的成員,參與了IBM下一代大數(shù)據(jù)平臺的架構(gòu)規(guī)劃,精通數(shù)據(jù)庫內(nèi)核及體系結(jié)構(gòu)。在IBM多倫多實(shí)驗(yàn)室工作了八年后,王濤選擇了回國創(chuàng)業(yè),目前擔(dān)任巨杉軟件公司CTO及總架構(gòu)師,成功研發(fā)了自主產(chǎn)權(quán)的NoSQL數(shù)據(jù)庫——SequoiaDB(巨杉數(shù)據(jù)庫)。
SequoiaDB巨杉軟件公司CTO及總架構(gòu)師 王濤
據(jù)了解,SequoiaDB是一款完全自主研發(fā)的文檔型NoSQL分布式數(shù)據(jù)庫。SequoiaDB 1.0發(fā)布于2013年4月,主要向政府、電信、金融、電力和互聯(lián)網(wǎng)等擁有海量業(yè)務(wù)數(shù)據(jù)的行業(yè)提供大數(shù)據(jù)解決方案,目前客戶已包括國內(nèi)知名銀行、電信及互聯(lián)網(wǎng)企業(yè)。
談到為何從DB2轉(zhuǎn)至NoSQL,王濤認(rèn)為主要有兩個(gè)原因,一是關(guān)系型數(shù)據(jù)庫的沒落,二是企業(yè)級NoSQL潛力巨大。在很多程序員和DBA的眼中,關(guān)系型數(shù)據(jù)庫才是王道。事實(shí)并非如此,在與全球財(cái)富500強(qiáng)的用戶交流中王濤發(fā)現(xiàn),傳統(tǒng)數(shù)據(jù)庫并非適合所有場景,也存在諸多技術(shù)局限性,如數(shù)據(jù)模型僵硬、可擴(kuò)展性差、處理海量數(shù)據(jù)時(shí)存在性能瓶頸、缺乏處理半結(jié)構(gòu)和非結(jié)構(gòu)化數(shù)據(jù)的能力等。關(guān)系型數(shù)據(jù)庫稱霸市場的時(shí)代已經(jīng)過去了。
另一方面,NoSQL經(jīng)過這幾年的發(fā)展已經(jīng)日趨成熟,應(yīng)用場景也已不再局限于互聯(lián)網(wǎng)企業(yè),而逐漸蔓延至傳統(tǒng)企業(yè)。有預(yù)測稱,NoSQL特別是文檔型NoSQL在未來2-5年內(nèi)將會規(guī)模進(jìn)入傳統(tǒng)企業(yè)。企業(yè)級NoSQL將成為未來數(shù)據(jù)庫市場的發(fā)展趨勢。
SequoiaDB——企業(yè)級NoSQL
預(yù)見到NoSQL在傳統(tǒng)企業(yè)的發(fā)展?jié)摿?,王濤開始了SequoiaDB的研發(fā)。與其他NoSQL不同,SequoiaDB主打企業(yè)級,即能夠適應(yīng)傳統(tǒng)企業(yè)中的IT環(huán)境。他在與傳統(tǒng)行業(yè)用戶的交流中發(fā)現(xiàn),現(xiàn)有的文檔型NoSQL產(chǎn)品中忽略了很多企業(yè)級需求,如事務(wù)、SQL支持、與Hadoop系統(tǒng)的整合等。
于是在年初發(fā)布的SequoiaDB 1.0中加入了以上企業(yè)級功能,并將在下一個(gè)版本中(SequoiaDB 1.2預(yù)計(jì)在9月底發(fā)布)增加數(shù)據(jù)壓縮功能,同時(shí)索引和數(shù)據(jù)可以在文件系統(tǒng)中分離以提高讀寫性能,還可以運(yùn)行在IBM power機(jī)器上,這都是其他NoSQL所沒有的獨(dú)特優(yōu)勢。除了傳統(tǒng)企業(yè),企業(yè)級NoSQL在廣大中小互聯(lián)網(wǎng)企業(yè)中也有強(qiáng)烈需求。
另外,SequoiaDB還可以根據(jù)企業(yè)的需求進(jìn)行定制化開發(fā),這是國外NoSQL廠商無法比擬的優(yōu)勢。即使企業(yè)具有較強(qiáng)的研發(fā)實(shí)力,開源數(shù)據(jù)庫引擎的定制化改動也只有廠商研發(fā)團(tuán)隊(duì)才能完全駕馭。這也是SequoiaDB為什么沒有使用任何開源數(shù)據(jù)庫引擎和代碼的原因之一。
SequoiaDB是一款文檔型NoSQL,被認(rèn)為是最接近傳統(tǒng)關(guān)系型數(shù)據(jù)庫的NoSQL。文檔數(shù)據(jù)庫的核心是數(shù)據(jù)嵌套,將原本一些星形模式(Star Schema)的數(shù)據(jù)嵌套在同一條記錄中以減少表之間關(guān)聯(lián)的需求。這種設(shè)計(jì)可以從某種程度上大大簡化傳統(tǒng)數(shù)據(jù)庫復(fù)雜的關(guān)聯(lián)問題,同時(shí)由于擺脫了關(guān)系模型里面的強(qiáng)一致性的限制,文檔型數(shù)據(jù)庫還可以做到水平擴(kuò)張與高可用。因此王濤認(rèn)為,文檔型NoSQL的應(yīng)用范圍要比其他NoSQL廣泛許多。
NoSQL取代關(guān)系型數(shù)據(jù)庫?
談到NoSQL與傳統(tǒng)數(shù)據(jù)庫的關(guān)系,王濤表示,NoSQL不會取代關(guān)系型數(shù)據(jù)庫,而會與關(guān)系型數(shù)據(jù)庫長期并存。NoSQL相對于傳統(tǒng)數(shù)據(jù)庫的發(fā)展歷程而言還很年輕,目前NoSQL主要用于對關(guān)系型數(shù)據(jù)庫的補(bǔ)充,在其不適用的領(lǐng)域填補(bǔ)進(jìn)去。
關(guān)系型數(shù)據(jù)庫的核心是強(qiáng)一致性的關(guān)系模型,當(dāng)初的設(shè)計(jì)理念是將ACID放在首位,其次考慮性能與可擴(kuò)展性。而當(dāng)人們發(fā)現(xiàn)并不是所有的數(shù)據(jù)都要求那么強(qiáng)的一致性,同時(shí)對于性能和數(shù)據(jù)量的需求越來越高時(shí),NoSQL應(yīng)用而生。
NoSQL主要將可擴(kuò)展性放在首位,而高可用或一致性則放到了第二位,這種設(shè)計(jì)與原本的關(guān)系模型產(chǎn)生了極大的差異。尤其在當(dāng)今大數(shù)據(jù)時(shí)代影響下,NoSQL勢頭漸強(qiáng)。大數(shù)據(jù)領(lǐng)域強(qiáng)調(diào)的是分布式計(jì)算,而關(guān)系型數(shù)據(jù)庫為了維持強(qiáng)一致性需要在實(shí)體間進(jìn)行大量數(shù)據(jù)交互。因此分布式計(jì)算是關(guān)系模型的一個(gè)不能適用的領(lǐng)域。
對此,王濤總結(jié)到,企業(yè)在需要強(qiáng)一致性的場景時(shí),最好使用關(guān)系型數(shù)據(jù)庫。在需要分布式計(jì)算和高性能存儲的場景時(shí),考慮使用NoSQL。其余的場景大多數(shù)人依然會選擇關(guān)系型數(shù)據(jù)庫,但有超過70%的現(xiàn)有關(guān)系型數(shù)據(jù)庫場景其實(shí)是可以用NoSQL替代的。隨著NoSQL的發(fā)展,從成本和易用性角度出發(fā),相信越來越多的用戶會開始使用NoSQL。
小結(jié)
SequoiaDB的出現(xiàn)將NoSQL從互聯(lián)網(wǎng)推向企業(yè)級,彌補(bǔ)企業(yè)中關(guān)系型數(shù)據(jù)庫的應(yīng)用盲點(diǎn),幫助企業(yè)從非結(jié)構(gòu)化數(shù)據(jù)中獲得價(jià)值。中國是天然的大數(shù)據(jù)搖籃,相信會有越來越多的創(chuàng)業(yè)企業(yè)關(guān)注大數(shù)據(jù),關(guān)注NoSQL。