GBase新聞
南大通用:元宇宙數據庫技術展望
元宇宙數據庫重要特色
無論是現實還是虛擬世界,數據庫都是重要IT基礎技術支撐,為了維系元宇宙的日常運作,數據庫為數字孿生世界的鏡像和混合現實世界中的虛擬擴展提供數據平臺支撐。元宇宙中的一切虛擬概念,不論其描述的是具體對象,還是抽象對象,以及所有與元宇宙對象發生關聯的現實對象,都可能在數據庫中有所體現。元宇宙下的數據庫將面臨新的技術挑戰。
在元宇宙虛擬世界,其數字化程度遠高于現實世界,經由數字化技術勾勒出來的空間結構、場景、主體等,實質都是以數據方式存在的,需要實現主體數據化、場景數據化、行為及交互行為的數據化。因此,元宇宙的虛擬世界,需要比現實更多的數據支撐。雖然這些數據并不全存儲在數據庫中,其它系統也會承擔元宇宙的數據存儲,但元宇宙虛擬世界的空間結構、場景、主體等的基礎數據、關聯數據、活動及運行數據、發展變動數據需要存儲在數據庫中。所以,元宇宙下的數據庫至少應該支持超大數據規模、數據多樣化及多種數據處理模式的要求。
元宇宙虛擬世界中,數據類型各種各樣。經濟系統中需要記錄各種交易信息,這種類型多為結構化數據,適合交易型關系數據庫;各種實體及其經濟活動存在各種直接和間接關系,這種關系錯綜復雜,適合圖數據庫;各種感知設備以及數字孿生產生的各種流數據,適合流數據或實時數據庫;虛擬世界的實體對象的各種活動軌跡及位置需要適合GIS空間數據庫;各種文檔、圖像、圖像、聲音、視頻等還可能適合包括文檔數據庫等其它數據庫。
元宇宙下,數據類型復雜、處理方式多樣。由于各種類型數據庫各有所長,分別可以高效應對不同的場景,很難只使用一種數據庫完成應對各種應用場景。但使用一個統一的數據庫語言,或者每種類型數據庫一個統一數據庫語言是可行的。統一語言可以建立在統一虛擬邏輯層上,由虛擬邏輯層下的具體數據庫引擎執行操作。
元宇宙對數據庫廠家來說不僅僅是新的挑戰也是難得的機遇。為了更有力支持元宇宙,一方面,數據庫產品技術需要進一步突破傳統需求;另一方面,數據庫產品需要有更強的生態融合能力。目前,我們還是看好國產數據庫廠商在這些方面潛力。以南大通用公司為例,最近幾年,南大通用在產品研發技術上不斷完善并超越自己。其分布式數據庫產品已通過中國信通院大數據產品大規模能力測試,集群規模達到4096節點并創國際記錄。南大通用虛擬化數據技術,可以實現跨引擎異構數據庫,包括與圖數據庫、流數據庫及更廣泛的其它數據庫的融合;另一方面,南大通用也在生態融合上不斷努力,目前已經完全融入國產化軟硬件系統生態。
圖1 國產化數據庫系統生態示例
國產化數據庫廠商的這些能力,說明了國產化數據庫已經為元宇宙發展做好了積極的準備。
元宇宙數據庫重要特色
(1)支撐區塊鏈
為了構建經濟系統,元宇宙需要依靠區塊鏈技術。區塊鏈本質上就是一個去中心化的賬本數據庫,其底層通常為Key-Value的NOSQL數據,區塊鏈分布節點數據由共識算法來維持各個節點的賬本數據的一致性,由密碼算法實現各個區塊之間的鏈接,實現數據的簽名和確權,由賬戶模型來表達這個數據是由誰產生的,誰發起的,以及流轉給誰的,由腳本系統來具體驅動這些腳本數據的驗證,執行等操作。
區塊鏈數據庫能夠保存現有相關的信息以及之前所有信息,生成歷史數據庫,它們像自己歷史上不斷擴展的檔案一樣成長。通常,隨著元宇宙中依賴區塊鏈的數字化交易增加及歷史數據的累積,區塊鏈賬本之間的數據同步延時會逐步增加,系統整體性能逐步下降,因為區塊鏈數據庫與分布式數據庫有所不同,分布式數據庫每個節點只存儲數據庫的部分數據,而區塊鏈每個節點存儲完整數據庫。所以元宇宙下,高頻使用且不斷擴展的區塊鏈的數據庫將面臨性能考驗。
以下是區塊鏈賬本數據庫示例:
圖2 區塊鏈技術的數據庫記錄
(2)輔助數字孿生
元宇宙中包含了實體世界和的虛擬世界的映射和交互,這也是數字孿生,數字孿生首先面向物的。數字孿生需模擬完整、廣泛的虛擬物件,數字孿生可以基于VR/AR設備、5G、6G、云端邊緣、智能傳感器、機器視覺等實現虛擬世界活動控制、設備運行維修等。數字孿生也可以很好提供設備開發仿真、能源監控及預測性維護,廠商或將能在工業元宇宙共通平臺上建立虛擬工廠,串接各廠區與跨企業合作互通,擁有龐大數據的產業大廠。
由此可見,元宇宙下,有大量數據來自智能穿戴設備、五官感應設備、IOT系統,包含現實與虛擬設備運行及設備運行狀態數據。這種數據處理實時性要求很高,所以,元宇宙下的數據庫,將面對大量高頻度實時數據,實時數據存的時間窗口大小直接影響需要為實時數據提供的存儲空間大小。
實時數據庫的一個重要特性就是實時性,包括數據實時性和事務實時性。數據實時性是現場IO數據的更新周期,作為實時數據庫,不能不考慮數據實時性。事務實時性是指數據庫對其事務處理的速度。它可以是事件觸發方式或定時觸發方式。事件觸發是該事件一旦發生可以立刻獲得調度,這類事件可以得到立即處理,但是比較消耗系統資源;而定時觸發是在一定時間范圍內獲得調度權。作為一個完整的實時數據庫,從系統的穩定性和實時性而言,必須同時提供兩種調度方式。
圖3 數字孿生實時數據庫交互
(3)三維可視化
一圖勝千言,傳統數據庫已經為可視化打下良好基礎,尤其是BI(商業智能)可視化,已經為管理決策提供了非常直觀的效果。由于元宇宙是與現實世界平行的虛擬世界,現實世界存在的人、物、山、川、河流,現實世界的各種實體都可能需要在虛擬空間出現。
虛擬空間需要展現大量三維動態實體,為了模擬真實世界,傳統的與二維圖形、圖像并不能滿足元宇宙的需求。而仿真成像的三維圖像將會在元宇宙中大量使用。游戲中我們常見到的城市、沙漠、山地、丘陵、林地、海洋等都可以作為三維模型。通過模型庫可以展示較強真實感的人物、建筑、樹木、道路等。
圖像一般分為兩類——矢量圖和位圖。以照片或圖片為例,圖像由不同顏色的點陣組成。這叫位圖,我們看到的基本都是它,我們常見的 *.bmp ; *.jpg 等等都是。另一類圖形就像有些工程設備圖和卡通漫畫等,它們主要由線條和色塊組成,用代數式來表達每個元素。然后把這些元素的代數式和它們的屬性存儲,這樣生成的就叫矢量圖。簡單的一句話就是:這種圖形效果是通過公式計算獲得,并可無限放大不失真。目前已有技術可通過基本圖像素材加機器學習或矢量計算輔助生成的三維動態圖像。其中,用于深度學習算法訓練的高逼真度仿真圖像已經取得成效,但占用資源較多、影響IO,而基于矢量技術的三維圖像比較成熟而且占用資源少。
矢量圖是面向圖像或繪圖圖像,矢量圖可以根據幾何特征繪制,并由算法計算生成。矢量圖主要元素有點、線、矩形、多邊形、圓和弧等,它們是通過數學公式計算出來的。矢量圖可以做到無論放大還是縮小,顏色邊緣都非常平滑,非常清楚。矢量圖優點是占用存儲空間小、可編輯對象的圖像元素、放大或縮小的圖像不影響圖像的分辨率,圖像的分辨率不依賴于輸出設備。矢量圖技術已經很成功應用在空間地理數據庫,目前,三維模型數據庫輸出格式包括3D MAX、FLT、OSG等,并支持多種地形數據格式導入。模型數據庫可以渲染出高仿真實體,對算力要求比較高。相信未來元宇宙也會大量使用基于矢量技術的三維圖數據庫。
圖4 三維空間數據庫結構示意圖
元宇宙數據庫關鍵技術
(1)分布式技術
元宇宙的概念從建立就決定著它一定是以去中心化的方式運行的,去中心化,這個虛擬空間不以某個服務主體的主觀意志為轉移,是一個由全體獨立個體共同經營維護的空間,需要以去心中化的平權式的共享機制和共治機制為保障。
在去中心化的運行機制下,分布式數據庫將是元宇宙的重要要求。分布式數據庫的可擴展性可以滿足存儲不斷增長的需求。但由于事務型業務有強一致性的要求,現實世界中分布式數據庫各節點之間為了保證一致性,需要限制分布式寫的節點,也就是并發寫需要排隊,從而帶來了數據庫擴展性和性能的局限。隨著元宇宙全數字化環境的發展,通過對強一致性的靈活處理,分布式數據庫的規模將能滿足元宇宙的發展需求。
分布式事務型數據庫在異常情況中保證事務ACID的特性的核心技術主要為二階段/三階段提交技術,又稱為2PC/3PC(phase commit).
二階段提交原則是在分布式系統中引入一個協調角色,區別于普通的事務參與者,他是直接響應用戶的節點,將一個完整事務切分為分布式事務給與參與者。這樣參與者在執行事務的過程中,將原來一次執行完成的提交操作做一次預執行或者執行準備,這樣即使參與者在提交事務過程中如果出現異常,可以向協調者報告并讓他告知其他參與者也對這筆操作進行失敗處理。
三階段提交在二階段提交當中在第一階段與第二階段之間插入了一個準備階段,使得原先在兩階段提交中,執行者在預執行過程中,由于協調者發生崩潰或錯誤,而導致參與者處于無法知曉是否提交或者中止的“不確定狀態”所產生的可能相當長的延時的問題得以解決。
由于關系數據庫對一致性要求 很高,所以分布式數據庫是分布式數據庫的發展重點和難點。為了實現分布,需要對數據庫進行切分,通常由水平切分和垂直切分,數據按照業務邏輯水平切分,性能高低主要體現在數據存放方式和業務的貼合程度上,而按照數據容量切片存儲,性能高低主要體現在對數據塊(片)調度的高效性上。
圖5 分布式數據庫切分方式示意圖
(2)云化技術
云計算其實就是一種通過虛擬化技術實現大規模計算的架構和方法。在云計算中,資源和功能都以服務的方式提供出來供用戶使用。云計算將資源以抽象的方式或者邏輯的方式進行表示,通過虛擬化可以將不同服務器的資源以統一的整體的形式進行提供。
元宇宙是高度虛擬化世界,需要相適應的虛擬技術支撐。云數據庫需要建立在云計算技術之上。云數據庫可以隨著云資源的擴充,其所屬的計算和存儲都隨之擴展。為此,云數據庫首先需要具備存儲與計算分離架構,傳統的存儲計算一體化以及共享存儲的數據庫都無法滿足云數據庫的需要。
云數據庫架構示意如下:
圖6 云數據庫架構示意圖示意圖
其中:
數據庫接口代理:實現統一的數據訪問接口代理,業務組件或模塊通過接口代理來訪問底層的數據庫服務。在接口代理的實現過程中需要考慮數據庫連接池的管理,數據庫負載均衡等相關內容。
SQL解析:負責解析客戶請求的SQL語法,需解析出語句的讀、寫特性,并根據語句特性進一步解析其中的schema、表、字段、條件等信息。如:新增語句需解析出所插入字段的字段名和值;查詢、修改、刪除語句需解析出Where條件中包含了哪些條件表達式。
數據路由:負責根據語法解析的結果,在規則池中查找與之相關的規則。找到后將解析結果代入規則中進行運算,得到語句需要轉發的具體物理數據庫節點。而對于規則池則主要包括語句的讀寫規則,水平拆分的分片規則,數據對象的訪問規則等。
多租戶管理:可以實現在數據庫實例和數據庫Schema兩個級別的多租戶共享和管理功能。數據庫層共享以數據庫為基本的劃分單元,即為每一個租戶創建/分配一個數據庫實例,共享存儲和服務器。Schema層共享以User/Schema為基本的劃分單元,即數據庫實例已經創建,在此基礎上為每一個租戶創建一個Schema,多租戶之間共享存儲、服務器、操作系統服務和數據庫實例。
管控代理:為實現對整個數據庫資源池的集中管控和性能監控,需要對每一個數據庫物理節點放置數據庫管控代理。管控代理一方面實現對物理數據庫節點的統一操作入口,一方面實現對資源的實時監控和性能數據采集。
管控功能:提供對服務集群中的不同數據庫服務節點進行節點的添加、刪除、啟動、停止等功能。完成服務集群的伸縮;完成節點信息的采集,以及針對節點進行的手動操作的日志記錄;完成和節點代理服務進行交互的工作;完成和監控系統進行交互;共同完成服務的管理和監控功能。
(3)安全隱私
元宇宙中,每個組織和個人都會擁有自己數據,數據安全與隱私將是數據庫必然考慮的重點。除了區塊鏈外,數據庫本身技術也要采取必要措施保證數據安全與隱私。
元宇宙數據庫安全及隱私主要考慮技術有:
安全通信:使用安全套接層協議,通過使用加密算法保護的鏈路層,并對服務端和客戶端進行雙向驗證,保證客戶端和服務端之間通訊的保密性和完整性。同時,安全通訊也對高可用環境下的連接管理器和客戶端、服務端間的通訊,服務端和服務端間的通訊進行了安全保護。
身份認證:支持常規數據庫用戶口令認證方式,同時支持插入式身份驗證模塊、輕量級目錄訪問協議、單點登錄用戶對數據庫訪問的驗證集成。
角色管理:預定義了數據庫安全管理員,數據庫審計管理員,數據庫管理員等默認角色,也可以由系統管理員根據實際業務需要創建角色和分配用戶。
自主訪問控制:自主訪問控制粒度分為數據庫級、表級、字段級。數據擁有者和其指定的用戶可對不同粒度對象設置不同的權限管理。
強制訪問控制:使用基于標簽的訪問控制系統以實現強制訪問控制要求。安全標簽由一個或多個帶順序的數列型構件、無需的集合型構件、表示層級關系的樹型構件組成。強制訪問控制力度達到行級。
安全存儲:存儲數據的保密性是安全數據庫的最重要的功能之一。數據管理中的數據加密采用庫內加密的方式,在數據庫管理系統的內核存儲引擎上進行數據加解密處理,即數據在進行物理I/O時完成加/解密工作。由于數據頁只有在真正進行I/O時才進行加解密操作,從而對于合法用戶來講是完全透明的,因此也可以稱為透明存儲加密。加密算法及秘鑰由符合國密標準的硬件加密卡提供。
安全審計:由安全操作員進行審計掩碼的設置,可針對每個用戶、全局分別進行審計掩碼的設定,可設定要求、排除兩種審計掩碼的設定,審計掩碼可對160種審計事件進行組合。由審計操作員執行審計的啟停和配置管理,并對審計記錄進行分析。
圖7 數據庫安全隱私技術示意圖
(4)硬件計算加速
相對現實世界,元宇宙更需要計算能力的提升。比如,大量虛擬實體的動態生成、大量的AI分析,還有元宇宙的實時響應,都需要大量的算力。元宇宙的大數據存儲可以采用分布式存儲技術,通過增加存儲節點解決。但計算能力僅通過增加節點并不夠,比如數據庫的分布并行處理,由于受到一致性的約束,有時候交易記錄并不能都通過增加節點提高效率,還有一些無法切分的實時任務也不能依賴增加節點解決實時響應問題。所以,類似這些問題,還需要借助硬件技術共同解決。
解決數據庫計算能力除了軟件和算法優化外,對于密集型計算還可以通過硬件技術來提升算力。使用內存數據庫是一種辦法之一,但僅使用內存數據庫還存在局限性,比如存儲容量不足,而且算力增加很有限。采用并行異構計算技術提升計算能力是一種經過驗證可行的辦法。目前,一種比較有效的硬件加速辦法方法是在CPU的基礎上,增加GPU(圖形處理器)和FPG(現場可編程邏輯門陣列)實現并行異構計算。
GPU主要擅長做類似圖像處理的并行計算,圖形處理計算的特征表現為高密度的計算而計算需要的數據之間較少存在相關性,GPU 提供大量的計算單元(多達幾千個計算單元)和大量的高速內存,可以同時對很多像素進行并行處理。
GPU的設計出發點在于GPU更適用于計算強度高、多并行的計算。GPU的邏輯控制單元相比CPU簡單,所以要想做到指令流水處理,提高指令執行效率,必然要求處理的算法本身復雜度低,處理的數據之間相互獨立,所以算法本身的串行處理會導致GPU浮點計算能力的顯著降低。
FPGA作為一種高性能、低功耗的可編程芯片,可以根據客戶定制來做針對性的算法設計。FPGA由于算法是定制的,所以沒有CPU和GPU的取指令和指令譯碼過程,數據流直接根據定制的算法進行固定操作,計算單元在每個時鐘周期都可以執行,所以可以充分發揮浮點計算能力,計算效率高于CPU和GPU。
基于GPU和FPGA硬件加速技術架構示意如下:
圖8 GPU/FPGA異構計算示意圖