星環 KunDB 2.2 發佈,為高並發事務與查詢混合的業務系統提供一個新選擇
近日,**星環科技分佈式交易型數據庫Transwarp KunDB正式推出2.2版本。**新版本內核帶來了關鍵能力升級,主要包括:
●支持與星環大數據基礎平台Transwarp Data Hub和分佈式分析型數據庫ArgoDB直接SQL互操作,通過統一的SQL引擎可將數據直接寫入KunDB,以及從KunDB做數據分析,進一步完善了TDH的多模型支持能力;
●分佈式數據庫內置了新的執行器引擎,可以解決跨Shard的數據分析和檢索能力,在架構上通過列式數據結構、多協程技術算子內並行和流水線計算模式來提升檢索與分析性能;
●查詢SQL的兼容性進一步提升,新增APPLY、CTE、中間結果物化等算子,並支持子查詢去關聯化,從而完善子查詢、公共表達式、大表關聯查詢等SQL的支持,可以完整運行TPC-H等基準測試;
●新增多級數據分區能力,通過DDL指定規則數據可在分片基礎上進行二次分區存儲,即先分片存儲,再分區存儲。
KunDB主要面向高並發、大數據量的交易型業務場景,隨着KunDB2.2的推出,對分佈式查詢分析類的SQL的支持和性能進一步提升,**適用於大數量下的數據集市業務。**某頭部醫療信息化公司圍繞臨床數據中心服務,構建圍繞醫院臨床、科研、教育、管理服務,通過對數據的科學、合理、有效利用反哺醫教研管。**在醫院的CDR典型場景,採用星環ArgoDB+KunDB形成了聯合數據解決方案。**臨床數據中心的數據由ArgoDB對實時數據進行加工、處理,部分結果實時輸出至KunDB,提供給醫生進行醫療信息並發查詢服務。1000並發下,多種維度數據查詢請求KunDB均可毫秒級響應,有效滿足醫院問診效率提升。
下面我們一起來揭曉新版本的全新產品體驗。
全新特性加持:分佈式技術創新,數據庫體驗更加豐富
新特性之一:支持與星環TDH的組件關係型分析引擎Inceptor和分佈式分析型數據庫ArgoDB直接SQL互操作
星環關係型分析引擎Inceptor和分佈式分析型數據庫ArgoDB,可為用戶提供PB級海量數據的高性能分析服務。本次KunDB 2.2版本升級可以跟 TDH/ArgoDB SQL引擎互操作,為用戶提供更大的便利。KunDB作為 TDH/ArgoDB另一類存儲引擎,支持定義表存儲類型為KunDB,支持INSERT INTO…SELECT語句自動將數據批量寫入KunDB,或者通過SELECT語句把KunDB的數據拉取到計算引擎中完成分佈式計算返回給業務。 通過TDH/ArgoDB統一SQL引擎與KunDB進行交互,利於TDH/ArgoDB跟KunDB組成數據倉庫+高並發數據集市一站式解決方案。
該新特性的加持,TDH/ArgoDB用戶可以在數據不出數據庫的情況下,對TDH/ArgoDB的其它存儲引擎中的數據分析後將結果轉儲到KunDB,使用KunDB作為高並發查詢業務的數據庫存儲引擎。或者藉助TDH/ArgoDB引擎,對KunDB中的最新鮮的業務數據直接進行複雜分析,而不需要ETL過程。對於已使用TDH/ArgoDB的用戶,不需要變更業務層跟數據庫交互方式,就可以兼顧複雜分析、高並發查詢等業務場景的需求。
新特性之二:多級數據分區支持
KunDB 2.2版本提供了數據分區的支持,KunDB分片存儲語句使用的 PARTITION BY語句,2.2 之後調整為DISTRIBUTED BY子句標識數據分片規則,同時PARTITION BY子句用於數據分區的規則。從而支持數據在多個分佈式存儲節點上可以分片+分區二級存儲,跟存儲層的表分區打通。
該特性一方面兼容了MySQL的分區表語法,另一方面數據分佈的粒度支持分片和分區兩級,可根據業務數據特徵選擇不同的字段和規則分別進行更加細粒度的管理,對數據管理的靈活性和查詢性能都有提升。
新特性之三:迭代器模式執行器
KunDB 2.2的執行器採用了迭代器模式,將常見的計算抽象成基本算子並定義各算子之間的數據接口,SQL執行分解為算子的迭代計算方式,數據以chunk形式,而非單行模式在算子間流轉。迭代器架構清晰,算子功能內聚,可針對不同算子進行針對性優化處理。迭代器模式擴展性好,針對新的計算模型可抽象成新的算子。在KunDB2.2中已支持Block Hash Join、Index Lookup Join、Nest Loop Join、Hash Aggr、Quick Sort、Apply、Union、Projection、Selection、Limit、Table Scan、Max1Row、CTE等算子。
在此基礎上,KunDB2.2完善了分佈式模式下對MySQL查詢類SQL的兼容支持,並在性能上提升。在上述醫院高並發數據集市案例中,所有聚合查詢、關聯查詢等複雜查詢類SQL均達到了毫秒級響應。
新特性之四:子查詢去關聯優化
通過代數理論,子查詢可等價轉換為關聯查詢,計算深度減少,可選擇更多的關聯算子,執行計劃更加靈活。與傳統的子查詢相比,轉換為關聯查詢的執行代價更低,並可多次優化達到性能最優。結果上,SELECT、FROM、WHERE等子句的子查詢性能均得以大幅度提升,並支持了UPDATE、JOIN條件子句中使用子查詢。TPCH 10GB數據規模的測試結果中,Q4、Q7、Q8、Q9、Q11、Q13、Q15等帶有子查詢的SQL均在1分鐘內完成,與MySQL相比性能最高提升了20倍。
新特性之五:支持內存列式計算
KunDB中內存中對結果集轉換成列式結構緩存,支持所有數據庫類型的行列轉換。相比於傳統的行式計算模型,列式計算引入自適應壓縮,基於壓縮後編碼直接計算,內存消耗降低50%以上,而執行時間不會劣化。
尤其是基於列的表達式計算,沒有逐行解析的開銷,節省了大部分的函數調用。數值類型算術運算符通過內存列式計算方式,與內存行式計算相比,性能最高提升50倍。
新特性之六:計算與存儲層通信優化
在之前的版本,KunDB查詢執行器與存儲節點的通信採用的gRPC方式,即SQL引擎KunGate與KunTablet服務通信,KunTablet與存儲節點通信。KunDB2.2開始KunGate在SQL執行時可以採用MySQL Protocal方式與存儲節點直接通信。KunTablet只負責存儲節點的狀態監控,與存儲層的連接管理、執行管理都在KunGate層完成。
通信鏈路減少,SQL執行的延遲大幅降低,以TPCC基準測試為參考,性能提升50%左右。
新特性之七:中間結果集物化存儲
在HASH JOIN和SORT算子計算過程中,中間結果超過固定閾值(默認100萬條)記錄時,KunDB執行器可將中間結果以列式方式壓縮落盤文件,防止耗費大量內存資源影響數據庫服務的穩定性。計算後落盤文件可以自動清理,中間結果臨時落盤的記錄數閾值可以通過參數設置。對於億級的表關聯查詢,也可保證內存不會因中間結果集過大而出現OOM的情況。
新特性之八:優化器邏輯優化規則完善
KunDB2.2優化器累計實現了下推、子查詢去關聯化、列裁剪、表達式和條件評估、謂詞下推、TopN下推、聚合下推、關聯重排序、HINT等查詢優化規則。基於優化規則,對於關聯查詢、關聯排序均可不同程度的下推執行,提升了SQL執行的並行度,並且緩解了KunGate的內存壓力。以TPCH中的Q4查詢SQL為例,KunDB2.2經過邏輯優化後,執行計劃更加的簡單高效。
以10GB TPCH為例,經過優化後的SQL執行效率較MySQL都有大幅提升。
※其中Q17和Q20因MySQL 10分鐘無結果,取10分鐘作為執行時間。
新特性之九:跨連接的執行計劃緩存
KunDB 2.2 SQL引擎改造了執行計劃緩存的機制,將用戶會話中執行的SQL解析結果和執行計劃緩存在內存中,給其它連接或者同一連接後續的SQL執行做復用。其它連接後續有相同的 SQL 請求時,自動找到緩存的SQL與執行計劃,通過減少編譯和優化的時間,提升 SQL 的性能。在某金融行業TP業務中,該技術對於簡單查詢類請求執行時間節省了 50%。
新特性之十:執行器支持多協程並行
傳統的迭代器模型,通過算子提供的接口管理SQL執行的生命周期。大量接口調用帶來了開銷,算子內部採用多線程有會頻繁線程切換開銷。KunDB2.2 執行器採用了基於協程的並行執行技術,每個算子作為主協程,算子內開啟多個子協程並行,使用生產者-消費者多個面模型實現了算子間的並行。內存消耗、並發切換開銷、算子調用開銷均大幅降低,而且算子間解耦產生更靈活的執行模型。
關鍵能力優化提升:支持 10w+ 數據庫對象,事務處理性能、MySQL兼容性、關聯工具能力全面提升
●元數據服務改造,重構了元數據管理組件,採用了高並發一致性存儲方案,支持至少10萬以上的數據庫對象且性能不會劣化。
●事務處理能力大幅提升,以TPCC為例,較上個分佈式版本tpmC提升60%。
●MySQL兼容性持續增強,新增了CTE語法、近40個函數的支持,擴展DQL、SET、ROLE等語法的完善。
●關聯工具能力全面增強,主要是數據導入導出、備份恢復時,壓縮、加密等功能的豐富和性能提升,其中全量數據導出工具結合存儲層直方圖性能提升了2倍以上。
國產化能力升級:國產數據庫生態完更加完善
KunDB是星環科技自主研發的國產數據庫,**支持主流國產化CPU(龍芯、飛騰、鯤鵬等)等自主可控的硬件平台和OS部署(UOS、中標/銀河麒麟、華為歐拉等),**支持東方通、寶蘭德等企業中間件,數據庫同步工具迪思傑、 TapData等。確保數據信息的安全,在用戶認證、自主訪問控制(DAC)、鏈路與數據加密、操作與SQL審計等方面提供數據庫的多維度安全保護,嚴格保證數據和業務的安全性和完整性。繼KunDB Server和導入導出工具之後,KunDB的備份還原工具KunDR也支持了國產SM4加密算法,所有KunDB存儲相關的組件都支持國產加密算法。
目前,KunDB憑藉出色的產品實力通過了中國人民銀行分佈式數據庫符合性認證測試,進行了337檢測項目的驗證,**覆蓋了數據庫功能、安全、災難恢復、性能等方面,已經在政府、醫療等多個行業中落地,**其中與星環科技分佈式分析型數據庫ArgoDB形成的聯合醫療解決方案已經在全國範圍內多家三甲醫院落地實施。