數(shù)據(jù)庫是一種簡化數(shù)據(jù)處理的IT基礎(chǔ)設(shè)施

在數(shù)據(jù)處理上,用戶的需求也是在不斷地推陳出新的。最初我們只需要處理簡單的數(shù)據(jù)行,后來我們又要處理LOB等大型字段,空間信息、矢量數(shù)據(jù)、時(shí)序數(shù)據(jù)、實(shí)時(shí)數(shù)據(jù)等等的處理需求也越來越復(fù)雜,DB4AI也會(huì)成為未來的剛需。

本文來自微信公眾號(hào)“白鱔的洞穴”,作者/白鱔。

經(jīng)常聽到一些話,比如“數(shù)據(jù)庫把基本功能搞穩(wěn)定就行了,弄那么多沒用的功能干啥?”,實(shí)際上數(shù)據(jù)庫廠商開發(fā)那么多功能出來,也不是閑著沒事干隨便消遣的。功能意味著用戶的需求,Oracle的功能可能你只用過不到10%,但是為什么Oracle還要做那么多復(fù)雜的功能呢?因?yàn)槠渌蛻粲羞@方面的需求。

這些年一直存在著哪種數(shù)據(jù)庫最好的爭論,是簡單的,專注于數(shù)據(jù)存儲(chǔ)的,還是面向復(fù)雜計(jì)算的;是單一功能的還是多模態(tài)的;是專注于關(guān)鍵交易的還是HTAP的?以前也有數(shù)據(jù)庫業(yè)內(nèi)的人問我對多模數(shù)據(jù)庫怎么看,他們在討論數(shù)據(jù)庫里要不要加入多模的能力。當(dāng)時(shí)我從我目前的一些客戶的需求分析了一下,認(rèn)為多模數(shù)據(jù)庫只會(huì)增加數(shù)據(jù)庫的復(fù)雜度,影響RDBMS核心的穩(wěn)定性,甚至限制數(shù)據(jù)庫核心的功能,對用戶來說價(jià)值并不大。

現(xiàn)在想想,當(dāng)時(shí)的考慮還是過于簡單了,實(shí)際上上面的問題都是相同的一個(gè)問題。如果不搞清楚數(shù)據(jù)庫是做啥用的,這個(gè)問題很容易得到錯(cuò)誤的答案。今天我給數(shù)據(jù)庫一個(gè)非學(xué)術(shù)化的定義:“數(shù)據(jù)庫是一種簡化數(shù)據(jù)處理的IT基礎(chǔ)設(shè)施”。“簡化”兩個(gè)字的含義十分廣泛,因此從這個(gè)定義上看,一切能夠簡化數(shù)據(jù)處理的能力,數(shù)據(jù)庫都可以擁有。

說到簡化處理,不同的企業(yè)對于簡化數(shù)據(jù)處理的能力要求是不同的,互聯(lián)網(wǎng)企業(yè)擁有強(qiáng)大的研發(fā)隊(duì)伍,優(yōu)秀的自有數(shù)據(jù)處理算法。他們一般不太需要數(shù)據(jù)庫提供強(qiáng)大的數(shù)據(jù)處理能力,因此數(shù)據(jù)庫內(nèi)置的一些數(shù)據(jù)處理的能力對他們來說并不一定是必須的,甚至可能過于簡陋了。而對于傳統(tǒng)企業(yè)來說,可能研發(fā)人員連算個(gè)標(biāo)準(zhǔn)差都得查資料找例子,這些功能如果能在數(shù)據(jù)庫里內(nèi)置了,肯定是有價(jià)值的。對于一些互聯(lián)網(wǎng)企業(yè)的研發(fā)隊(duì)伍來說,數(shù)據(jù)庫就是個(gè)存數(shù)據(jù)的容器而已,用MySQL這樣的簡簡單單的數(shù)據(jù)庫就夠好了;而對于一些傳統(tǒng)行業(yè)的研發(fā)團(tuán)隊(duì)來說,數(shù)據(jù)庫的能力越強(qiáng)越好,最好什么業(yè)務(wù)都能通過一條SQL來解決掉。

這些年里,很多互聯(lián)網(wǎng)行業(yè)的數(shù)據(jù)庫專家?guī)е鴺O深的行業(yè)眼光來看自己不熟悉的傳統(tǒng)行業(yè)的問題,就難免得出錯(cuò)誤的結(jié)論了。而這些年互聯(lián)網(wǎng)企業(yè)為了自己的商業(yè)目的,拼命地輸出技術(shù)。這種不一定適合于傳統(tǒng)行業(yè),但是對于傳統(tǒng)企業(yè)十分有誘惑力的觀點(diǎn)又迎合了很多傳統(tǒng)行業(yè)IT部門領(lǐng)導(dǎo)的想法,因此這些觀點(diǎn)現(xiàn)在很吃香,也很流行。

