巨杉訪談:SequoiaDB如何實(shí)現(xiàn)海量數(shù)據(jù)存儲(chǔ)與實(shí)時(shí)查詢

海峽經(jīng)濟(jì)網(wǎng)
佚名
巨杉數(shù)據(jù)庫(kù)高訪問量、海量數(shù)據(jù)業(yè)務(wù)背后的基礎(chǔ)系統(tǒng)架構(gòu)是如何設(shè)計(jì)和優(yōu)化的?分布式數(shù)據(jù)庫(kù)是如何做到數(shù)據(jù)的透明水平、垂直拆分,實(shí)現(xiàn)海量數(shù)據(jù)實(shí)時(shí)查詢的? 1.巨杉數(shù)據(jù)庫(kù)作為國(guó)內(nèi)第一款自主研發(fā)的NewSQL...

\

巨杉數(shù)據(jù)庫(kù)高訪問量、海量數(shù)據(jù)業(yè)務(wù)背后的基礎(chǔ)系統(tǒng)架構(gòu)是如何設(shè)計(jì)和優(yōu)化的?分布式數(shù)據(jù)庫(kù)是如何做到數(shù)據(jù)的透明水平、垂直拆分,實(shí)現(xiàn)海量數(shù)據(jù)實(shí)時(shí)查詢的?

1.巨杉數(shù)據(jù)庫(kù)作為國(guó)內(nèi)第一款自主研發(fā)的NewSQL數(shù)據(jù)庫(kù),在發(fā)展過程中是否遇到困難或質(zhì)疑?與海外產(chǎn)品如MongoDB有什么區(qū)別?

巨杉數(shù)據(jù)庫(kù)是巨杉團(tuán)隊(duì)從零開始研發(fā)的,數(shù)據(jù)庫(kù)內(nèi)核是沒有基于任何的開源數(shù)據(jù)庫(kù)產(chǎn)品的。這一點(diǎn)也是我們團(tuán)隊(duì)非常自豪的一個(gè)成績(jī)。

在發(fā)展過程中,自然也是有一些人對(duì)我們表示質(zhì)疑,或者是認(rèn)為國(guó)內(nèi)團(tuán)隊(duì)不可能從零開始開發(fā)數(shù)據(jù)庫(kù),或者即使是國(guó)內(nèi)開發(fā)的,性能和穩(wěn)定性也一定不如海外產(chǎn)品。不過如今,巨杉經(jīng)過了企業(yè)市場(chǎng)的考驗(yàn),也真正用產(chǎn)品和技術(shù)服務(wù)證明了自己。我們超過百家的企業(yè)用戶,特別是銀行這樣客戶的認(rèn)可和大規(guī)模使用,也是對(duì)我們最好的褒獎(jiǎng)吧。

對(duì)于海外產(chǎn)品的對(duì)比,我們的性能通過第三方的測(cè)試,與MongoDB、Cassandra 等都在統(tǒng)一水平,部分性能甚至大大優(yōu)于海外的產(chǎn)品。同時(shí),上面提到的多個(gè)企業(yè)應(yīng)用場(chǎng)景,我們也是實(shí)打?qū)嵉哪挸鰜淼模S多企業(yè)級(jí)應(yīng)用場(chǎng)景,比硅谷的NoSQL/NewSQL產(chǎn)品都要領(lǐng)先。

2.巨杉數(shù)據(jù)庫(kù)在企業(yè)的應(yīng)用場(chǎng)景有哪些?在解決用戶需求方面有什么心得?

巨杉數(shù)據(jù)庫(kù)發(fā)布5年以來,在企業(yè)級(jí)大數(shù)據(jù)應(yīng)用中積累了豐富的經(jīng)驗(yàn),也打磨出我們的主要場(chǎng)景。

企業(yè)對(duì)于數(shù)據(jù)庫(kù)的新需求主要包括海量數(shù)據(jù)的管理、非結(jié)構(gòu)化數(shù)據(jù)的管理、歷史數(shù)據(jù)在線化以及數(shù)據(jù)全維度展現(xiàn)等等。因此巨杉也培育了幾大解決方案,包括:海量歷史數(shù)據(jù)平臺(tái),企業(yè)內(nèi)容管理平臺(tái),大數(shù)據(jù)湖,全量數(shù)據(jù)視圖等等。

3.能否談?wù)劸奚紨?shù)據(jù)庫(kù)在海量數(shù)據(jù)存儲(chǔ)以及高性能的查詢這塊技術(shù)上有什么亮點(diǎn)?

