數據庫發(fā)展史(下)
本篇文章為大家講解AI原生數據庫和其他類型數據庫的發(fā)展歷程。
AI原生數據庫
近年來,隨著AI(人工智能)技術的成熟和發(fā)展,AI與數據庫的結合越來越緊密。為了提高數據庫系統(tǒng)的智能化程度,使數據庫系統(tǒng)能夠更加智能地運行、維護、管理,不斷有研究者采用人工智能方法來解決數據庫管理、優(yōu)化等問題。
2019年初,谷歌聯合麻省理工學院、布朗大學的研究人員共同推出了新型數據庫系統(tǒng)SageDB,并撰寫了一篇論文詳述SageDB的設計原理和性能表現。論文中提出學習模型可以滲透到數據庫系統(tǒng)的各個方面,提供了一種構建數據庫系統(tǒng)的全新方法。清華大學利用AI技術來支持數據庫的自調優(yōu)、基于AI的代價估計器、基于AI的優(yōu)化器、基于AI的物化視圖技術以及庫內AI推理技術。
2019年5月,華為公司發(fā)布了全球首款AI原生(AI-Native)數據庫——GaussDB,該數據庫實現了兩大革命性突破:
(1) 該數據庫首次將人工智能技術融入分布式數據庫的全生命周期,實現自運維、自管理、自調優(yōu)、故障自診斷和自愈。
(2) 該數據庫通過異構計算創(chuàng)新框架充分發(fā)揮x86、ARM、GPU、NPU 多種算力優(yōu)勢。
GaussDB的出現,標志著數據庫產業(yè)將全面進入人工智能時代。雖然AI原生數據庫具有很多優(yōu)勢,但是AI原生數據庫處于起步階段,面臨很多挑戰(zhàn),需要研究者投入更多的精力進行開發(fā)和研究。
其他類型數據庫
除了上面介紹的比較有影響力的數據庫外,在數據庫領域還存在著許多其他類型的數據庫。
1.?實時數據庫
在大多數系統(tǒng)中,實時處理數據一直都是十分迫切的需求。實時數據處理最早的嘗試在20世紀80年代末,有人提出了活動數據模型,該類模型能夠實時捕獲數據變化并更新數據,在很多關系數據庫中得到了使用,但由于其語法過于復雜,往往會導致計算代價過高。在20世紀90年代到21世紀初期間,出現了多種用于管理數據流的系統(tǒng)(Data Stream Management System,DSMS)。典型的實時數據庫有Apache Storm、PipelineDB、Heron和谷歌的Dataflow等。
2.?終端數據庫
前面介紹的數據庫都是運用在服務器、集群、云計算平臺等計算資源上的,“體積”龐大,以“客戶端/服務端”的形式提供數據存儲和管理服務。為了克服“客戶端/服務端”模型因為通信帶來的開銷,降低延遲時間,提出了終端數據庫的概念。
SQLite是一款輕型的由C語言編寫的,遵守ACID特性的關系數據庫管理系統(tǒng)。它的設計是嵌入式的,因此資源占用非常低,目前已經在很多嵌入式產品中使用。
LevelDB是谷歌公司實現的一個非常高效的鍵值數據庫,目前的版本能夠支持10億級別的數據量。盡管LevelDB是單進程的服務,但是它的性能非常高,這主要歸功于它的良好的設計。
終端數據庫主要是為了應對性能的數據訪問需求出現的,結構簡單,性能高,往往只適合在單機上使用。
3.?數據倉庫
為了解決企業(yè)數據集成問題,1988年,IBM 公司的研究員Barry Devlin和PaulMurphy創(chuàng)造性地提出了一個新的概念———數據倉庫(Data Warehouse)。數據倉庫是決策支持系統(tǒng)和聯機分析應用系統(tǒng)的結構化數據環(huán)境。之后,眾多廠商開始構建實驗性的數據倉庫。1991年,數據倉庫之父比爾·恩門(Bill Inmon)在出版的Building the Data Warehouse 一書中提出的關于數據倉庫的定義被廣泛接受,使得數據倉庫真正開始應用,其功能是將聯機事務處理(OLTP)長期累積的大量數據,經過抽取、轉換、集成和清洗等操作后得到的一組具有主題的、面向分析的數據。比較著名的數據倉庫產品有IBM 公司的InfoSphere Warehouse,微軟公司的Microsoft SQL Server Fast Track以及天睿公司的Teradata等。數據倉庫容量大,能夠進行分析決策和數據挖掘,但是,數據倉庫中的數據難以更新,缺乏規(guī)范,往往都是面向某一應用,具有一定的局限性。
4.?數據湖
企業(yè)在生產過程中會產生、接收和存儲大量的數據,而這些數據通常難以被其他應用程序直接利用,面臨著這些數據應該以何種方式進行存儲和分析數據的挑戰(zhàn),數據難以被共享和利用也容易導致數據孤島的產生。為了解決這些問題,Pentaho公司的創(chuàng)始人兼首席技術官詹姆斯·狄克遜于2011年提出了數據湖的概念。簡單來說,數據湖就是一個以比較自然的方式存儲企業(yè)的原始數據的數據倉庫或者系統(tǒng),它能以各種模式和結構形式方便地配置數據,通常是對象塊或文件。數據湖不但能存儲傳統(tǒng)類型數據,也能存儲其他類型的數據,并且能基于這些數據做處理與分析工作,產生最終輸出供各類程序消費。目前,成熟的數據湖并不多,亞馬遜公司AWS Lake Formation服務,可以在幾天內輕松建立安全的數據湖,松下、Accenture等公司都借助亞馬遜公司的這一服務搭建自己的數據湖。近年來,雖然數據湖逐漸得到重視,但是數據湖缺乏數據治理和元數據管理,對原始數據的可用性也有一些過分夸大。
5.?并行數據庫
為了提高數據庫的性能和可用性,研究者提出利用并行處理的方法,通過多個處理節(jié)點并行執(zhí)行數據庫任務,提高整個數據庫系統(tǒng)的性能和可用性。目前并行數據庫主要分成兩類: 一類是傳統(tǒng)的大規(guī)模并行處理(Massively Parallel Processing,MPP)關系數據庫,比如Greenplum、Vertica等; 另一類是借鑒了MPP并行數據庫的設計思想的SQL on Hadoop類的方案,比如Impala、HAWQ、SparkSQL等。
然而,并行數據庫系統(tǒng)也有一些難以克服的缺點。例如,該類數據庫的數據遷移代價通常比較昂貴、沒有較好的彈性,靈活性較低,這影響到了并行數據庫的彈性以及實用性。此外,該類數據庫的另一個問題就是容錯性較差。如果在查詢過程中節(jié)點發(fā)生故障,那么整個查詢通常都要重新執(zhí)行。
6.?大數據分析工具
大數據的處理往往需要依賴專門設計的硬件和軟件,目前,已經有很多企業(yè)開發(fā)出了多種大數據分析工具。
MapReduce是由谷歌公司研發(fā)的一種面向大規(guī)模數據處理的并行計算框架。簡單來說,MapReduce基于并行計算的思想,將一個大計算量的任務和數據分解給若干個Mapper同時進行處理和計算,最后由Reducer負責匯總Mapper的處理結果。隨著MapReduce在眾多大數據任務中取得成功,它已經為大數據并行處理帶來了巨大的革命性影響,同時也是大數據時代的流行計算框架之一。
Hadoop是Apache公司設計開發(fā)的一個能夠對海量數據進行快速分布式分析處理的軟件框架。它能基于簡單的編程模型將海量數據分發(fā)到計算集群中,以便進行分布式計算。
Storm 也是Apache公司研發(fā)的一款實時計算系統(tǒng),該系統(tǒng)可以強化數據流的處理效果和性能,也可以用于在線機器學習、分布式PRC(Remote Procedure Call)和持續(xù)處理等大數據分析相關的場景。Apache公司的Spark是專為大規(guī)模數據處理而設計的快速通用的計算引擎,可用它來完成各種各樣的運算,包括SQL查詢、文本處理、機器學習等。
RapidMiner能夠提供一個集成開發(fā)環(huán)境進行數據挖掘、機器學習和文本挖掘等工作。
迄 今為止,已經有很多優(yōu)秀的大數據分析工具投入使用,并形成了良好的生態(tài),極大地推動了數據科學的進步。
小結
到目前為止,隨著計算機應用領域的不斷發(fā)展,數據庫技術與計算機網絡技術、人工智能技術和并行計算技術等相互滲透、互相結合,成為當前數據庫技術發(fā)展的主要特征之一,呈現了下一代數據庫的潛在發(fā)展方向。例如,傳統(tǒng)的OLAP(聯機分析處理)技術主要面向關系數據,然而其他類型的數據(例如,圖數據和時空數據等)也有越來越多的應用場景。因此,如何分析這些多模態(tài)的數據也是OLAP面臨的挑戰(zhàn)之一。特別是企業(yè)從BI(商業(yè)智能)到AI的轉型,繼續(xù)設計下一代OLAP系統(tǒng)來實現智能化分析。
首 先,如何將人工智能技術與數據庫技術相結合是未來的一個發(fā)展趨勢之一。傳統(tǒng)的數據庫優(yōu)化主要依賴于有經驗的數據庫管理員進行查詢優(yōu)化,然而在當今的大數據時代,數據和業(yè)務變得越來越復雜,僅僅靠數據庫管理員的經驗進行數據庫優(yōu)化顯然是不能適應復雜的數據和業(yè)務的變化。因而如何利用人工智能技術(例如強化學習技術)來進行數據庫的自動優(yōu)化是重要的發(fā)展趨勢,同時也是一項挑戰(zhàn)。
其次,諸如一些非易失性存儲器(Non-Volatile Memory,NVM)等新型介質的出現也為數據庫的設計和優(yōu)化提供了一些新的思路。
最后,數據安全和隱私是未來需要解決的重要問題,需要研究全密態(tài)數據庫來提升數據庫的安全性。此外區(qū)塊鏈因為其分布式、去中心化和信息不可篡改等特性也越來越受到關注,從某種角度來說,區(qū)塊鏈是一個去中心化的數據庫,但是其對數據的查找和數據格式化處理方面有天生的不足。因此,在以區(qū)塊鏈作為數據存儲層的基礎上,研究如何將數據庫技術與區(qū)塊鏈結合起來,為區(qū)塊鏈提供一個數據庫層,從而加速數據的查詢效率、提高區(qū)塊鏈作為數據庫的可用性,這也是發(fā)展趨勢之一。