51CTO專訪巨杉數據庫CTO王濤:大數據時代數據處理和技術選型的方法
原創大數據已經滲透到各行各業之中,麥肯錫稱:“數據,已經滲透到當今每一個行業和業務職能領域,成為重要的生產因素。隨著數據量的不斷增大、以及對數據存儲檢索要求的不斷提高,數據庫技術也同大數據一樣被推到風口浪尖。51CTO專訪巨杉數據庫CTO王濤為您解讀大數據時代,數據處理和技術選型的方法。
記者:介紹一下您之前的工作經歷,以及巨杉數據庫的情況?
嘉賓:最初我在IBM做DB2關系型數據庫,但是到了2011、2012年的時候,大數據行業不斷興起,我們發現IBMDB2的數據庫不符合未來的趨勢,于是我們就在北美做了一個數據庫引擎,也就是NoSQL。后來,把它帶到國內,將其產品化。在2012年巨杉數據庫成立,2013年推出***個版本,很快就有了***個客戶,后來我們的客戶遍及政府、金融、電信等行業。到2014年我們完成了Pre-A輪和A輪兩輪融資。
記者:剛才您也提到對政府、電信、金融等行業的支持,現在應用這個數據庫自主研究數據庫的效果和情況怎么樣?
嘉賓:首先NoSQL是一個穩打類的數據庫,我們不是世界上***家,在國外Hadoop跟我們比較相似,我們也在跟很多接口上跟Hadoop兼容。
MonggoDB在國外的市場份額非常大,之前有老外做了測評在功能、性能上Hadoop在某些場景下是非常有優勢的。
Monggodb有一個特點就是功能非常多,但有很多不實用的東西存在,而我們有具有后發優勢—看清楚市場需求,進而推出產品,然后更新。同時我們同mongdb的***不同是,SQL方面我們會更多的關注企業級的市場,
記者:剛才你也提到Hadoop這種存儲方式,各種存儲方式都有優缺點,對于處理大數據的處理以及與Hadoop Spark技術的結合關于這種技術選型,對開發者有什么建議?
嘉賓:現在Oracle的東西已經不在討論的范疇之中,基本上都在說MySQL。雖然MySQL現在很多人都在用,但是這種MySQL對于應用的開發和運維是非常不友好的。第二就是在性能方面,當用戶做一些大的關聯的時候,極有可能會產生數據風暴,里面很多數據進行交換,這是非常可怕的,處理不好會出現非常嚴重的問題。
于是就有人提出用NoSQL這種新一代的數據結構。NoSQL現在用的比較多的三大分支是KV、寬表、文檔。KV的用法很多,一般是用作緩存,Redismemcached等等。我想要說的是真正做數據化存儲的兩大類;一個是寬表類,另一個是文檔類。
寬表類的優勢體現在列存儲上,但并不是傳統意義上的列存儲,有點像列簇,舉個例子來說,比如有一萬個字段,一條記錄,把它集中十份,每份有一千個字段,這一千個字段所代表的是邏輯上比較相近的東西,我可以把每一千個字段獨立的分布在機器上、當我需要查找的時候,只要拿出其中一部分就可以了,但是大家很少會用到這么多東西。
而文檔類的數據庫在我看來是最接近關系型數據庫的一種,雖然Hadoop的功能做的很豐富、但是大家都默認它是文檔類的工作。
現在很多文檔有一個行存儲,而且一般支持隨機索引,例如我們可以在A字段做索引,過幾天再做B字段的索引,這樣沃恩可以在很多個字段上做隨機查找,就不像寬表那樣只能在鍵值段做索引。例如在電信的應用場景里,我查找主叫號碼和被叫號碼,我就可以使用文檔型數據庫建立索引查找。
記者:企業現在數據量越來越大,對數據庫的擴容要求也很高,SQL在這個方面或者說巨杉數據庫在這個方面優勢在哪兒,或者說怎么處理這個擴容的問題?
嘉賓:如果說到擴容,那么傳統的DB2是大家最熟悉的了。之前在IBM的時候有一個客戶是256節點,需要增加64個,于是IBM派人做了一個月才做完
現在做非關系型數據庫會使用到各種機制,當我需要插入新的功能節點的時候,我只需要去移動最少量的數據,而其他還是穩定的存儲,這基本上就可以做到輕易擴容。
記者:剛才你也提到關系型數據庫,SQL對于關系型數據庫,相對傳統一些的數據庫,它倆會是什么關系,會是什么樣的方式存在?是取代還是?
嘉賓:我認為兩者的關系既不是并存也不是取代而是融合,畢竟SQL有它自身的價值和應用范圍,SQL***性存儲的能力還是非常好的。所以SQL不會被淘汰,而是一個強結構化的變化。在傳統金融業務上沒有道理需要用NoSQL取代SQL,因為SQL數據結構是非常嚴謹的。
反觀這種嚴謹性所帶來的應用開發延遲所導致的不夠敏捷,在互聯網業務上的弊端也就暴露無疑了,其實這也是NoSQL的地位所在。
這兩者在將來會是有一個互相融合的趨勢,NoSQL自身不會有接口。我認為所謂非結構化存儲或者半結構化存儲,相當于結構化存儲里面的某一個部分。從某種意義上來講,使用非結構化存儲也可以滿足很多結構化存儲的需求。在上層完善的時,完全可以把SQL引入。我們也看到了在很多地方在嘗試引用NoSQL的概念,,兩者之間越來越像,可能某一天就融合了。
記者:現在這種對于大數據庫Hadoop、spark,傳統的那些數據庫,對處理方式的支持上有什么弊端,遇到了什么問題?無論是Hadoop還是Spark,NoSQL對于它們的支持優勢在哪?
嘉賓:Hadoop它講究的是彈性擴張,水平擴張,傳統的關系型數據庫剛***的問題就是擴張不容易,甚至ORACLE這種完全是無法擴張的,這樣的話就是你的上層擴張了一百臺機器,底下很多東西東西,沒有一個本質上的提升。所以不管上面怎么擴,底下還是那樣一個瓶頸。 而最NoSQL本身是分布式的,Hadoop、spark也都是分布式的,我們做的conect這個接口可以讓Hadoop用本地的方式訪問本地的NoSQL的數據,這樣的結合就很緊密。