首先,由于巨杉數(shù)據(jù)庫(kù)是天生的分布式架構(gòu),因此能方便快捷地在X86架構(gòu)下實(shí)現(xiàn)集群規(guī)模和存儲(chǔ)容量的水平擴(kuò)展,這使得海量數(shù)據(jù)的存儲(chǔ)不僅變得簡(jiǎn)單易行,而且和傳統(tǒng)方式相比成本大幅下降。

而在數(shù)據(jù)的錄入和使用方面,巨杉數(shù)據(jù)庫(kù)更是充分發(fā)揮分布式架構(gòu)的優(yōu)勢(shì),提供了一系列的技術(shù)手段以實(shí)現(xiàn)最佳效率,比如垂直分區(qū)、水平分區(qū)、自動(dòng)讀寫分離、自定義存儲(chǔ)分布策略等。除此之外,我們并沒有丟棄現(xiàn)有的技術(shù),而是充分利用了已經(jīng)在數(shù)據(jù)庫(kù)領(lǐng)域中廣泛使用的一些技術(shù)手段,比如靈活高效的索引機(jī)制、高效數(shù)據(jù)壓縮等,進(jìn)一步提高了數(shù)據(jù)操作時(shí)的效率。最后,為了方便傳統(tǒng)的數(shù)據(jù)庫(kù)使用者,我們還特意提供了 SQL 引擎,并結(jié)合巨杉數(shù)據(jù)庫(kù)的技術(shù)特點(diǎn)對(duì) SQL 引擎做了優(yōu)化,讓 SQL 使用者在巨杉數(shù)據(jù)庫(kù)上也能有最佳體驗(yàn)。

綜合以上特點(diǎn)可以看出,對(duì)于有海量數(shù)據(jù)存儲(chǔ)和高效查詢要求的用戶來說,巨杉數(shù)據(jù)庫(kù)是非常好的選擇!

4、當(dāng)數(shù)據(jù)達(dá)到億級(jí)或者百億級(jí)以上,數(shù)據(jù)庫(kù)平臺(tái)構(gòu)架如何設(shè)計(jì)和優(yōu)化?在這個(gè)領(lǐng)域有什么坑是開發(fā)者可以避免的?

在銀行這樣的企業(yè)級(jí)應(yīng)用中,億級(jí)的數(shù)據(jù)基本是比較小兒科。通常數(shù)據(jù)量都是百億級(jí)別,超過百TB。

對(duì)于這樣的海量數(shù)據(jù)來說,“分布式”技術(shù)幾乎是不二之選!以巨杉數(shù)據(jù)庫(kù)為例,可利用垂直分區(qū)、水平分區(qū)等功能,充分結(jié)合業(yè)務(wù)數(shù)據(jù)的特點(diǎn)(這一點(diǎn)很重要),在數(shù)據(jù)庫(kù)層面做好架構(gòu)設(shè)計(jì),這樣就能將海量數(shù)據(jù)均勻分布到分布式集群的各個(gè)節(jié)點(diǎn)上,同時(shí)又不會(huì)增加應(yīng)用的復(fù)雜度。一旦做好了這樣的架構(gòu)設(shè)計(jì),應(yīng)用層無論是數(shù)據(jù)的錄入操作還是查詢操作,在數(shù)據(jù)底層都能自動(dòng)定位成部分節(jié)點(diǎn)內(nèi)甚至單節(jié)點(diǎn)內(nèi)的操作,從而將針對(duì)海量數(shù)據(jù)的操作轉(zhuǎn)化成了小批量的操作,必然實(shí)現(xiàn)效率上的極大提升。

但是,也必須要意識(shí)到在“大數(shù)據(jù)”時(shí)代,數(shù)據(jù)量的膨脹速度是超乎人們想象的,局部節(jié)點(diǎn)內(nèi)的數(shù)據(jù)也可能會(huì)達(dá)到一個(gè)不小的數(shù)量級(jí),這幾乎是難以避免的情況。在這種情況下,除了在現(xiàn)有集群上繼續(xù)做水平擴(kuò)展之外,也要充分利用高效索引及數(shù)據(jù)壓縮等傳統(tǒng)技術(shù)以提高單節(jié)點(diǎn)內(nèi)的效率。

最后,不要忘記巨杉數(shù)據(jù)庫(kù)的讀寫分離和自定義數(shù)據(jù)分布策略等機(jī)制,它們可以幫助你將負(fù)載均勻分散到不同的節(jié)點(diǎn)上,從而最大程度上避免“熱點(diǎn)”競(jìng)爭(zhēng)的出現(xiàn),這也是分布式技術(shù)所具有的天然優(yōu)勢(shì)。

