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