數據庫技術仍在演進 關系型數據庫難以被替代
數(shu)(shu)據(ju)庫(ku)是IT領域(yu)應(ying)用最為普(pu)遍(bian)的(de)(de)(de)(de)基(ji)礎軟件之(zhi)一。在企業(ye)(ye)的(de)(de)(de)(de)核心業(ye)(ye)務系統之(zhi)中(zhong),數(shu)(shu)據(ju)庫(ku)往往扮演(yan)著非常重要的(de)(de)(de)(de)角(jiao)色,在一定(ding)程度上(shang)會(hui)(hui)直接影響項目的(de)(de)(de)(de)成(cheng)敗關。 應(ying)該說,過去(qu)數(shu)(shu)據(ju)庫(ku)選(xuan)(xuan)型并不(bu)是太難:因(yin)為幾乎所有(但不(bu)絕對)基(ji)于數(shu)(shu)據(ju)庫(ku)的(de)(de)(de)(de)應(ying)用都要選(xuan)(xuan)擇關系型數(shu)(shu)據(ju)庫(ku),選(xuan)(xuan)型時(shi)重點(dian)考慮的(de)(de)(de)(de)是到底選(xuan)(xuan)Oracle還是DB2、 Sybase或(huo)者SQL Server,在方向上(shang)不(bu)會(hui)(hui)出問(wen)題。
然而(er),今天選(xuan)擇多了(le),在傳(chuan)統關(guan)系型數(shu)(shu)(shu)據之外有了(le)以Hadoop的(de)(de)HBase、 MongoDB為代表(biao)的(de)(de)NoSQL、還有在互聯網(wang)網(wang)企業廣泛使用的(de)(de)以MySQL為代表(biao)的(de)(de)開(kai)源數(shu)(shu)(shu)據庫(ku)。有了(le)選(xuan)擇其實是一種(zhong)痛苦(ku)。在面臨(lin)更(geng)(geng)多數(shu)(shu)(shu)據庫(ku)選(xuan)項,特別(bie) 是市場充斥著一些類(lei)似“開(kai)源數(shu)(shu)(shu)據庫(ku)取(qu)代商業數(shu)(shu)(shu)據庫(ku)”、“NoSQL取(qu)代關(guan)系型數(shu)(shu)(shu)據庫(ku)”的(de)(de)說(shuo)法的(de)(de)時候,更(geng)(geng)有必要理性正視自己(ji)的(de)(de)業務需求,客觀分析各(ge)種(zhong)選(xuan)項的(de)(de) 優缺點,然后做(zuo)出正確的(de)(de)選(xuan)擇。
關(guan)系型數據庫不可替代(dai)
“和以前(qian)相(xiang)比,現在市(shi)場(chang)上有(you)太多不理性的聲音(yin),其中有(you)些甚至是完全錯(cuo)誤的說法。而出現這些錯(cuo)誤的根(gen)源在于,缺乏對數據庫技(ji)術(shu)的了(le)解。”甲骨文公司副總裁及大中華區技(ji)術(shu)產品事業部(bu)總經理吳承楊告訴記者(zhe)。
甲骨文公司副總(zong)裁及(ji)大中華區技術產品事業部總(zong)經理吳承(cheng)楊
在吳(wu)承(cheng)楊看來,離(li)開了具體的(de)業務(wu)需求(qiu),簡單地說(shuo)采用(yong)(yong)Hadoop + NoSQL來替(ti)代(dai)關系數(shu)(shu)據庫(ku)、采用(yong)(yong)開源的(de)關系型(xing)數(shu)(shu)據庫(ku)諸(zhu)如MySQL是否(fou)更節省成本(ben)是沒有什么意義的(de),而認(ren)為關系型(xing)數(shu)(shu)據庫(ku)已經(jing)過時更是毫無道理。
“現(xian)在(zai)關系型數據庫仍然不(bu)可替代,特別是一些關鍵的核(he)心(xin)業務系統中,即使在(zai)互聯(lian)網(wang)公司它的作用也是如此。”吳承楊介(jie)紹說。
全球在線支付巨頭PayPal就是Oracle數據庫產品的忠實用戶。作為一家快速增長的互聯網金融企業,PayPal面臨著海量數據、業務服務等級SLA要求高,這個高速的OLTP環境中運行著超過500個數據庫實例,在峰值時段,需要每秒鐘處理超過 30萬執行,實時分析 99.99% 的關鍵應用,針對95%需求 < 40 ms 響應時間(這是Paypal在2012年公布的數據)。PayPal選用了甲骨文公司全線產品包括Oracle Database、Oracle Exadata、Oracle GoldenGate、Active Data Guard等,搭建了業務關鍵數據庫、主生產中心和容災生產中心的關鍵架構。
實際上,即使(shi)像MapReduce技術(shu)的發源(yuan)地(di)Google也不認(ren)為(wei)NoSQL能(neng)取代關(guan)(guan)系型數據庫(ku)MySQL,Google認(ren)為(wei)其業務邏輯在沒有(you)SQL的查詢支持下(xia)無法工作,為(wei)此他們(men)正在開發F1分(fen)布式關(guan)(guan)系型數據庫(ku)系統。
多種(zhong)數據管理(li)技術共存(cun)
當 然(ran),不可否認,近年來關(guan)系型數(shu)(shu)據(ju)庫(ku)(ku)的確遇到了很多挑戰(zhan),其中(zhong)最為主要(yao)的是數(shu)(shu)據(ju)處理類型日趨復雜(za),數(shu)(shu)據(ju)量的爆炸性(xing)(xing)增(zeng)長。這兩(liang)者都會給(gei)數(shu)(shu)據(ju)庫(ku)(ku)帶來性(xing)(xing)能壓力(li),過(guo) 去解決(jue)這兩(liang)個問題的辦法是對設(she)備和軟件進行(xing)升(sheng)級,但(dan)現(xian)在這一辦法開(kai)始(shi)行(xing)不通(tong)了。一方面,垂直向上擴展(zhan)(Scale-up)終(zhong)究能力(li)有(you)限,而且成本(ben)巨大;另 一方面,在對類似網絡訪問日志這樣的數(shu)(shu)據(ju)資(zi)源采用傳統數(shu)(shu)據(ju)庫(ku)(ku)有(you)些(xie)“大材小用”,技(ji)術上并不合適,成本(ben)也太高(gao)。
值得一(yi)提的是(shi),對于這些(xie)最新的挑(tiao)戰,關(guan)系型數據庫也在積(ji)極應對,這主要表現在通過水平(ping)擴展(Scale-Out)策略來應對數據量增長(chang)以及性能帶來的壓力,具體(ti)手段包括列存儲、智能掃描、內存計(ji)算(suan)以及數據庫一(yi)體(ti)機等(deng)。
“任 何一(yi)(yi)(yi)種技術(shu)都有(you)其應用范(fan)圍,關(guan)系型數(shu)據庫也(ye)不(bu)(bu)(bu)例外(wai),我(wo)們不(bu)(bu)(bu)能(neng)指望它幫助我(wo)們解決所有(you)數(shu)據管理(li)方面的需求,這也(ye)正(zheng)是NoSQL興起的原(yuan)因。”吳承楊表 示,“NoSQL的本質是對關(guan)系型數(shu)據庫的一(yi)(yi)(yi)些特(te)征與約束(shu)進(jin)行簡化,以(yi)滿足一(yi)(yi)(yi)些特(te)定的需求,而不(bu)(bu)(bu)是要推翻它。正(zheng)如關(guan)系型數(shu)據庫有(you)其適(shi)用范(fan)圍一(yi)(yi)(yi) 樣,NoSQL有(you)其適(shi)用范(fan)圍,并非所有(you)場(chang)景都合(he)適(shi)。”
NoSQL適(shi)合(he)那(nei)(nei)些(xie)對數(shu)據操作需(xu)求比較(jiao)簡單,一般不(bu)(bu)需(xu)要采(cai)用(yong)SQL語句的(de)場(chang)合(he),比如(ru)網(wang)絡日(ri)志的(de)處理,在這(zhe)些(xie)場(chang)合(he)如(ru)果采(cai)用(yong)關系型數(shu)據庫就(jiu)不(bu)(bu)得(de)不(bu)(bu)承受(shou)那(nei)(nei)些(xie)并不(bu)(bu)需(xu)要的(de)高級(ji)功能(如(ru)強事(shi)務(wu)性(xing)、豐富的(de)索引(yin)、強一致性(xing)保障(zhang))能而(er)帶來的(de)擴展性(xing)約束、性(xing)能約束和高成(cheng)本。
“從長遠(yuan)來(lai)(lai)看,未(wei)來(lai)(lai)數(shu)(shu)(shu)據庫(ku)技術已經(jing)會(hui)走(zou)向(xiang)傳統關系型數(shu)(shu)(shu)據庫(ku)與NoSQL這些數(shu)(shu)(shu)據庫(ku)并(bing)存、內(nei)存化(即內(nei)存計(ji)算)、數(shu)(shu)(shu)據庫(ku)云以及(ji)數(shu)(shu)(shu)據庫(ku)一體機。”吳(wu)承楊說,這也正是甲骨文近年(nian)來(lai)(lai)在數(shu)(shu)(shu)據庫(ku)領域的(de)投資重點(dian)。
實 際上,作為甲(jia)骨(gu)(gu)(gu)文其(qi)他業務的(de)(de)基礎(chu),甲(jia)骨(gu)(gu)(gu)文在數(shu)(shu)據(ju)(ju)庫(ku)市(shi)場不敢懈怠,并一直致力(li)于創(chuang)新。比(bi)如,最(zui)新版本的(de)(de)Oracle數(shu)(shu)據(ju)(ju)庫(ku)12c采(cai)用了創(chuang)新的(de)(de)多租戶(hu)架構,用 戶(hu)可以利用Oracle數(shu)(shu)據(ju)(ju)庫(ku)12c輕松實現(xian)云端整合,顯著提高運行效率并大大降低成(cheng)本。近期,甲(jia)骨(gu)(gu)(gu)發布了劃(hua)時(shi)(shi)代(dai)的(de)(de)數(shu)(shu)據(ju)(ju)庫(ku)產(chan)品 OracleDatabase In-Memory,進一步(bu)增強(qiang)了Oracle數(shu)(shu)據(ju)(ju)庫(ku)12c的(de)(de)威力(li),幫(bang)助企業實時(shi)(shi)挖掘深度數(shu)(shu)據(ju)(ju)信息,提高交易性能。還有在云計算方面,甲(jia)骨(gu)(gu)(gu)文的(de)(de)數(shu)(shu)據(ju)(ju)庫(ku)即(ji)服(fu)務(Database-as-a-Service,DBaaS)能夠(gou)幫(bang)助企業簡化(hua)其(qi)IT系統化(hua),并進一步(bu)達到動態優化(hua)和(he)資源管理(li)的(de)(de)高效系統。