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