星環 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形成的聯合醫療解決方案已經在全國範圍內多家三甲醫院落地實施。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69994106/viewspace-2861682/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 高併發系統之大忌-慢查詢
- MySQL 合併查詢union 查詢出的行合併到一個表中MySql
- 鴻蒙高併發環境下的服務狀態監控系統鴻蒙
- MySQL 合併查詢join 查詢出的不同列合併到一個表中MySql
- 為什麼選擇新聞稿釋出推廣?
- MySQL事務與併發MySql
- mySQL多表查詢與事務MySql
- 查詢與排序03,選擇排序排序
- Kilimall選擇亞馬遜雲科技為首選雲服務提供商,擴充非洲電商業務亞馬遜
- 如何設計一個高可用、高併發秒殺系統
- 面試題:如何設計一個高併發系統?面試題
- pgsql事務與併發控制SQL
- 查詢一個事務程式碼所使用的BADI
- 構建高併發&高可用&安全的IT系統-高併發部分
- 搭建高併發、高可用的系統
- 統計Oracle 查詢事務數的方法Oracle
- 新聞稿釋出渠道分析 如何選擇新聞稿釋出公司
- 高併發系統設計的15個錦囊
- 一個高效能,高併發,高可用的系統是如何演變來的
- 為什麼Actor模型是高併發事務的終極解決方案?模型
- 非同步任務處理系統,如何解決業務長耗時、高併發難題?非同步
- 免費線上,查詢名下企業資訊新選擇
- 高併發系統的限流演算法與實現演算法
- MSSQL基礎教程:使用SQL子選擇來合併查詢SQL
- 用node開發併釋出一個cli工具
- 以個性化為需求如何選擇ITSM系統?
- Java高併發系統的限流策略Java
- [譯] 優化 Facebook 新鮮事,使其為您提供更好的服務優化
- 查詢某個會話正在執行的事務會話
- 如何選擇版本控制系統——為什麼選擇Git版本控制系統Git
- Oracle 查詢事務數Oracle
- 怎麼開發併釋出一個可用的 JavaScript 模組 ?JavaScript
- 聊一聊高併發高可用那些事 - Kafka篇Kafka
- 直播系統程式碼,點選選擇欄,彈出各個選項
- 高併發服務端分散式系統設計概要服務端分散式
- 星環科技:智慧城市為AI產業提供廣闊的發展空間AI產業
- Activiti 8.0.0 釋出,業務流程管理與工作流系統
- .NET Core 2.2釋出一覽