資料庫發展史(下)

Gauss松鼠會發表於2021-04-12

本篇文章為大家講解AI原生資料庫和其他型別資料庫的發展歷程。

AI原生資料庫

近年來,隨著AI(人工智慧)技術的成熟和發展,AI與資料庫的結合越來越緊密。為了提高資料庫系統的智慧化程度,使資料庫系統能夠更加智慧地執行、維護、管理,不斷有研究者採用人工智慧方法來解決資料庫管理、最佳化等問題。

2019年初,谷歌聯合麻省理工學院、布朗大學的研究人員共同推出了新型資料庫系統SageDB,並撰寫了一篇論文詳述SageDB的設計原理和效能表現。論文中提出學習模型可以滲透到資料庫系統的各個方面,提供了一種構建資料庫系統的全新方法。清華大學利用AI技術來支援資料庫的自調優、基於AI的代價估計器、基於AI的最佳化器、基於AI的物化檢視技術以及庫內AI推理技術。

2019年5月,華為公司釋出了全球首款AI原生(AI-Native)資料庫——GaussDB,該資料庫實現了兩大革命性突破:

(1) 該資料庫首次將人工智慧技術融入分散式資料庫的全生命週期,實現自運維、自管理、自調優、故障自診斷和自愈。

(2) 該資料庫透過異構計算創新框架充分發揮x86、ARM、GPU、NPU 多種算力優勢。

GaussDB的出現,標誌著資料庫產業將全面進入人工智慧時代。雖然AI原生資料庫具有很多優勢,但是AI原生資料庫處於起步階段,面臨很多挑戰,需要研究者投入更多的精力進行開發和研究。

其他型別資料庫

除了上面介紹的比較有影響力的資料庫外,在資料庫領域還存在著許多其他型別的資料庫。

1. 實時資料庫

在大多數系統中,實時處理資料一直都是十分迫切的需求。實時資料處理最早的嘗試在20世紀80年代末,有人提出了活動資料模型,該類模型能夠實時捕獲資料變化並更新資料,在很多關聯式資料庫中得到了使用,但由於其語法過於複雜,往往會導致計算代價過高。在20世紀90年代到21世紀初期間,出現了多種用於管理資料流的系統(Data Stream Management System,DSMS)。典型的實時資料庫有Apache Storm、PipelineDB、Heron和谷歌的Dataflow等。

2. 終端資料庫

前面介紹的資料庫都是運用在伺服器、叢集、雲端計算平臺等計算資源上的,“體積”龐大,以“客戶端/服務端”的形式提供資料儲存和管理服務。為了克服“客戶端/服務端”模型因為通訊帶來的開銷,降低延遲時間,提出了終端資料庫的概念。

SQLite是一款輕型的由C語言編寫的,遵守ACID特性的關聯式資料庫管理系統。它的設計是嵌入式的,因此資源佔用非常低,目前已經在很多嵌入式產品中使用。

LevelDB是谷歌公司實現的一個非常高效的鍵值資料庫,目前的版本能夠支援10億級別的資料量。儘管LevelDB是單程式的服務,但是它的效能非常高,這主要歸功於它的良好的設計。

終端資料庫主要是為了應對效能的資料訪問需求出現的,結構簡單,效能高,往往只適合在單機上使用。

3. 資料倉儲

為了解決企業資料整合問題,1988年,IBM 公司的研究員Barry Devlin和PaulMurphy創造性地提出了一個新的概念———資料倉儲(Data Warehouse)。資料倉儲是決策支援系統和聯機分析應用系統的結構化資料環境。之後,眾多廠商開始構建實驗性的資料倉儲。1991年,資料倉儲之父比爾·恩門(Bill Inmon)在出版的Building the Data Warehouse 一書中提出的關於資料倉儲的定義被廣泛接受,使得資料倉儲真正開始應用,其功能是將聯機事務處理(OLTP)長期累積的大量資料,經過抽取、轉換、整合和清洗等操作後得到的一組具有主題的、面向分析的資料。比較著名的資料倉儲產品有IBM 公司的InfoSphere Warehouse,微軟公司的Microsoft SQL Server Fast Track以及天睿公司的Teradata等。資料倉儲容量大,能夠進行分析決策和資料探勘,但是,資料倉儲中的資料難以更新,缺乏規範,往往都是面向某一應用,具有一定的侷限性。

4. 資料湖

企業在生產過程中會產生、接收和儲存大量的資料,而這些資料通常難以被其他應用程式直接利用,面臨著這些資料應該以何種方式進行儲存和分析資料的挑戰,資料難以被共享和利用也容易導致資料孤島的產生。為了解決這些問題,Pentaho公司的創始人兼技術長詹姆斯·狄克遜於2011年提出了資料湖的概念。簡單來說,資料湖就是一個以比較自然的方式儲存企業的原始資料的資料倉儲或者系統,它能以各種模式和結構形式方便地配置資料,通常是物件塊或檔案。資料湖不但能儲存傳統型別資料,也能儲存其他型別的資料,並且能基於這些資料做處理與分析工作,產生最終輸出供各類程式消費。目前,成熟的資料湖並不多,亞馬遜公司AWS Lake Formation服務,可以在幾天內輕鬆建立安全的資料湖,松下、Accenture等公司都藉助亞馬遜公司的這一服務搭建自己的資料湖。近年來,雖然資料湖逐漸得到重視,但是資料湖缺乏資料治理和後設資料管理,對原始資料的可用性也有一些過分誇大。