5、如何評(píng)價(jià)現(xiàn)有的分布式大數(shù)據(jù)處理開源架構(gòu)?它們中有何需要改進(jìn)或者值得借鑒的地方?

第一,Hadoop 不代表大數(shù)據(jù)的全部,現(xiàn)在國(guó)內(nèi)好像行成了一種風(fēng)氣,Hadoop 就代表了大數(shù)據(jù)。但事實(shí) Hadoop 能解決的也只是一部分的需求,特別在大數(shù)據(jù)的在線實(shí)時(shí)交互這一塊,NewSQL/NoSQL也是不錯(cuò)的選擇。而這一點(diǎn)近一年多來,我們也在眾多的企業(yè)級(jí)用戶身上證實(shí)了。

第二,對(duì)于分布式數(shù)據(jù)庫(kù)本身。NoSQL和關(guān)系型數(shù)據(jù)庫(kù)這兩者肯定是逐漸融合的過程,NoSQL數(shù)據(jù)庫(kù)會(huì)不斷注重企業(yè)級(jí)功能如 SQL 支持的提升,也是因此現(xiàn)在衍生出了NewSQL的概念。數(shù)據(jù)庫(kù)未來將會(huì)是一個(gè)分布式、高性能的立足實(shí)時(shí)處理和在線服務(wù)同時(shí)作為數(shù)據(jù)源支持上層的數(shù)據(jù)分析應(yīng)用的定位。

6.為什么很多分布式的數(shù)據(jù)庫(kù)都采用開源的模式?這種形式有什么優(yōu)劣勢(shì)?

我們很認(rèn)同一種劃分就是 “開源軟件商業(yè)化”和“商業(yè)軟件開源化”。巨杉走的是“商業(yè)軟件開源化”的路線。

我們堅(jiān)持以商業(yè)化軟件為核心,向企業(yè)用戶提供為企業(yè)用戶提供高質(zhì)量、穩(wěn)定可靠的商業(yè)化產(chǎn)品與標(biāo)準(zhǔn)化專業(yè)化的技術(shù)服務(wù),這也是企業(yè)市場(chǎng)不變的需求。

可以說是一種技術(shù)上的情懷,讓我們也和硅谷的前輩們一樣選擇開源,我們自己開發(fā)的數(shù)據(jù)庫(kù)產(chǎn)品,我們也希望和更多的開發(fā)者分享我們的技術(shù)。

同時(shí)我們也在商業(yè)化經(jīng)營(yíng)同時(shí),通過產(chǎn)品的開源和開源生態(tài)建立,快速推進(jìn)產(chǎn)品技術(shù)的品牌和用戶,同時(shí)能幫助構(gòu)建自己的技術(shù)生態(tài)。

此外,開源也有出于我們團(tuán)隊(duì)的技術(shù)自信,也是一種程度回應(yīng)對(duì)于我們自己研發(fā)的質(zhì)疑吧。

而對(duì)于“開源軟件商業(yè)化”,如果完全開放開源,對(duì)于商業(yè)化運(yùn)營(yíng)會(huì)有不小的影響。主要也就是商業(yè)化與社區(qū)版發(fā)展的關(guān)系,社區(qū)的需求與企業(yè)用戶的需求不一定一直,商業(yè)版本與社區(qū)版本的發(fā)展方向也可能互相沖突,甚至于商業(yè)化團(tuán)隊(duì)無法完全掌握核心技術(shù),這對(duì)于用戶來說可不是好消息。

7.對(duì)于想踏入或剛剛進(jìn)入這個(gè)領(lǐng)域的新人來說,有沒有什么心得建議?

對(duì)于在這個(gè)領(lǐng)域經(jīng)驗(yàn)尚不夠豐富的朋友們來說,我個(gè)人認(rèn)為最重要的兩點(diǎn)建議就是:

1)充分了解你想使用的分布式技術(shù)有哪些特點(diǎn),并且一定要充分結(jié)合你的業(yè)務(wù)特點(diǎn),這樣你才有可能做出最佳選擇。記住,絕沒有哪一項(xiàng)技術(shù)在所有的業(yè)務(wù)場(chǎng)景下都是最佳選擇,最適合業(yè)務(wù)場(chǎng)景的才是最佳選擇!

2)理論分析固然重要,但實(shí)測(cè)更有說服力!不要嫌麻煩,一定要用全面的測(cè)試結(jié)果來支持(或者推翻)你的方案。

上面這兩點(diǎn)看上去都是很樸素的道理,但實(shí)際操作中卻經(jīng)常被忽略,也是極容易掉進(jìn)去的坑。

THEEND

最新評(píng)論(評(píng)論僅代表用戶觀點(diǎn))

更多
暫無評(píng)論