中國正值企業(yè)數(shù)智化轉(zhuǎn)型的時(shí)代拐點(diǎn)之際,企業(yè)數(shù)據(jù)規(guī)模呈現(xiàn)爆炸性增長、數(shù)據(jù)類型愈發(fā)豐富、新數(shù)據(jù)應(yīng)用場景深化等特點(diǎn),云數(shù)據(jù)庫、HTAP 數(shù)據(jù)庫、開源數(shù)據(jù)庫等新型數(shù)據(jù)庫的出現(xiàn),推動(dòng)數(shù)據(jù)庫領(lǐng)域全新發(fā)展。
據(jù)中國信息通信研究院發(fā)布的《數(shù)據(jù)庫發(fā)展研究報(bào)告(2021年)》顯示,2020 年全球數(shù)據(jù)庫市場規(guī)模為 671 億美元,其中中國數(shù)據(jù)庫市場規(guī)模為 35 億美元,占全球 5.2%。預(yù)計(jì)到 2025 年,全球數(shù)據(jù)庫市場規(guī)模達(dá)到 798 億美元。
中國數(shù)據(jù)庫發(fā)展?jié)摿薮螅S著業(yè)界對國產(chǎn)基礎(chǔ)軟件自主創(chuàng)新的呼聲逐漸高漲,越來越多科技公司投入數(shù)據(jù)庫研發(fā)。近日,九章云極將自研新一代集分析與高并發(fā)服務(wù)一體的混合數(shù)據(jù)庫正式開源,筆者認(rèn)為,這是國產(chǎn)數(shù)據(jù)庫逐步走出自身風(fēng)格,形成獨(dú)特流派的表現(xiàn)之一。
兼顧數(shù)據(jù)分析和高頻數(shù)據(jù)服務(wù),為數(shù)據(jù)智能而生
隨著 開源技術(shù)的成熟,越來越多開源大數(shù)據(jù)工具都可以用來為數(shù)據(jù)分析提速,助力大數(shù)據(jù)平臺(tái)發(fā)展。但是工具棧的繁榮卻沒有解決最根本的癥結(jié),如何兼顧數(shù)據(jù)分析與高并發(fā)服務(wù)的的實(shí)時(shí)能力,始終是眾多大數(shù)據(jù)開發(fā)者所要面對的一道難題。
我們知道數(shù)據(jù)訪問是受局部性原理所支配的,現(xiàn)代硬盤、內(nèi)存工作原理是當(dāng)用戶讀某一區(qū)域的數(shù)據(jù)時(shí)列式數(shù)據(jù)庫存儲(chǔ)原理,其臨近的數(shù)據(jù)也會(huì)被調(diào)入上一級高速緩存,讀取臨近的數(shù)據(jù)效率會(huì)遠(yuǎn)比隨機(jī)的數(shù)據(jù)訪問快得多,因此現(xiàn)代數(shù)據(jù)庫最本質(zhì)的優(yōu)化工作,是將有關(guān)聯(lián)計(jì)算需求的數(shù)據(jù)放在一起存儲(chǔ),在實(shí)際應(yīng)用中高頻數(shù)據(jù)服務(wù)與數(shù)據(jù)分析兩種場景所需要的存儲(chǔ)模型的確不同。
以金融場景為例,在銀行實(shí)時(shí)交易場景中,數(shù)據(jù)訪問是大多在數(shù)據(jù)行維度進(jìn)行展開。如在存儲(chǔ)交易中,對客戶信息表中的特定一條記錄進(jìn)行多次訪問,并對客戶的姓名、帳戶、手機(jī)號、密碼進(jìn)行識(shí)別驗(yàn)證,這種場景下以數(shù)據(jù)行為粒度進(jìn)行數(shù)據(jù)的存儲(chǔ)讀取效率最高。
然而在數(shù)據(jù)分析生成報(bào)表的場景中,報(bào)表用戶往往只關(guān)心總體情況,比如全行的存款總額、貸款總額等,此時(shí)數(shù)據(jù)以存儲(chǔ)、貸款等列為粒度進(jìn)行存取及關(guān)聯(lián)計(jì)算的效果最好。總結(jié)來說,交易型數(shù)據(jù)庫處理速度要快,分析型數(shù)據(jù)庫處理能力要高。
之前交易與分析的應(yīng)用場景基本處于“井水不犯河水”的狀態(tài),但隨著直播帶貨等新場景需求涌現(xiàn),在直播中既要保證用戶順利完成交易,同時(shí)根據(jù)用戶行為做實(shí)時(shí)分析、精確營銷的需求不斷涌現(xiàn),在時(shí)代大潮的推動(dòng)下,HSAP(實(shí)時(shí)分析數(shù)據(jù)庫)數(shù)據(jù)庫應(yīng)運(yùn)而生,集分析和服務(wù)為一體的開源數(shù)據(jù)庫 正是其中的代表之一。
對于營銷、推薦場景中,企業(yè)對數(shù)據(jù)的時(shí)效性相對于數(shù)據(jù)的準(zhǔn)確性要求更高。而企業(yè)的數(shù)據(jù)處理架構(gòu)通常以為主,通過批計(jì)算和流計(jì)算的混合計(jì)算引擎來服務(wù)企業(yè)數(shù)據(jù)處理。由于離線層和實(shí)時(shí)層引入的計(jì)算引擎、存儲(chǔ)引擎各不相同,潛在的造成計(jì)算結(jié)果不一致、數(shù)據(jù)散列冗余存儲(chǔ)、難以維護(hù)等問題。
九章云極最新開源的,高效支持高頻修改和查詢、實(shí)時(shí)交互式分析、實(shí)時(shí)多維分析等功能,兼具行列混存等技術(shù)創(chuàng)新,有效直擊行業(yè)痛點(diǎn),引領(lǐng)未來 HSAP 數(shù)據(jù)庫發(fā)展。
混合場景的打開方式:行列混存+智能優(yōu)化器
在直播帶貨、金融理財(cái)銷售等場景,業(yè)務(wù)員可能僅有幾分鐘時(shí)間來爭取客戶,需根據(jù)客戶行為快速做出反應(yīng),把握住轉(zhuǎn)瞬即逝的營銷機(jī)會(huì)。
但傳統(tǒng)技術(shù)方案無法做到實(shí)時(shí)計(jì)算,或很難保證實(shí)時(shí)計(jì)算的準(zhǔn)確性,數(shù)據(jù)準(zhǔn)確性、時(shí)效性的高要求與系統(tǒng)實(shí)際的服務(wù)處理能力之間巨大的鴻溝,導(dǎo)致大數(shù)據(jù)工程師與產(chǎn)品經(jīng)理之間永遠(yuǎn)無法達(dá)成協(xié)議。
智能優(yōu)化器實(shí)現(xiàn)行列優(yōu)化選擇的混合存儲(chǔ)方案令人眼前一亮,之前業(yè)界有不少將行列進(jìn)行混存,以綜合行列存兩者優(yōu)勢的探索,但對于聯(lián)機(jī)交易場景而言,列式存儲(chǔ)的寫入性能低、難修改,最后退化成為行式存儲(chǔ)。在通過夜間數(shù)據(jù)交換,將趨于穩(wěn)定的交易數(shù)據(jù)轉(zhuǎn)換到列式存儲(chǔ)分析型數(shù)據(jù)庫,進(jìn)行數(shù)據(jù)價(jià)值挖掘,通過業(yè)務(wù)形態(tài)進(jìn)行行列存數(shù)據(jù)的分別存儲(chǔ),在業(yè)務(wù)側(cè)實(shí)現(xiàn)數(shù)據(jù)融合。
的行列混存方案是基于列存模式實(shí)現(xiàn)計(jì)算列的快速順序讀取,基于內(nèi)存計(jì)算和Arrow,實(shí)現(xiàn)數(shù)據(jù)的聚合高效分析。針對交易場景中,通過行存模式實(shí)現(xiàn)數(shù)據(jù)的記錄級定位,實(shí)現(xiàn)數(shù)據(jù)的點(diǎn)查詢、更新、修改和刪除操作,基于分布式一致性協(xié)議來實(shí)現(xiàn)行列的轉(zhuǎn)換,保證行存副本和列存副本的一致性,如此一來,既保證了實(shí)效性又保證了準(zhǔn)確性。
在聯(lián)機(jī)交易完成進(jìn)行數(shù)據(jù)分析時(shí),將用戶輸入的SQL通過智能優(yōu)化器來生成最優(yōu)的執(zhí)行計(jì)劃,并分配計(jì)算任務(wù)。系統(tǒng)內(nèi)的會(huì)對表級的元數(shù)據(jù)進(jìn)行管理和存儲(chǔ),在進(jìn)行SQL解析時(shí),會(huì)基于執(zhí)行計(jì)劃和數(shù)據(jù)分布,提供最佳的數(shù)據(jù)存儲(chǔ)格式。
如對聚合類的分析場景,優(yōu)化器通過對SQL計(jì)劃的解析,將SQL計(jì)劃轉(zhuǎn)變成分布式執(zhí)行任務(wù),基于任務(wù)中的算子類型自動(dòng)選擇列存模式;對于記錄級的修改和查詢操作,會(huì)轉(zhuǎn)變成行存模式,實(shí)現(xiàn)數(shù)據(jù)的點(diǎn)查、修改操作。針對用戶的分析計(jì)算場景,通過不同的優(yōu)化器選擇不同的數(shù)據(jù)存儲(chǔ)格式,提供最佳的分析性能。
另外,作為實(shí)時(shí)數(shù)字倉的底層存儲(chǔ),由實(shí)時(shí)數(shù)字倉演變出來的實(shí)時(shí)指標(biāo)、實(shí)時(shí)大屏、實(shí)時(shí)報(bào)表等場景,均可通過 得到滿足。
——邏輯架構(gòu)
允許用戶通過直接 SQL 語句來定義 BI 大屏或者報(bào)表中的計(jì)算邏輯,并由此實(shí)現(xiàn)企業(yè)核心業(yè)務(wù)指標(biāo)的實(shí)時(shí)監(jiān)測和計(jì)算,而不需要再去關(guān)心數(shù)據(jù)的實(shí)效性及準(zhǔn)確性問題。基于強(qiáng)大的分析能力,可對企業(yè)數(shù)據(jù)進(jìn)行實(shí)時(shí)多維分析,提供最客觀的業(yè)務(wù)數(shù)據(jù),為企業(yè)用戶的決策做出強(qiáng)力支持,企業(yè)基于實(shí)時(shí)計(jì)算的結(jié)果,可以實(shí)現(xiàn)核心業(yè)務(wù)的實(shí)時(shí)監(jiān)控,并快速做出反應(yīng),實(shí)時(shí)分析+多維數(shù)據(jù)的方案完美地解決業(yè)務(wù)人員營銷數(shù)據(jù)不快、不準(zhǔn)的問題。
K-V神方案:實(shí)時(shí)高頻更新
等用于數(shù)據(jù)分析的大數(shù)據(jù)技術(shù)棧內(nèi)大多使用 Key-value 的存儲(chǔ)方式,Key-value存儲(chǔ)的特點(diǎn)就是擅長增量寫入和查詢,然而一碰到插入、更新就效率下降;Mysql 等用于實(shí)時(shí)交易的數(shù)據(jù)庫通常使用 B+ 樹為模型進(jìn)行數(shù)據(jù)存儲(chǔ),但 B+ 樹雖然容易建立索引,優(yōu)化讀取速度,但數(shù)據(jù)的規(guī)模受限,很難應(yīng)對大數(shù)據(jù)規(guī)模條件下的高頻服務(wù)查詢、修改、刪除等場景。
行存儲(chǔ)數(shù)據(jù)庫沒有使用 B+ 樹的數(shù)據(jù)存儲(chǔ)方案,轉(zhuǎn)而采用基于 LSM Tree 的 作為行存底層數(shù)據(jù)存儲(chǔ)引擎,將數(shù)據(jù)的隨機(jī)寫,轉(zhuǎn)換成了磁盤上的順序?qū)懀哂泻芨叩碾S機(jī)寫吞吐能力。
在高頻交易場景中,SQL 優(yōu)化器將記錄級的操作,轉(zhuǎn)變成 中的記錄級的點(diǎn)操作,可以實(shí)現(xiàn)數(shù)據(jù)記錄的、操作,實(shí)現(xiàn)高頻更新。
這項(xiàng)創(chuàng)新技術(shù)在現(xiàn)實(shí)有廣泛應(yīng)用,如在手機(jī)銀行積分兌換、支付寶信用分查詢等場景中,用戶需不斷地調(diào)閱自身的歷史交易記錄,根據(jù)歷史記錄來決定自己后續(xù)的交易行為,借助 提供的高頻點(diǎn)查、修改能力,完全可以讓用戶在刷積分時(shí)享受到絲絲順滑的體驗(yàn)。
開源,拓展企業(yè)數(shù)據(jù)新應(yīng)用場景
專注自動(dòng)化數(shù)據(jù)科學(xué)平臺(tái)的持續(xù)開發(fā)與建設(shè)的九章云極列式數(shù)據(jù)庫存儲(chǔ)原理,自研基于智能優(yōu)化器實(shí)現(xiàn)行列優(yōu)化選擇、多副本機(jī)制存算彈性擴(kuò)展、高頻點(diǎn)查、修改操作等創(chuàng)新技術(shù),為行業(yè)提供前沿實(shí)時(shí)大屏、實(shí)時(shí)互動(dòng)分析、多維實(shí)時(shí)數(shù)據(jù)分析、數(shù)據(jù)高頻查詢修改等數(shù)據(jù)新應(yīng)用解決方案。相信未來不斷創(chuàng)新,為企業(yè)降低系統(tǒng)數(shù)據(jù)使用成本,提升數(shù)據(jù)價(jià)值。