數據庫橫向對比與前沿技術分析探討
1 何需數據庫?
互聯網和移動互聯網絡的快速發展帶來了數據產生速率的極大增長,每時每刻都有數以十億量級的設備在生產出巨大體量的數據。
從數據產生的渠道來看,主要分為兩類,一類是人類活動生成的數據,諸如我們日常的網頁瀏覽、收集等移動設備的使用;另一類是機器產生的數據,如生產線設備、物聯網設備、傳感器、無線網絡等。
從數據生成的速度來看,據國際數據公司IDC的監測數據顯示,2013年,全球大數據庫儲量為4.3ZB(相當于47.24億個1TB容量的移動硬盤);2014年是6.6ZB;2015年是8.6ZB;2018年是33.0ZB……預計在 2030 年,將會有超過千億量級的聯網傳感設備產生出巨大體量的數據。
圖1:2016年至2020年全球每年產生的數據量(單位:ZB,%)
面對每天產生的海量數據,人們怎么能夠做到又快又好地找到并調用呢?于是,數據庫就是被創造出來幫助人們快速提取數據價值的利器。當然,還有其它類似的概念和工具,諸如數據倉庫、數據集市、數據湖泊等,旨在解決我們日常所面對的數據存儲、數據轉換、數據分析、BI商務智能等一系列工作。
2 數據庫的進化路徑
現代商業社會對數據庫性能方面的要求推動了數據處理基礎架構與技術的發展。下圖展示了以數據庫為中心的數據處理基礎架構和技術的進化路徑:從關系型數據到大數據,從大數據到快數據,從快數據到深數據 ,從深數據到圖數據。?
1980-2010年間的關系型數據庫主導的階段;
2010-2020年間的大數據(NoSQL、數倉、數湖、大數據框架)主導的大數據時代;
2020-2030年則可以預見的是圖計算(圖數據庫)的時代。
圖2:數據處理基礎架構與技術的進化路線
數據庫的進化是由商業需求所驅動的,當企業IT信息化已經基本完成后,再向前就是數字化轉型與全面智能化(數智化)。
但是,SQL/RDBMS已經是有40年歷史的老舊的技術框架了,即便是變身為數倉、數湖、NoSQL、NewSQL還是流批一體化框架,本質上依然是在用二維表的模式在對真實世界的業務場景進行數據建模,依然會在處理海量、動態數據、復雜、深度查詢時出現嚴重的性能問題,依然會受到SQL關系型建模與查詢僵化與淺層缺陷的限制。
我們認為智能化時代的核心技術一定是可以進行高維數據建模,處理高維數據關聯關系的圖數據庫(圖計算與存儲引擎),而低維的SQL類型的數據庫注定會逐步消亡。
這一結論從數據庫的全球國際標準只有SQL(結構化查詢語言)與GQL(圖查詢語言)兩大標準即可看出,前者自1983年至今已經歷經40年滄桑,而后者將會在2023年推出首個國際版標準。
舉個具體的例子,在銀行業中的各種指標計算與歸因分析,會涉及全行明細級數據、分行、條線、客群、客戶經理、集團、供應鏈、指標子項、客戶賬戶信息等多個維度的綜合計算。
用 SQL 和關系型數據庫來計算的復雜度是個天文數字(多表關聯會導致“笛卡爾積”現象,計算復雜度指數級增加,進而時耗巨大,導致無法在有限資源與時間內完成計算);而用圖計算來建模和實現,是加和而非乘積的關系,計算復雜度指數級降低——與RDBMS相比有著指數級的性能優勢。
換言之,用 SQL 來實現,會耗費大量的計算、存儲資源,并且效率非常低下,任何復雜一點的指標計量或歸因分析都無法完成,但用圖計算來實現,可以做到實時,并且耗費較少的硬件資源——更低的 TCO,更高的 ROI,這也是圖數據庫的顛覆性優勢之一——高性能、高性價比(以及靈活性與白盒化)。
圖3:關系型數據庫(數倉、數湖) 中多表連接導致的笛卡爾積問題
知名信息咨詢公司Gartner在2019-2021年間關于數據與分析科技(Data & Analytics Technology Trends)的幾份報告中,明確地提出了圖分析(Graph Analytics)作為十大核心科技發展趨勢之一,且其所代表的細分市場會以年復合增長率100%的速度持續增長,預計到2025年,80%的商務智能、商業決策(BI)的創新會通過圖分析與計算(即圖數據庫系統)來實現。
圖4:Garther報告
3 進入”圖“時代
很多我們熟知的科技公司,諸如臉書(Facebook)、Google、推特(Twitter)、領英(Linkedln)等國際巨頭科技公司,其起家的秘密正是源于圖技術,還有一些金融服務公司,例如高盛(Goldman Sachs)、美國銀行(Bank of America)、BlackRock(黑石)、貝寶(Paypal)等的核心技術產品正是構建在圖計算與圖數據庫框架之上。
究其根本是因為圖的核心競爭力更有利于助力企業進行數組資產管理、數據治理、數據分析,并實現真正意義的數據智能——圖技術能以更高效、深度、準確、白盒化的方式揭示出數據的內部關聯。
圖數據庫在傳統意義上被歸類為NoSQL數據庫的一種(盡管這并不準確,如果從數據庫標準的維度看,過去40年數據的發展只有2套標準,一套是SQL,另一套是GQL,即圖查詢語言,僅此一條就可以佐證圖數據庫會成為未來的主流數據庫,而SQL終將消亡。圖數據庫終將獨立成團,這是后話。)
其它的非關系型數據庫在廣義上還包含例如列數據庫、寬表數據庫、鍵值庫(因其架構與接口簡單,嚴格意義上并不算完整的數據庫)、文檔數據庫、時序數據庫等。NoSQL 數據庫一般而言被分為以下幾大類,每一類都有其各自的特性:
? 鍵值(Key-Value) : 性能和簡易性
? 寬列(Wide-Column):體量
? 文檔(Document):數據多樣性
? 時序(Time Series):IOT 數據、時序優先性能
? 圖(Graph) : 高維建模+深數據+快數據
圖5:NOSQL類數據庫存儲結構的進化
在眾多 NoSQL 類數據庫中,最好的用來詮釋數據建模靈活性——無模式(Schema-Free 或 Demi-Schema)的例子就是圖數據庫——除了點和邊這兩種基礎數據結構以外,圖數據庫不需要任何預先定義的模式或表結構。
這種極度簡化的理念恰恰和人類如何思考以及存儲信息有著很大的相似性——人們通常并不在腦海中設定二維的、僵化的表結構, 因為人腦是可以通過對實體與關系構建的高維、動態的數據模型中“隨機應變”(觸類旁通、舉一反三、關聯、發散、聚合、下鉆)的。
圖6:關系網絡圖譜(局部)
上圖展示的是一個典型的關系圖譜(網絡圖),其是在一張大圖上進行實時路徑查詢時所動態生成的一張子圖。綠色的節點為初始頂點,紫色的節點為終止頂點,兩者間有15層(跳)間隔,并有上100條關聯路徑,每條路徑上有不同類型的邊連接著相鄰的兩兩的頂點,其中不同類型(屬性)的邊以不同的色彩來渲染,以表達不同類型的關聯關系。
最近 10 幾年以來,全球 IT 市場上涌現出了 10 幾家圖數據庫服務商,從傳統的、非常學術化的 RDF(資源定義框架)模式圖, 到基于原生圖理念構建的LPG(標簽屬性圖) 或 PG(屬性圖) 圖數據庫,還有那些在傳統 SQL 數據庫上或 NoSQL 數據庫上搭建的各種非原生圖。
目前業界圖數據庫的架構分為三類:
- 第一類是基于傳統關系型數據庫的圖計算,代表產品諸如 Cosmos DB、Oracle PGX等;
- 第二類是基于 Hadoop/Spark 或 NoSQL 存儲引擎的圖數據庫, 代表產品諸如星環、創鄰、JanusGraph、Nebula等;
- 第三類則是原生圖數據庫流派,例如Neo4j、TigerGraph、Ultipa,它們區別于前兩類的地方在于計算與存儲的原生性(Native Graph)。
從嚴格意義的圖數據庫產品性能進化的角度來看,作為前沿科技的圖計算、圖數據庫技術在近十年亦歷經了四代演進:
- 第一代是諸如基于非原生圖架構的JanusGraph(其存儲引擎基于第三方NoSQL構建,性能瓶頸明顯,時效性差);
- 第二代的代表玩家是最早的原生圖數據庫Neo4j(缺點在于基于Java架構,性能瓶頸明顯,難以在大規模、復雜、實時性場景中得到推廣);
- 第三代是并行圖數據庫TigerGraph(主要挑戰在于使用門檻高,面向數據科學家,二次開發困難,且基于“單邊圖”理念構建,圖建模不靈活);
- 最新一代就是第四代圖數據庫,代表玩家如Ultipa Graph——具備高密度并發、 融合HTAP+MPP架構、建模靈活的實時圖數據庫了。
?
圖7:圖數據庫的優勢、架構類型以及產品進化
圖數據庫的發展要解決的并不是數倉、湖倉系統所鼓吹的無限的數據存儲,而是要解決復雜查詢、深度查詢的計算時效性的問題!
因此,高性能的圖數據庫一定是優先解決算力的問題,即具備高算力,讓計算引擎成為一等公民(注:在傳統的RDBMS數據庫中,計算是附著于存儲的二等公民,試想每次查詢都需要大量訪問硬盤讀取數據的查詢,效率必然是極低的!)。
圖數據庫賦能的業務場景也必然和傳統數據庫、大數據框架有所不同,無論是風控反欺詐、智能營銷與推薦,還是實時決策、智能分析(Smart BI/Analytics)、數據治理等場景。?