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