趙 剛,蔣文麗
(1.武漢大學(xué)動力與機械學(xué)院,武漢 430072;2.興業(yè)數(shù)字金融服務(wù)(上海)股份有限公司杭州分中心,杭州 310051)
關(guān)系數(shù)據(jù)模型于1970年由Codd提出,并在System R、Oracle等系統(tǒng)中實現(xiàn)[1-2]?;陉P(guān)系數(shù)據(jù)模型的數(shù)據(jù)庫技術(shù)已主導(dǎo)數(shù)據(jù)庫領(lǐng)域近半個世紀,近年來,隨著互聯(lián)網(wǎng)技術(shù)的飛速發(fā)展,純粹的關(guān)系數(shù)據(jù)模型難以滿足各類數(shù)據(jù)存儲和訪問需求,于是出現(xiàn)圖數(shù)據(jù)庫(如Neo4j)、XML數(shù)據(jù)庫(如MarkLogic)、Key-Value數(shù)據(jù)庫(如Redis)、文檔數(shù)據(jù)庫(如MongoDB)等多種不同數(shù)據(jù)模型的數(shù)據(jù)庫系統(tǒng),就市場占有率來看,關(guān)系型數(shù)據(jù)庫仍是主要的領(lǐng)導(dǎo)力量。
盡管關(guān)系型數(shù)據(jù)庫有其完備的理論和技術(shù)基礎(chǔ),但其在面對大量事務(wù)并發(fā)讀寫、大表的列式數(shù)據(jù)分析、海量數(shù)據(jù)存儲與檢索、非結(jié)構(gòu)化數(shù)據(jù)存儲與檢索等情況時,顯得效率低下,因此人們不斷探索新的數(shù)據(jù)庫技術(shù),以便適應(yīng)各種應(yīng)用情境,具體體現(xiàn)在以下幾個方面。
傳統(tǒng)數(shù)據(jù)庫采用行式存儲方式組織表數(shù)據(jù),即一行中的數(shù)據(jù)在存儲介質(zhì)中以連續(xù)存儲形式存在,盡管此存儲方式有很高的讀寫性能,但在發(fā)生表結(jié)構(gòu)變更時,可能由于存儲塊容量不足導(dǎo)致大量的行遷移。數(shù)據(jù)倉庫場景中,基于行式存儲的select col_list from table_name等SQL語句會引發(fā)大量的數(shù)據(jù)塊讀取,導(dǎo)致效率低下。相比較,基于列式存儲方式的引擎逐列存儲數(shù)據(jù)表可以很好地應(yīng)對此場景,受到業(yè)界普遍支持。未來,數(shù)據(jù)庫技術(shù)應(yīng)支持混合式的行、列存儲方式,以適應(yīng)不同的應(yīng)用情境[3]。
在互聯(lián)網(wǎng)信息爆炸時代,諸如WEB數(shù)據(jù)、日志數(shù)據(jù)、音視頻數(shù)據(jù)等非關(guān)系模型數(shù)據(jù)隨處可見,若將此類數(shù)據(jù)強行拆分成關(guān)系結(jié)構(gòu)而存儲,不僅影響信息表達,也不便于后續(xù)擴展。因而,大量學(xué)者認為,將非關(guān)系模型引入關(guān)系型數(shù)據(jù)庫,使之相互取長補短,符合數(shù)據(jù)庫技術(shù)發(fā)展方向。如Oracle數(shù)據(jù)庫引入XMLTYPE數(shù)據(jù)類型及相關(guān)API,以支持XML數(shù)據(jù)存取[4],不僅可以保持關(guān)系模型中數(shù)據(jù)的一致性處理優(yōu)勢,也可充分利用XML數(shù)據(jù)的快速擴展特性。
傳統(tǒng)數(shù)據(jù)庫系統(tǒng)大多基于磁盤存儲,數(shù)據(jù)的修改、訪問等操作需要經(jīng)過緩存-磁盤兩個階段,數(shù)據(jù)庫的大部分工作在緩存池、日志中處理[5],而真正的數(shù)據(jù)增刪改查所占負載很低。近年來,隨著DRAM價格的逐漸降低,其容量越來越大,將整個數(shù)據(jù)庫載入內(nèi)存中,使提供實時、高效的OLTP服務(wù)(In-Memory DBMS)成為可能。當前,工業(yè)界已開發(fā)出多款商用內(nèi)存數(shù)據(jù)庫,如TimesTen、Altibase等。相較傳統(tǒng)基于磁盤的數(shù)據(jù)庫,此類數(shù)據(jù)庫可提供更快、近乎實時的事務(wù)處理能力。特別是TimesTen,其不僅可以作為獨立數(shù)據(jù)庫使用,也可作為Oracle數(shù)據(jù)庫的緩存與其配合使用。通過測試比較,內(nèi)存數(shù)據(jù)庫的事務(wù)處理能力普遍比傳統(tǒng)基于磁盤的數(shù)據(jù)庫快至少一個量級[6]。
傳統(tǒng)模式下,企業(yè)為其自身IT應(yīng)用購置基礎(chǔ)設(shè)施并組建機房,隨著全球互聯(lián)網(wǎng)的進一步發(fā)展,越來越多的企業(yè)需要走出國門為全球用戶提供服務(wù)。此情形下,傳統(tǒng)數(shù)據(jù)庫因數(shù)據(jù)過于集中、硬件擴展能力受限等因素逐漸成為企業(yè)IT發(fā)展的瓶頸。近年來,隨著分布式與云計算技術(shù)的發(fā)展,數(shù)據(jù)庫上云(云數(shù)據(jù)庫)成為業(yè)界研究熱點[7-9]。借助云計算的力量,云數(shù)據(jù)庫可提供龐大的存儲能力與計算資源,方便快速伸縮擴容。為適配云計算的特點,數(shù)據(jù)庫本身需要進行相關(guān)改造,如分庫分表、數(shù)據(jù)加密、數(shù)據(jù)容災(zāi)、跨節(jié)點遷移等。
隨著版本的迭代與需求的變化,數(shù)據(jù)庫系統(tǒng)越發(fā)復(fù)雜,難以維護。近年來,數(shù)據(jù)庫使用人員迫切希望系統(tǒng)能更加智能,以便能接管一些簡單的運維工作,如索引創(chuàng)建、內(nèi)存調(diào)優(yōu)等。因而,伴隨AI技術(shù)的進一步發(fā)展與商用,將其引入數(shù)據(jù)庫系統(tǒng),實現(xiàn)數(shù)據(jù)庫的自主運維與調(diào)優(yōu)成為業(yè)界研究熱點[10]。如ORACLE公司推出的19c數(shù)據(jù)庫,能自動根據(jù)歷史查詢記錄創(chuàng)建索引,并根據(jù)機器學(xué)習(xí)建模推演數(shù)據(jù)庫負載。
該類型是未來數(shù)據(jù)庫技術(shù)發(fā)展的目標。數(shù)據(jù)庫是信息技術(shù)領(lǐng)域三大系統(tǒng)軟件之一,為適應(yīng)不斷發(fā)展的軟硬件技術(shù),應(yīng)對不斷變換的業(yè)務(wù)需求,數(shù)據(jù)庫技術(shù)需要不斷更新?lián)Q代。隨著AI、數(shù)據(jù)挖掘、非易失存儲器(NVM)、云計算等技術(shù)的不斷成熟,支持HTAP的智能化云數(shù)據(jù)庫將成為未來數(shù)據(jù)庫技術(shù)的目標與核心。AI技術(shù)可基于數(shù)據(jù)庫歷史統(tǒng)計信息預(yù)測未來工作負載與操作,從而進行自主性的運維與調(diào)優(yōu)。數(shù)據(jù)挖掘技術(shù)可根據(jù)不同數(shù)據(jù)信息進行分析推演,找出其中規(guī)律,指導(dǎo)后續(xù)決策。NVM技術(shù)可使數(shù)據(jù)庫從基于慢速磁盤的存儲方式中解脫。云計算技術(shù)可為數(shù)據(jù)庫提供大規(guī)模計算、快速擴展、跨地域容災(zāi)等能力。在上述技術(shù)的聯(lián)合推動下,支持HTAP的智能化云數(shù)據(jù)庫將成為新一輪數(shù)據(jù)庫技術(shù)的發(fā)展目標。
數(shù)據(jù)庫技術(shù)處于百家爭鳴的繁榮時代,各類開源數(shù)據(jù)庫、非關(guān)系型數(shù)據(jù)庫層出不窮,極大豐富了數(shù)據(jù)庫的應(yīng)用情境。此過程中,新舊技術(shù)相互補充和配合,共同為數(shù)據(jù)庫技術(shù)的發(fā)展做出貢獻。我國作為計算機應(yīng)用大國,盡管起步較晚,但在市場與國家政策的推動下奮力追趕,逐漸在數(shù)據(jù)庫領(lǐng)域占得一席之地。未來,需要更加努力研究并完善數(shù)據(jù)庫技術(shù),順應(yīng)時代發(fā)展潮流,占領(lǐng)信息化時代高峰。