楊志豐:這種NoSQL方案理解大部分在線實時查詢方式,OceanBase功能,我白天做查詢,現在即使Hadoop也很難找到一個很好的解決方案,因為你很難控制計算資源,對于實時應用,你要留足夠大的余量來保持實時性。
主持人程顯峰:其實還是資源比較有限,很難控制?
楊志豐:本身就是倒出去做離線計算。
主持人程顯峰:來參加大數據有很多還在考慮NoSQL,考量很多方案,大家拿不準一個問題,我什么時候該用NoSQL,什么時候該跳進這個池子里,或者我采取一些措施可以繼續支撐再高一個層次,現在到了這個門檻上,我是繼續來優化我現有系統,還是我研究一下新技術,嘗試一下,有什么樣的信號,你們在選NoSQL的時候是怎么來進行抉擇的,到這個點了我們可以嘗試了,還不到這個點,有沒有什么關鍵的指標可以來說明這個問題?
叢磊:對于選擇NoSQL我建議不要盲目選擇和跟風,我就以游戲公司為例。畢竟SAE有很多游戲公司,其實不管什么平臺游戲公司是最賺錢的一種類型公司,但是游戲公司我所知道應用99%,我所了解到的只用MySQL和MC,大部分公司用這兩個業務夠,沒有必要投入更大精力,當然也取決于個人對于技術追求,從業務角度來講沒有必要太多跟風。另外一個從選擇來講還是要看自己的需求,根據自己的領域來做這個選擇。
主持人程顯峰:是不是感覺現在互聯網公司更愿意趕潮流一些,有點過度一開什么馬上就跟上,我們也就試一試?
叢磊:我覺得稍微有點過,我個人覺得可能有點過。
李祎:我就講我們實際例子,我們為什么要做圖形數據庫,我們原來也是基于數據庫用戶關系,但是后面隨著推薦邏輯越來越復雜,你發現去調用數據庫的時候IO性能已經很低了。這時候又想到找我們BI,我們一調結果發現BI死掉了,我們就想自己做一個,因為我們做推薦,就需要一個圖形數據庫,我們就去找,找到一個正確路去做自己的一個圖形數據庫。
剛才那個說是IT,互聯網有點跟風過,我也比較保守贊成這個觀點。我們想YDS(音譯)特別火我們也想換,我們換了之后下午進行測試,發現效果非常好,內存消耗反而上去了,原來需要2個G就能存的數據,現在需要4個G,我們倒想換老板沒錢,現在這個辦公室最好,如果再換上去的話,很可能會出現一些各式各樣的問題,所以還是選擇一個比較穩妥的路子。其實IT公司,特別咱們互聯網公司崇尚一些科技技術其實是好事,應該多普及,要不然的話就沒有創新了,太保守。
楊志豐:我覺得這個問題能不用的時候就盡量不用,基本上最后不得不用的都是需求推動,因為我了解這幾年大公司,他們肯定是需求推動的,因為不得不這樣做。你運維成百上千個,比如Mark Server,把運維盡量自由化,我聽說也幾千臺組成Mark Server,如果你一個DB買比較好的,當前最好的硬件,肯定誰都不會找麻煩,當幾百臺,我們運維就是解決宕機,各種各樣擴展性方面的問題。
主持人程顯峰:有現有盡量不要改變,還有另外一個層次能用別人就不要自己寫一個,你們有三個人已經寫了?
楊志豐:你可以用,這個產品本身應該長成什么樣大家都不一樣。
李祎:自己一個架構師這就是你的職責,不能大家說好夠去用,出了問題還需要你負責。
巨建華:我覺得現在都在崇尚敏捷開發,我們在做一個項目的時候,特別互聯網實驗性項目,我們可能更希望快速上線,上線之后能夠快速改進。一個應用下來我覺得我自己都會很累,而我們采用類似于MongoDB面向文檔存儲的東西,本身就跟ORM結合非常好,不用寫代碼,如果我對某種MongoDB數據庫用的比較熟覺得自己能夠Hold住這個東西,即使項目組中其他人不一定會熟悉,畢竟開發很簡單,從能夠快速完成工作回家的角度我是支持用MySQL,確實能夠提高開發效率,還有一個好處將來你的產品真的成長起來,成熟起來,你想做分布的時候會發現會省了很多時間。
主持人程顯峰:其實我們從兩個,大家從兩個不同角度去講這個問題,最終都是你最終付出多少成本,前三位最關注數據庫維護,他運維的一些成本,可能更關注開發上線這部分成本。把這兩部分成本看看自己找一個非常好的平衡點來做這個事情。在這個公司采用NoSQL的時候,一定會去找一些NoSQL的技術人員,各位在從業過程中你們是如何評價一個NoSQL技術人員,應該具備什么素質?我們這個會開完之后會有無數人跳進這個圈子,他們到底跳進一個火盆,還是一個火坑,他需要具備什么樣的素質,你就覺得這個東西,因為傳統DBA是有標準的,基本上就哪些內容,現在NoSQL不一樣了,大家都有不同看法,我們從建化那邊開始。
巨建華:我認為很多NoSQL產品對開發人員相對兩說,我認為是比較簡單的,只要這個開發人員能夠了解比如一些數據的建模模式和原來不同,原來習慣性的如何表現數據模型。第二就是關于比較注重性能優化方面,如何能找出自己代碼存在的問題。當然為了能夠達到優化的能力,就需要深入理解這個數據庫對查詢的方式等都需要有深入理解,跟普通數據庫都沒有什么不同,包括IO,一整套架構都非常了解。當然我們也知道關系型數據庫,很多人甚至寫完之后知其然不知所以然也能夠讓程序上線,對于MySQL這種情況也可能存在,來保證這些東西不會出太大問題。
一般來說,只要會使用,按照SQL一樣能夠熟悉,知道合理利用索引優化數據庫,如何知道怎么把原來SQL模式,轉發類似于文檔模式的開發方式,就能夠基于NoSQL數據開發。
主持人程顯峰:基本原理你知道索引怎么回事,帶來什么樣提升,要知道SQL技術好的話,學NoSQL也快?
巨建華:可以這么理解。
楊志豐:我的角度做NoSQL的人,有一個很著名去年Google有一個大牛,他在去年的時候有一個PPT在下面就講了他做Google那些基礎設施他的經驗。比如其中有一條,你知道一個網絡包從這到英國回來需要多長時間,一個存儲體系結構,就是做系統的要求,你要知道一次內存訪問多長時間,一次磁盤訪問,一次Flash訪問,自己要有一個概念,其實說白了要有做系統的感覺,你看到一個系統,你知道什么地方可能是瓶頸。
另外一方面NoSQL系統都是分布式的系統,從我要招人的話,如果他有分布式系統方面,比如研究生就是學分布式系統,這方面是一個很大優勢。比如你知道什么叫一致性,也是一個道理。
李祎:我的感覺沒有志豐那么高深,我們項目還是一個工程性質,我們招人的時候主要會用Java,只要你會Java,理解力比較好。剛才說的咱們怎么去評價一個人,會有一個附屬特性,沒有招一個專職人員去進行維護。我感覺現在如果從剛才致豐那個角度,我們開發人員的要求,也要懂一些底層怎么去建索引,因為我們自己用了很多索引的工業,還就Java基礎比較好,理解力比較好,我們做的利用一些圖形,數據上理論比較多,比如從我查認識奧巴馬最短數據是什么,怎么去做,對這方面要求多一些。
推薦閱讀
[ 針對新增資金如何投資的問題,中投公司副總經理汪建熙表示中投會根據既定的投資戰略和市場的變化進行投資;短期來看會有積極的偏離,但一定是做長期的配置,不會在短期內有大幅度的變化 ] 全國政協委員、中投公司副>>>詳細閱讀
本文標題:圓桌沙龍:NoSQL技術實戰
地址:http://m.sdlzkt.com/a/kandian/20120305/36928.html