導(dǎo)語(yǔ)
隨著當(dāng)今業(yè)務(wù)的高速發(fā)展,復(fù)雜多表關(guān)聯(lián)的場(chǎng)景越來(lái)越普遍。但基于行式存儲(chǔ)的數(shù)據(jù)庫(kù)在進(jìn)行復(fù)雜查詢時(shí)性能相對(duì)較弱。
在復(fù)雜邏輯越來(lái)越高頻的需求下,這怎么解決呢?這就促使了開(kāi)發(fā)者在實(shí)現(xiàn)過(guò)程中將一些復(fù)雜邏輯變成了分批次的從數(shù)據(jù)庫(kù)中取出數(shù)據(jù),然后在業(yè)務(wù)中使用代碼去處理的獨(dú)特現(xiàn)象?;蛘呤褂靡恍?shù)倉(cāng)產(chǎn)品來(lái)去承載此類業(yè)務(wù),但是這樣子的做法自然就導(dǎo)致了業(yè)務(wù)架構(gòu)復(fù)雜,邏輯臃腫等諸多問(wèn)題的發(fā)生。
那么到底如何在數(shù)據(jù)庫(kù)中解決這些問(wèn)題呢?騰訊云數(shù)據(jù)庫(kù)TDSQL-C推出了只讀分析引擎功能,通過(guò)擴(kuò)展的只讀實(shí)例結(jié)合列式存儲(chǔ)與計(jì)算優(yōu)化的方案可輕松應(yīng)對(duì)一切復(fù)雜查詢場(chǎng)景,從容處理在業(yè)務(wù)中的慢SQL。
只讀分析引擎簡(jiǎn)介
只讀分析引擎是TDSQL-C MySQL版支持的全新功能,此功能基于LibraDB引擎實(shí)現(xiàn),通過(guò)只讀實(shí)例提供服務(wù)。其可插拔式的引擎設(shè)計(jì)可以實(shí)現(xiàn)靈活的創(chuàng)建以及銷毀,同時(shí)為用戶提供海量數(shù)據(jù)處理與高效實(shí)時(shí)的復(fù)雜分析能力。使用只讀分析引擎,業(yè)務(wù)完全無(wú)需維護(hù)復(fù)雜的ETL組件,直接開(kāi)啟只讀實(shí)例即可輕松享受處理復(fù)雜查詢場(chǎng)景下的極致性能。
高速分析引擎LibraDB
不同于TDSQL-C MySQL版原生基于Innodb引擎升級(jí)改造的TXSQL引擎,LibraDB引擎是一款自研的列式存儲(chǔ)與計(jì)算引擎。Innodb引擎能在讀寫(xiě)實(shí)例和只讀實(shí)例中選擇使用,但是LibraDB引擎只能在只讀實(shí)例中被選擇。
LibraDB引擎支持以非常低的執(zhí)行時(shí)延從海量數(shù)據(jù)中完成復(fù)雜查詢分析,讓您的業(yè)務(wù)分析系統(tǒng)可以及時(shí)高效地獲取到有用的信息。LibraDB引擎支持向量化引擎、大規(guī)模并行執(zhí)行等針對(duì)分析類查詢的加速特性,無(wú)論是在超大表的多表JOIN、數(shù)據(jù)聚合和排序,還是復(fù)雜嵌套SQL等查詢場(chǎng)景,LibraDB引擎都能提供出色的性能體驗(yàn)。更加詳細(xì)關(guān)于LibraDB引擎的計(jì)算能力文章可參考:LibraDB計(jì)算引擎設(shè)計(jì)與思考(技術(shù)干貨丨TDSQL列存引擎LibraDB計(jì)算模型的設(shè)計(jì)與思考)
靈活開(kāi)關(guān)的分析引擎
只讀分析引擎兼容MySQL協(xié)議和語(yǔ)法,用戶無(wú)需修改業(yè)務(wù)代碼,可直接將復(fù)雜的查詢語(yǔ)句放置于只讀分析引擎中執(zhí)行,同時(shí)亦可根據(jù)業(yè)務(wù)的實(shí)際情況選擇是否開(kāi)啟只讀分析引擎,并且在無(wú)需分析加速的時(shí)候,可隨時(shí)關(guān)閉只讀分析引擎,以達(dá)到控制成本的目的。
實(shí)時(shí)列存數(shù)據(jù)加載能力
通過(guò)只讀分析引擎內(nèi)置的數(shù)據(jù)加載組件,可快速將TDSQL-C MySQL版中的數(shù)據(jù)加載至只讀分析引擎中。同時(shí)在完成數(shù)據(jù)加載后,亦可實(shí)時(shí)同步在讀寫(xiě)實(shí)例中對(duì)數(shù)據(jù)的所有變更,使行列數(shù)據(jù)變得實(shí)時(shí)一致。另外,針對(duì)傳統(tǒng)列式存儲(chǔ)在高并發(fā)數(shù)據(jù)UPDATE與DELETE的場(chǎng)景中數(shù)據(jù)變更低效的問(wèn)題,LibraDB引擎也提供了在高并發(fā)數(shù)據(jù)更新場(chǎng)景下的列式存儲(chǔ)能力,可以支撐實(shí)時(shí)的數(shù)據(jù)同步,以達(dá)到數(shù)據(jù)實(shí)時(shí)同步的效果。
指定數(shù)據(jù)加載能力
作為傳統(tǒng)的只讀實(shí)例而言,所有的主庫(kù)數(shù)據(jù)均需要同步到從庫(kù)中。但是對(duì)于只讀分析引擎而言,可以支持指定對(duì)象加載到分析引擎中,而不是一定要求所有的對(duì)象。用戶可以指定需要使用只讀分析引擎加速的庫(kù)表,或者有數(shù)據(jù)分析價(jià)值的庫(kù)表加載到只讀分析引擎中進(jìn)行數(shù)據(jù)分析,靈活控制只讀分析引擎所占用的磁盤(pán)大小。
超高數(shù)據(jù)壓縮率
基于列式存儲(chǔ)的結(jié)構(gòu),提供超高數(shù)據(jù)掃描性能的同時(shí),還能夠同時(shí)提供至少50%的壓縮率,大幅度降低存儲(chǔ)的成本。
完善的云上托管能力
無(wú)需運(yùn)維復(fù)雜的ETL邏輯,無(wú)需關(guān)心數(shù)據(jù)庫(kù)的后端運(yùn)維,通過(guò)全托管的產(chǎn)品設(shè)計(jì),讓您獲得開(kāi)箱即用的數(shù)據(jù)分析能力體驗(yàn)。同時(shí),通過(guò)全面監(jiān)控功能,從TXSQL到分析引擎,從鏈路層到存儲(chǔ)層,精心篩選出核心指標(biāo),為您去繁化簡(jiǎn),讓您能迅速通過(guò)關(guān)鍵指標(biāo)了解實(shí)例健康情況,為業(yè)務(wù)系統(tǒng)的使用提供有效的優(yōu)化指引。除此之外,您還可以自定義閾值告警,提前防范可能出現(xiàn)的異常情況。
適用場(chǎng)景
只讀分析引擎旨在為用戶提供實(shí)時(shí)的高性能數(shù)據(jù)分析,以幫助用戶解決自行構(gòu)建ETL工具同步數(shù)據(jù)的復(fù)雜運(yùn)維難題。通過(guò)只讀分析引擎的功能,用戶可以輕松地一鍵化地構(gòu)建數(shù)據(jù)分析實(shí)例,以作為業(yè)務(wù)決策的依據(jù),充分發(fā)揮數(shù)據(jù)的價(jià)值。
報(bào)表分析、實(shí)時(shí)看板
面向企業(yè)內(nèi)部分析和管理者的報(bào)表系統(tǒng),可以及時(shí)、實(shí)時(shí)地查看到業(yè)務(wù)系統(tǒng)線上的運(yùn)行情況;或者面向業(yè)務(wù)運(yùn)營(yíng)的數(shù)據(jù)分析業(yè)務(wù)。此類業(yè)務(wù)場(chǎng)景中的查詢SQL復(fù)雜,且查詢模式不固定,需要較高的吞吐,同時(shí)線上數(shù)據(jù)較多,使用只讀分析引擎可滿足業(yè)務(wù)在此類場(chǎng)景下的實(shí)時(shí)性與高性能。
用戶畫(huà)像、行為分析
在廣告業(yè)務(wù)、游戲運(yùn)營(yíng)場(chǎng)景下,經(jīng)常會(huì)需要針對(duì)用戶行為、用戶畫(huà)像進(jìn)行深度分析,分析后的結(jié)果用于實(shí)時(shí)的經(jīng)營(yíng)決策。此類場(chǎng)景數(shù)據(jù)量大、需要及時(shí)返回?cái)?shù)據(jù)分析結(jié)果,查詢QPS較高,使用只讀分析引擎,用戶可以在此類場(chǎng)景中快速獲得需要分析的數(shù)據(jù),用于用戶行為分析,以作為精準(zhǔn)推送相關(guān)業(yè)務(wù)的決策依據(jù)。
實(shí)時(shí)數(shù)據(jù)倉(cāng)庫(kù)
在電商大促訂單的數(shù)據(jù)分析、物流行業(yè)的運(yùn)單分析、金融行業(yè)的績(jī)效分析、指標(biāo)計(jì)算、直播質(zhì)量分析、廣告推送分析、智能駕駛艙、探針?lè)治鰣?chǎng)景下亦可使用只讀分析引擎以獲取超高的復(fù)雜查詢性能。
大數(shù)據(jù)對(duì)賬、批量計(jì)算
在一些在線業(yè)務(wù)中,特別是與金錢有關(guān)的業(yè)務(wù)場(chǎng)景中需要定時(shí)對(duì)數(shù)據(jù)進(jìn)行統(tǒng)計(jì)合并的對(duì)賬計(jì)算,在傳統(tǒng)的行式數(shù)據(jù)中進(jìn)行數(shù)據(jù)批量計(jì)算對(duì)賬效率低,資源消耗高。無(wú)法快速的達(dá)到業(yè)務(wù)預(yù)期。通過(guò)借助只讀分析引擎的超強(qiáng)并發(fā)計(jì)算能力可以以極高效率的完成業(yè)務(wù)需求。
未來(lái)展望
只讀分析引擎本期即將在云原生數(shù)據(jù)庫(kù)TDSQL-C MySQL版中正式開(kāi)啟內(nèi)測(cè),后續(xù)只讀分析引擎亦會(huì)在云數(shù)據(jù)庫(kù)MySQL等MySQL系列產(chǎn)品中陸續(xù)上線。使用相關(guān)產(chǎn)品的伙伴可敬請(qǐng)期待。