5. 並行資料庫

為了提高資料庫的效能和可用性,研究者提出利用並行處理的方法,透過多個處理節點並行執行資料庫任務,提高整個資料庫系統的效能和可用性。目前並行資料庫主要分成兩類: 一類是傳統的大規模並行處理(Massively Parallel Processing,MPP)關聯式資料庫,比如Greenplum、Vertica等; 另一類是借鑑了MPP並行資料庫的設計思想的SQL on Hadoop類的方案,比如Impala、HAWQ、SparkSQL等。

然而,並行資料庫系統也有一些難以克服的缺點。例如,該類資料庫的資料遷移代價通常比較昂貴、沒有較好的彈性,靈活性較低,這影響到了並行資料庫的彈性以及實用性。此外,該類資料庫的另一個問題就是容錯性較差。如果在查詢過程中節點發生故障,那麼整個查詢通常都要重新執行。

6. 大資料分析工具

大資料的處理往往需要依賴專門設計的硬體和軟體,目前,已經有很多企業開發出了多種大資料分析工具。

MapReduce是由谷歌公司研發的一種面向大規模資料處理的平行計算框架。簡單來說,MapReduce基於平行計算的思想,將一個大計算量的任務和資料分解給若干個Mapper同時進行處理和計算,最後由Reducer負責彙總Mapper的處理結果。隨著MapReduce在眾多大資料任務中取得成功,它已經為大資料並行處理帶來了巨大的革命性影響,同時也是大資料時代的流行計算框架之一。

Hadoop是Apache公司設計開發的一個能夠對海量資料進行快速分散式分析處理的軟體框架。它能基於簡單的程式設計模型將海量資料分發到計算叢集中,以便進行分散式計算。

Storm 也是Apache公司研發的一款實時計算系統,該系統可以強化資料流的處理效果和效能,也可以用於線上機器學習、分散式PRC(Remote Procedure Call)和持續處理等大資料分析相關的場景。Apache公司的Spark是專為大規模資料處理而設計的快速通用的計算引擎,可用它來完成各種各樣的運算,包括SQL查詢、文字處理、機器學習等。

RapidMiner能夠提供一個整合開發環境進行資料探勘、機器學習和文字挖掘等工作。

迄 今為止,已經有很多優秀的大資料分析工具投入使用,並形成了良好的生態,極大地推動了資料科學的進步。

小結

到目前為止,隨著計算機應用領域的不斷髮展,資料庫技術與計算機網路技術、人工智慧技術和平行計算技術等相互滲透、互相結合,成為當前資料庫技術發展的主要特徵之一,呈現了下一代資料庫的潛在發展方向。例如,傳統的OLAP(聯機分析處理)技術主要面向關係資料,然而其他型別的資料(例如,圖資料和時空資料等)也有越來越多的應用場景。因此,如何分析這些多模態的資料也是OLAP面臨的挑戰之一。特別是企業從BI(商業智慧)到AI的轉型,繼續設計下一代OLAP系統來實現智慧化分析。

首 先,如何將人工智慧技術與資料庫技術相結合是未來的一個發展趨勢之一。傳統的資料庫最佳化主要依賴於有經驗的資料庫管理員進行查詢最佳化,然而在當今的大資料時代,資料和業務變得越來越複雜,僅僅靠資料庫管理員的經驗進行資料庫最佳化顯然是不能適應複雜的資料和業務的變化。因而如何利用人工智慧技術(例如強化學習技術)來進行資料庫的自動最佳化是重要的發展趨勢,同時也是一項挑戰。

其次,諸如一些非易失性儲存器(Non-Volatile Memory,NVM)等新型介質的出現也為資料庫的設計和最佳化提供了一些新的思路。

最後,資料安全和隱私是未來需要解決的重要問題,需要研究全密態資料庫來提升資料庫的安全性。此外區塊鏈因為其分散式、去中心化和資訊不可篡改等特性也越來越受到關注,從某種角度來說,區塊鏈是一個去中心化的資料庫,但是其對資料的查詢和資料格式化處理方面有天生的不足。因此,在以區塊鏈作為資料儲存層的基礎上,研究如何將資料庫技術與區塊鏈結合起來,為區塊鏈提供一個資料庫層,從而加速資料的查詢效率、提高區塊鏈作為資料庫的可用性,這也是發展趨勢之一

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69997967/viewspace-2767588/,如需轉載,請註明出處,否則將追究法律責任。

相關文章