導語
數(shù)據(jù)分析引擎是數(shù)字經(jīng)濟時代的新動能,但很多數(shù)據(jù)分析引擎無法滿足實時處理大規(guī)模數(shù)據(jù)的性能要求。柏睿數(shù)據(jù)從“根技術(shù)”自主研發(fā)的全內(nèi)存分布式數(shù)據(jù)庫RapidsDB,通過內(nèi)存存儲、MPP并行計算、動態(tài)查詢優(yōu)化和即時編譯等查詢性能優(yōu)化技術(shù),為企業(yè)提供全球領(lǐng)先的數(shù)據(jù)處理和分析能力,構(gòu)建高性能、安全合規(guī)、自動化的數(shù)據(jù)洞察數(shù)字化平臺,靈活滿足企業(yè)多元交付場景的實時數(shù)據(jù)分析與海量數(shù)據(jù)高效管理需求。柏睿數(shù)據(jù)RapidsDB研發(fā)負責人丁若冰將詳解柏睿數(shù)據(jù)RapidsDB查詢性能優(yōu)化之道。
一、背景
作為國家重大發(fā)展戰(zhàn)略,數(shù)字經(jīng)濟越是發(fā)展,數(shù)據(jù)的價值越為突出。如何充分挖掘數(shù)據(jù)價值成為核心任務之一,其中在數(shù)據(jù)處理這一“價值變現(xiàn)”的關(guān)鍵環(huán)節(jié),必然要解決如何處理超大規(guī)模量級的數(shù)據(jù),以及如何將大規(guī)模數(shù)據(jù)進行實時高效分析和應用等問題,此時則需要強大的數(shù)據(jù)分析引擎來支撐??梢哉f,數(shù)據(jù)分析引擎將是數(shù)字經(jīng)濟時代的新動能,并助力實體經(jīng)濟高質(zhì)量發(fā)展。
數(shù)字化轉(zhuǎn)型中的企業(yè)要成為優(yōu)秀的數(shù)字化組織,同樣需要具備實時高效、靈活易用、可擴展的數(shù)據(jù)分析基礎(chǔ)設(shè)施,從而充分發(fā)揮數(shù)據(jù)價值,形成業(yè)務數(shù)據(jù)化和數(shù)據(jù)業(yè)務化的驅(qū)動閉環(huán),更好地實現(xiàn)智能商業(yè)決策、生產(chǎn)經(jīng)營優(yōu)化及產(chǎn)品和服務創(chuàng)新。但很多數(shù)據(jù)分析引擎因受限于低效的磁盤I/O、不合理的執(zhí)行計劃,單機的處理能力上限等因素,無法滿足企業(yè)實際業(yè)務場景中實時處理和分析大規(guī)模數(shù)據(jù)的性能要求。
為助力數(shù)字經(jīng)濟高質(zhì)量發(fā)展、加速企業(yè)數(shù)字化轉(zhuǎn)型,柏睿數(shù)據(jù)打造具有完全自主知識產(chǎn)權(quán)的全內(nèi)存分布式數(shù)據(jù)庫RapidsDB,做到了極致的數(shù)據(jù)處理和分析性能。通過內(nèi)存存儲、MPP并行計算、動態(tài)查詢優(yōu)化和即時編譯等查詢性能優(yōu)化技術(shù),突破了數(shù)據(jù)庫諸多性能瓶頸,構(gòu)建性能全球領(lǐng)先、安全合規(guī)、自動化的數(shù)據(jù)洞察數(shù)字化平臺,靈活滿足多元交付場景的實時數(shù)據(jù)分析與海量數(shù)據(jù)高效管理需求。
柏睿數(shù)據(jù)RapidsDB與常見數(shù)據(jù)分析引擎性能對比
如上圖,在某國有大型銀行招標測試的TPC-H SF100測試上,柏睿數(shù)據(jù)RapidsDB在各場景的性能測試中,整體性能較諸多常見數(shù)據(jù)分析引擎大幅領(lǐng)先。從總執(zhí)行時間上可看出,柏睿數(shù)據(jù)RapidsDB在100G的TPC-H數(shù)據(jù)集上查詢性能是常見查詢引擎的至少8倍。
二、技術(shù)原理與實踐
1、RapidsDB技術(shù)架構(gòu)
RapidsDB是柏睿數(shù)據(jù)新一代數(shù)據(jù)智能產(chǎn)品體系中的核心算力引擎,基于全內(nèi)存分布式架構(gòu),全面對標Spark計算引擎,幫助企業(yè)建立大規(guī)模實時數(shù)據(jù)高效處理與分析平臺。
RapidsDB技術(shù)架構(gòu)由管理工具模塊、接口模塊、分布式計算與存儲集群模塊和數(shù)據(jù)聯(lián)邦模塊組成。
RapidsDB架構(gòu)圖
•管理工具模塊提供管理支持。用戶可以使用RapidsDB的Manager工具,簡單便捷地完成RapidDB的安裝、部署、監(jiān)控和運維;同時可以使用RapidsShell工具,在命令行上對RapidDB進行操作和使用。
•接口模塊提供對外接入的入口。提供Java、Python等主流語言的驅(qū)動程序,用戶可以使用多種編程語言,通過標準的驅(qū)動API完成對數(shù)據(jù)庫的接入操作。
•分布式計算與存儲集群提供查詢計算和數(shù)據(jù)存儲。用戶的操作請求通過驅(qū)動傳遞到存儲與計算集群,存儲與計算集群完成對用戶請求的高性能的解析、優(yōu)化、執(zhí)行和響應。
•數(shù)據(jù)聯(lián)邦模塊提供聯(lián)邦查詢服務。聯(lián)邦模塊通過可插拔的連接器接入20+異構(gòu)數(shù)據(jù)源,靈活實現(xiàn)跨數(shù)據(jù)源的查詢、分析、聚合等操作。
柏睿數(shù)據(jù)RapidsDB采取的查詢性能優(yōu)化手段具體如下。
2、內(nèi)存存儲架構(gòu),提升I/O速度
RapidsDB采用內(nèi)存存儲架構(gòu),能夠做到納秒級的讀寫性能,遠超微秒級磁盤讀寫性能幾十萬倍。RapidsDB存儲引擎Moxe的數(shù)據(jù)以堆外內(nèi)存來存儲,一方面可以利用內(nèi)存本身的高效讀寫性能,另一方面堆外內(nèi)存無需垃圾回收,可以減少垃圾回收器的停頓時間,從而提升程序性能。
3、MPP引擎,橫向擴展計算性能
RapidsDB使用MPP架構(gòu)(大規(guī)模并行處理架構(gòu)),在計算時可以將一個查詢?nèi)蝿詹鸱殖啥鄠€并行執(zhí)行的小任務,并分發(fā)給MPP集群中的多個節(jié)點來執(zhí)行,從而有效提升任務、算子執(zhí)行的并行度,提高RapidsDB的查詢性能。
4、動態(tài)查詢優(yōu)化技術(shù),智能優(yōu)化查詢計劃
動態(tài)查詢優(yōu)化技術(shù)是柏睿數(shù)據(jù)獨立自主研發(fā)的技術(shù),已獲美國授權(quán)專利。它使用一種叫做代價預估的機制,對于每一個執(zhí)行計劃、執(zhí)行子計劃、算子給出基數(shù)假設(shè),通過在執(zhí)行中最終基數(shù)的反饋來動態(tài)地調(diào)整最初的基數(shù),輔以機器學習的方法來提升基數(shù)估算的準確度。這些評估調(diào)整的基數(shù)用于幫助 RapidsDB確定操作符的執(zhí)行順序、確定查詢中JOIN的順序、指導RapidsDB拆分任務、預計算及緩存數(shù)據(jù)。
隨著RapidsDB運行的越久,對執(zhí)行計劃、執(zhí)行子計劃、算子的基數(shù)假設(shè)就會越精準,那么基于基數(shù)所做決策的效率就會越高。
5、即時編譯,特殊代碼生成提速查詢執(zhí)行
RapidsDB使用Lambda Flow與內(nèi)存存儲引擎相結(jié)合,在查詢執(zhí)行階段通過即時編譯提高執(zhí)行效率。
RapidsDB的Lambda Flow利用即時編譯技術(shù)(JIT Compiler),在查詢時將頻繁執(zhí)行的方法進行特殊代碼生成,再編譯為機器代碼,提升執(zhí)行效率。例如,針對WHERE條件判斷、聚合運算等場景,RapidsDB計算引擎實時地將表達式的路徑編譯為具體代碼執(zhí)行,在原過程中產(chǎn)生的大量不必要的調(diào)用和分支跳轉(zhuǎn)則都會被優(yōu)化掉。
MOXE存儲層也做了相同的優(yōu)化。針對特定的表結(jié)構(gòu),MOXE定制了讀取和解析元組的代碼。如在解析元組的流程中,根據(jù)表結(jié)構(gòu)動態(tài)生成的代碼,無需做數(shù)據(jù)類型的重復判斷,只需按照順序解析數(shù)據(jù)。另外,在獲取部分列時,實現(xiàn)直接根據(jù)對應偏移量提取數(shù)據(jù),跳過不需要提取的列,從而降低計算及I/O開銷。隨著處理的數(shù)據(jù)量增加,節(jié)省的計算及I/O量是驚人的。
6、聯(lián)邦查詢,零數(shù)據(jù)遷移
RapidsDB通過可插拔的聯(lián)邦連接器來完成對20余種異構(gòu)數(shù)據(jù)源的統(tǒng)一訪問支持。聯(lián)邦連接器內(nèi)置Oracle、MySQL、PostgreSQL、Hive、Kafka等連接器,能夠直接完成對相應數(shù)據(jù)源的實時接入、查詢、分析功能,無需數(shù)據(jù)遷移,大大提高了數(shù)據(jù)處理和分析效能。
此外聯(lián)邦連接器還支持跨數(shù)據(jù)源的連接查詢,能夠透明融合企業(yè)跨部門數(shù)據(jù)源的數(shù)據(jù)查詢分析,突破數(shù)據(jù)共享瓶頸,實現(xiàn)多方數(shù)據(jù)安全高效流通。
三、應用實踐和收益
隨著企業(yè)上云數(shù)字化轉(zhuǎn)型進程的加速,中國移動某專業(yè)公司持續(xù)助力云計算產(chǎn)業(yè)發(fā)展和行業(yè)數(shù)字化轉(zhuǎn)型。與此同時,該公司的業(yè)務數(shù)據(jù)也迎來指數(shù)級增長,總存儲量高達百倍TB級別,同時業(yè)務場景也越來越復雜,由此對經(jīng)營分析系統(tǒng)的數(shù)據(jù)庫查詢分析性能提出了更高要求。經(jīng)過科學評估和測試,最終選擇柏睿數(shù)據(jù)RapidsDB來替代原有基于磁盤架構(gòu)的數(shù)據(jù)庫MySQL。
柏睿數(shù)據(jù)RapidsDB集群部署
該公司在其經(jīng)營分析系統(tǒng)上部署了一主兩從的三節(jié)點柏睿數(shù)據(jù)RapidsDB集群,基于RapidsDB無磁盤IO、高并發(fā)、高可擴展性、低延時以及高速存取等核心優(yōu)勢,滿足了數(shù)據(jù)查詢性能提升、數(shù)據(jù)架構(gòu)精簡和數(shù)據(jù)融合等實際業(yè)務場景需求,實現(xiàn)TB級數(shù)據(jù)秒級響應,數(shù)據(jù)查詢分析效率整體提升約200倍,同時降低了數(shù)據(jù)庫開發(fā)、運維和更換建設(shè)成本,助力該公司切實高效地激活數(shù)據(jù)要素潛能,加速全方位云化轉(zhuǎn)型。
柏睿數(shù)據(jù)RapidsDB與原有數(shù)據(jù)庫的查詢性能對比
四、未來展望
在與新一代硬件、云計算技術(shù)、人工智能等技術(shù)的交匯融合下,數(shù)據(jù)庫技術(shù)架構(gòu)正在持續(xù)迭代升級。同時根據(jù)Gartner技術(shù)報告分析,In-DBMS Analytics庫內(nèi)分析技術(shù)將是數(shù)據(jù)庫技術(shù)主流發(fā)展趨勢;未來,從數(shù)據(jù)產(chǎn)生、集成、建模、執(zhí)行、管理均在同一平臺完成,甚至完全可將分析建模的工作轉(zhuǎn)移到庫中。
基于“數(shù)據(jù)智能”核心技術(shù)路徑,柏睿數(shù)據(jù)RapidsDB未來將朝著如下技術(shù)發(fā)展方向不斷演進,助力企業(yè)從智慧數(shù)據(jù)中創(chuàng)造業(yè)務新價值。
•庫內(nèi)人工智能:RapidsDB已經(jīng)可以使用UDF的方式支持庫內(nèi)推理,未來將提供在數(shù)據(jù)庫內(nèi)的建模、訓練、預測等功能,通過領(lǐng)先的人工智能技術(shù)為企業(yè)提供更加實時的數(shù)據(jù)處理、更深入的數(shù)據(jù)洞察和更精確的決策支持。
•索引優(yōu)化技術(shù):通過建立大量查詢索引來為每個表提供技術(shù)支持,以實現(xiàn)每個查詢都能命中索引,以空間換時間的方式提高查詢性能。
•融合新型存儲硬件和新一代非易失性內(nèi)存(NVM)技術(shù):將SSD、NVMe驅(qū)動器等新型存儲硬件與NVM技術(shù)相結(jié)合,實現(xiàn)更大的存儲容量和更好的I/O性能,更好地處理大規(guī)模的數(shù)據(jù)集和更復雜的應用程序,并確保數(shù)據(jù)在系統(tǒng)故障或斷電等情況下不會丟失。
•多云靈活部署:目前RapidsDB已滿足在阿里云、華為云等公有云上部署,支持虛擬化、云原生的私有化部署,未來將更好地支持云原生、自動化部署和管理、彈性擴縮容等功能。
(免責聲明:本網(wǎng)站內(nèi)容主要來自原創(chuàng)、合作伙伴供稿和第三方自媒體作者投稿,凡在本網(wǎng)站出現(xiàn)的信息,均僅供參考。本網(wǎng)站將盡力確保所提供信息的準確性及可靠性,但不保證有關(guān)資料的準確性及可靠性,讀者在使用前請進一步核實,并對任何自主決定的行為負責。本網(wǎng)站對有關(guān)資料所引致的錯誤、不確或遺漏,概不負任何法律責任。
任何單位或個人認為本網(wǎng)站中的網(wǎng)頁或鏈接內(nèi)容可能涉嫌侵犯其知識產(chǎn)權(quán)或存在不實內(nèi)容時,應及時向本網(wǎng)站提出書面權(quán)利通知或不實情況說明,并提供身份證明、權(quán)屬證明及詳細侵權(quán)或不實情況證明。本網(wǎng)站在收到上述法律文件后,將會依法盡快聯(lián)系相關(guān)文章源頭核實,溝通刪除相關(guān)內(nèi)容或斷開相關(guān)鏈接。 )