基于上述原因,我們今天不討論互聯(lián)網(wǎng)行業(yè)亦或是研發(fā)能力極強(qiáng)的某些行業(yè)或者企業(yè)對數(shù)據(jù)庫功能的需求,來討論數(shù)據(jù)庫的功能對于普通的企業(yè)應(yīng)用的意義。這些企業(yè)不僅僅是想部署一套存儲(chǔ)數(shù)據(jù)的IT基礎(chǔ)設(shè)施,而是需要一個(gè)處理數(shù)據(jù)的IT基礎(chǔ)設(shè)施。因此數(shù)據(jù)的寫入、業(yè)務(wù)分析、批處理統(tǒng)計(jì)、數(shù)據(jù)分析與匯總、數(shù)據(jù)復(fù)制與共享、跨系統(tǒng)數(shù)據(jù)計(jì)算,等等等等,這些常見的能力都是研發(fā)隊(duì)伍所需要的。這對于數(shù)據(jù)庫廠商來說,提出了很高的要求,除了把數(shù)據(jù)庫核心做好,還要花大量的精力去做大量的技術(shù)難度不高,但是復(fù)雜度極高,工作量極大的外圍能力的研發(fā)。如果不能把這些功能搞好,那么用戶用起來就不爽,研發(fā)的成本也會(huì)增加。

把功能做全了,數(shù)據(jù)庫廠商只是邁出了第一步,對于大多數(shù)研發(fā)能力不強(qiáng)的企業(yè)來說,其應(yīng)用系統(tǒng)的質(zhì)量也是很差的。我從事系統(tǒng)優(yōu)化工作二十多年,這二十多年里見過各種水平的企業(yè)編寫的軟件系統(tǒng),其中不乏一些世界級(jí)的大廠。不過從一個(gè)做優(yōu)化的人的角度來說,這些應(yīng)用寫得都?jí)驙€的。這實(shí)際上也很正常,超高質(zhì)量的應(yīng)用系統(tǒng)所需要的成本是完全不同的,沒有企業(yè)愿意多花幾倍的價(jià)錢去購買一套十分優(yōu)秀的定制化軟件系統(tǒng)。即使有用戶愿意多花錢,實(shí)際上也是花了冤枉錢,多花幾倍的錢買不來與其花的錢所對應(yīng)質(zhì)量的定制化軟件,因?yàn)槟軐懗鲞@種水平代碼的隊(duì)伍太稀缺了,都被用在干更有價(jià)值的事情上了。

因此數(shù)據(jù)庫產(chǎn)品還要能夠經(jīng)受住這些“爛系統(tǒng)”的考驗(yàn),確保不會(huì)被極端的SQL把數(shù)據(jù)庫搞宕,最好還能夠快速的執(zhí)行完那些很爛的SQL??傊?,能讓那些開發(fā)能力一般的研發(fā)人員隨意使用數(shù)據(jù)庫,是數(shù)據(jù)庫作為一種簡化數(shù)據(jù)處理的IT基礎(chǔ)設(shè)施必須完成的使命。要做到這一點(diǎn)并不容易,Oracle花了幾十年才完成的任務(wù),我們相擁三五年就完成,想想也不太現(xiàn)實(shí)。

在數(shù)據(jù)處理上,用戶的需求也是在不斷地推陳出新的。最初我們只需要處理簡單的數(shù)據(jù)行,后來我們又要處理LOB等大型字段,空間信息、矢量數(shù)據(jù)、時(shí)序數(shù)據(jù)、實(shí)時(shí)數(shù)據(jù)等等的處理需求也越來越復(fù)雜,DB4AI也會(huì)成為未來的剛需。用戶不斷的在給數(shù)據(jù)庫廠商出著新的考題,數(shù)據(jù)庫產(chǎn)品的技術(shù)發(fā)展又出現(xiàn)新的推動(dòng)力,我想未來這些年,無論是傳統(tǒng)數(shù)據(jù)庫廠商還是新興數(shù)據(jù)庫廠商,在數(shù)據(jù)庫作為數(shù)據(jù)處理核心引擎這個(gè)概念上,會(huì)得到認(rèn)同。這是對20年前去IOE時(shí)“數(shù)據(jù)庫只是存儲(chǔ)數(shù)據(jù)的IT基礎(chǔ)設(shè)施,讓業(yè)務(wù)處理回歸應(yīng)用本身”這種思路的一種否定。

雖然作為一個(gè)常年做系統(tǒng)優(yōu)化工作的人來說,我很希望研發(fā)人員都能夠盡可能把業(yè)務(wù)處理邏輯放到應(yīng)用中去,數(shù)據(jù)庫只是承擔(dān)數(shù)據(jù)存儲(chǔ)的工作。不過如果如此,那么對于碼農(nóng)的技術(shù)要求就太高了,軟件研發(fā)成本也將大幅增加,很多企業(yè)的IT無法承受如此高的成本。對于大多數(shù)傳統(tǒng)行業(yè)的IT來說,快速,低成本地支撐業(yè)務(wù)的高速發(fā)展是其主要任務(wù),盡可能讓數(shù)據(jù)庫多做點(diǎn)數(shù)據(jù)處理的事情,讓研發(fā)人員做的事情變得簡單一些,可能是很多企業(yè)的最佳研發(fā)模式。

THEEND

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

更多
暫無評(píng)論