記得兩三年前,當人們在談論起分佈式數據庫等技術時,還經常在用“未來”等詞語描述這一新技術的應用前景。在剛剛過去的2020年,新一代數據庫龍頭Snowflake成功上市,成為歷史上規模最大的軟件企業IPO。我們回頭一看才發現,原來未來已來!
然而,分佈式數據庫應該如何在企業中正確地落地,一直是業界討論的焦點。在國內,大部分讀者第一次瞭解到分佈式數據庫時,首要的問題就是:分佈式數據庫是否能替換Oracle?然而,從全球數據量發展的方向來看,其爆發性增長,主要集中在基於數字化創新的多樣化業務場景。因此,單純替代傳統Oracle佔據核心優勢的固有領域,並非是數據庫未來的增長方向。以Snowflake為例,其業務並沒有替換Oracle核心應用領域,卻以4億美元營收換回700億美元市值,正在撼動Oracle在數據市場的龍頭地位,其背後的原因值得我們深思。
基於“替換”的思維永遠無法“超越”
實際上,在替換Oracle的問題上,並沒有“能”或“不能”這樣一刀切的答案。分佈式數據庫的設計初衷是解決全新的實際業務問題,在Oracle所無法滿足的場景中,與企業客户一同迎接數字化轉型的機遇,而並不是為了單純替換某個原有系統。
傳統關係型數據庫在核心交易等領域深耕了40多年,到目前為止,大部分純交易場景不論從數據量還是商業模式都沒有本質的變化,其業務的擴展空間也十分有限。而在企業數字化轉型的過程中,數據量會隨着業務發展快速膨脹,形成全新的業務需求及數據增量,為數據庫帶來全新的市場機遇。
相比傳統關係型數據庫,分佈式數據庫在提供ACID事務一致性的能力的同時,擁有更靈活的擴展能力,及多數據模型的處理能力。在面向海量數據彈性擴展的新興業務需求時,做到“不使用Oracle而選擇分佈式數據庫”,是我們在行業中應用分佈式架構的最佳實踐。也就是説,使用分佈式數據庫逐步迭代,伴隨全新的數字化業務漸漸滲透到傳統業務,成為新的數據核心場景,是分佈式數據庫技術在企業中最佳的落地方案。
因此,分佈式數據庫的星辰大海,絕不僅僅在於對傳統關係型數據庫的簡單替換。如果只是為了使用及推廣新技術,而進行固有架構的替換,將會面臨極大的技術風險與挑戰。只有站在企業客户的角度出發,與客户共同挖掘數字化轉型中的全新數據價值,才能突破固有框架,建立全新的分佈式技術賽道,超越傳統的架構邊界。
如何選擇最佳落地場景
從業務場景的角度,自上世紀70年代末關係型數據庫誕生,Oracle、DB2等數據庫已經經歷了40多年的發展歷史,對於其固有的業務場景來説,基本已經做到了業界極致。而面向新的聯機湖倉數據中台、微服務數據融合管理、海量數據實時訪問、非結構化在線處理等方面,傳統交易性數據庫則明顯力不從心。企業客户選擇分佈式數據庫落地場景時,應該選擇適當的應用場景,以真正發揮其優勢能力,並持續打磨技術團隊的運維能力,逐步推向核心。
1) 數據中台聯機湖倉
在不少的企業IT架構規劃中,數據中台已經成為整個IT戰略的一部分,包含了歷史數據平台甚至非結構化數據處理等多數據模型領域,幾乎覆蓋了企業中除了業務應用系統之外的全部數據處理及服務能力。
在此場景下Oracle無法滿足擴展能力,而Hadoop又無法支持實時併發業務。國際上也沒有直接與其對標的技術體系,最為貼近的則是Lakehouse(湖倉一體化)。Lakehouse的行業主要廠商包括像Snowflake及Databricks等分佈式數據庫廠商,其產品可以分為數據湖與計算引擎兩大核心模塊。2020年Gartner進一步引入了Augmented Transactions Processing處理場景,強調事務一致性,要求數據庫在分析處理過程中同時保持低延遲,以提升實時聯機處理能力。
可以預見,支持Augmented Transactions Processing能力的聯機湖倉,將為數據中台提升實時聯機處理能力,數據實現一次存儲多業務多數據模型同時使用,加速數據的處理效率,減少數據冗餘,提供更綠色環保的數據基礎設施。
2) 微服務數據融合管理
微服務應用開發架構逐漸成為主流的今天,傳統一個應用對接一個數據庫的架構被拆散成幾十上百個微服務,每個微服務都可能需要使用獨立的數據庫實例,因此在企業內部數據庫實例數量近年來呈井噴態勢發展。
分佈式數據庫的出現可以很好地解決數據庫實例批量管理中,擴展困難以及維護困難的問題。同時,基於引擎級多模技術,分佈式數據庫可以基於同一份數據,支撐多種數據庫引擎的聯機交易,通過跨引擎事務一致性能力,為客户打通微服務架構下異構數據源的ACID一致性。因此,分佈式數據庫技術相比傳統Oracle等數據庫更有利於微服務化,為企業打通底層數據,降低數據的存儲及管理成本。助力研發團隊進行DevOps持續交付,提升產品研發效率。
3) 海量數據實時訪問
海量數據的存儲和計算通常由數倉(MPP數據庫)或大數據平台(Hadoop)完成,數據量往往達到千億(甚至萬億)級別。傳統應用中,由於數倉中需要預先完成數據清洗入庫,數倉及大數據平台無法支持實時併發數據訪問,限於現有平台的處理模型,因此難以進行聯機業務的創新。然而,數據化轉型過程中,對客聯機交易、歷史數據服務平台或IoT物聯網系統中,會產生要求聯機實時處理海量數據的解決方案。
分佈式數據庫可以在這一場景中,協助企業客户獲得更佳的使用體驗。首先,分佈式數據庫與Hadoop及數據倉庫一樣具有很好的彈性擴展能力。其次,分佈式數據庫可以提供與傳統關係型數據庫同等的ACID支持,以保障其關鍵業務的事務一致性。最重要的是,分佈式數據庫可以更好地支持高併發的業務訪問,可以像使用單機數據庫一樣,在包含幾千億甚至萬億級記錄的表中實現毫秒級數據檢索。
4) 非結構化數據治理
非結構化數據包括圖片、文檔、音視頻等對象文件,以往只是單純存放於存儲系統中,提供單一的保存及調取功能。因此,除了直接操作這些文件的業務系統外,非結構化數據對於企業中的其他系統就是一個黑匣子,無法發揮數據的潛在價值。
如今的業務系統往往開始大規模聯機使用這類非結構化數據。例如,在業務中各類文件採集,交易過程頭像、指紋、聲紋監管要求的原檔留存,各類業務的360客户畫像系統,處理過程需要與非結構化數據進行高頻比對,併發處理及採樣修正,這些場景都需要非結構化數據的聯機實時管理。單純採用NAS或網盤存儲海量非結構化數據,早已經無法滿足這類實時聯機處理能力的需求。
同時,數字化轉型中非結構化數據不再是靜態的文件。通過AI機器學習及比對分析,非結構化數據將包含更多元化的業務屬性,為各類業務系統提供信息輸入。因此,需要對其進行有效的分類治理,盤活非結構化數據資產的潛在價值。
分佈式數據庫可以有效提升非結構化數據的實時處理能力,結合引擎級多模能力統一存儲結構化及對象數據,可以有效地實現基於標籤特徵數據的分類治理,成為企業「非結構化數據治理」建立堅實的底座。
分佈式技術演進趨勢
從技術角度,在各行業對海量數據、互聯網類應用快速發展的需求中,彈性擴張、多模式等功能是傳統Oracle數據庫所難以滿足的,也是分佈式數據庫存在的最大價值與目的。在這類技術背景下,做到“不使用Oracle而選擇分佈式數據庫”是最正確的答案。分佈式數據庫的最佳落地與使用方式,正是從海量數據業務到核心的逐步迭代過程。先從存在海量數據彈性擴展的新興業務需求入手,隨着業務革新不斷的深入,逐漸滲透進傳統業務及應用中。
1) 彈性:存算分離實現靈活擴展
作為分佈式數據庫,彈性擴展能力是其存在的核心意義與價值。相比起傳統MPP數據倉庫,新型分佈式數據庫可以基於存算分離的部署模型,實現存儲與計算資源獨立擴展的能力,實現對應用層面無感知的按需彈性擴展。
2) 事務:原生分佈式強一致性
在分佈式技術逐步貼近業務核心的過程中,客户對於ACID事務一致性的要求也持續提升。例如,在聯機交易業務中,往往要求“RR級別事務隔離”能力。在這類需求中,基於分庫分表技術的解決方案,由於數據庫本身無法提供此支持,(部分產品甚至不提供事務支持或通過1PC提交進行弱化)。導致需要藉助大量外圍應用程序邏輯配合,才能達到最終一致性的效果,大量消耗開發人員的設計精力。而原生分佈式數據庫,得益於源自內核的分佈式設計,客户可以放心地將事務一致性邏輯交由數據庫層進行處理,讓開發人員迴歸到純粹的業務設計,為業務提供直接有效的研發產出,提升企業研發效率。
3) 融合:引擎級多模,打開湖倉一體新賽道
關係型數據庫經過了40多年的發展,早已經從最開始的純結構化模型衍生出了支持XML、JSON、地理信息、圖等不同的能力。傳統數據庫由於在同一個物理設備上使用同構引擎,多模式能力很難真正發揮到極致。而在分佈式數據庫架構中,用户完全可以使用不同的物理設備及底層數據結構,承載不同數據模型的計算及存儲引擎,真正做到原生的引擎級多模技術。從而提供跨不同數據模型乃至不同數據庫語言及引擎之間的數據共享,避免不同模型間進行聯機處理時,由於頻繁數據拷貝,導致傳輸延遲及存儲空間浪費。基於多模能力構建同時滿足結構化、半結構化、非結構化數據的數據湖,同時賦予跨引擎數據一致性能力,及實時數據分析能力,真正意義上讓全局數據實時可見。開發者因此可以跨越不同數據引擎間的開發鴻溝,提升開發效率及系統性能,打開分佈式技術的全新賽道。
總結
傳統關係型數據庫歷經了40多年的發展,在其主打的核心交易領域幾乎走到了極致。單獨以核心交易場景對標新型分佈式數據庫,就好似用傳統的馬車標準來衡量新生的汽車技術,無法對新技術做到合理的評估。
分佈式數據庫的誕生首先是為了解決傳統數據庫不擅長的場景,在關係型數據庫做到極致的領域同樣需要很長的時間才能完善。得益於高彈性、強事務一致、多模融合等特點,近年來不少企業已經在:數據中台聯機湖倉、微服務數據融合管理、海量數據實時訪問、非結構化在線處理等領域,實現原生分佈式數據庫規模化的生產落地。我們欣喜地看到,分佈式數據庫的應用領域幾乎每年都會有大幅度擴展,成為支撐企業數字化改革升級中不可或缺的彈性數據基礎設施。
巨杉數據庫早在2014年起就發佈基於多模引擎的支持,為客户提供可同時管理多種數據結構的分佈式數據基礎設施。已經協助超過100家金融銀行客户和超過1000家企業用户,提供分佈式數據庫技術。藉助自主專利的STP分佈式序列時鐘協議,實現RR級事務隔離及跨引擎事務一致性能力,為數據中台提供聯機湖倉生產落地的最佳實踐,已成功協助客户在高達1.2萬億數據量生產環境下,提供安全穩定、可靈活擴展、高性能、高併發的數據底座。
回顧過去的10年,分佈式數據庫經歷了從行業質疑、小規模試水、到如今在部分行業的規模化應用。我們堅信,在新的一年中我國的分佈式數據庫產業一定會更加蓬勃發展,未來的三到五年分佈式數據庫的應用規模有望超越Oracle成為核心交易業務的重要組成部分。
未來,藉助100%自主研發的原生分佈式數據庫引擎,及引擎級多模特性,巨杉數據庫將秉持以客户為中心的價值觀,與客户及上下游合作伙伴一同,為金融、能源、運營商及政企客户提供優質的產品、技術服務及生態支持,推動全球數字化進程。
分佈式數據庫:未來已來。