TiDB 7.0 發(fā)版

近日,企業(yè)級開源分布式數(shù)據(jù)庫廠商 PingCAP 正式發(fā)布TiDB 7.0 。TiDB 7.0 聚焦于幫助用戶通過可靠性能和簡化數(shù)據(jù)庫操作來快速響應(yīng)業(yè)務(wù)需求,從而滿足客戶的高期望值,并提升開發(fā)人員和 IT 運(yùn)維人員的生產(chǎn)力。新版本中,TiDB 在可擴(kuò)展性與性能、穩(wěn)定性與高可用、SQL 以及 可觀測性幾個領(lǐng)域獲得持續(xù)提升,累計引入新特性 20 余項,優(yōu)化功能 50 余項。TiDB 7.0 是 TiDB 7 系列首個 DMR 版本,適用于開發(fā)、測試和 PoC 等場景。

在 7 系列版本以及之后 2-3 年的時間里, TiDB 在不斷迭代中將擁有:

更強(qiáng)的基礎(chǔ)能力(核心性能,擴(kuò)展性,性價比,云原生等);更加多元化的場景支持(多租戶,更多數(shù)據(jù)模型支持,更好的生態(tài)適配);更順滑的運(yùn)維體驗(更強(qiáng)的 DDL 能力,以 SQL 為統(tǒng)一界面的運(yùn)維體驗等,智能運(yùn)維);更可靠更安全(更高的可用性,更好的安全體系整合,更多合規(guī)認(rèn)證)。這些主題都將逐步在 7 系列以及后續(xù)版本中落實,給予用戶更優(yōu)的使用體驗,讓 TiDB 變成一個好用且泛用,可靠且經(jīng)濟(jì)的選擇。具體到 7.0 版本,TiDB 初步提供了更好的資源管控能力,讓 TiDB 針對 SaaS 和多平臺統(tǒng)一共存等場景有了根本性的解決方案;其次,TiFlash 發(fā)布了面向云的存算分離新架構(gòu),這使其可以真正做到存算資源解耦,計算資源可以按需啟停,且基于 S3 的存儲設(shè)計也將大幅降低存儲成本;而諸如分析引擎支持落盤,自動執(zhí)行計劃緩存等,則是針對企業(yè)級場景做出的必要強(qiáng)化;最后,TiDB 7.0 提供了對 MySQL 8.0 的兼容,這將使得相關(guān)用戶能更方便地遷移到 TiDB。


(資料圖片僅供參考)

1、資源管控增強(qiáng)多租戶形態(tài)下工作負(fù)載穩(wěn)定性

資源管控特性(Resource Control)在 TiDB 6.6 中引入(實驗特性),在 TiDB 7.0 中得到增強(qiáng)和優(yōu)化,極大地提升 TiDB 集群的資源利用效率和性能表現(xiàn),為穩(wěn)定的多租戶奠定了基礎(chǔ)。資源管控特性對 TiDB 具有里程碑的意義,用戶可以將一個分布式數(shù)據(jù)庫集群劃分成多個邏輯單元,將不同的數(shù)據(jù)庫用戶映射到對應(yīng)的資源組中,并根據(jù)需要設(shè)置每個資源組的配額。該功能允許為一個或多個會話組設(shè)置資源上限,如果來自某個工作負(fù)載或應(yīng)用程序的消耗異常重,則其資源消耗將被限制在配額內(nèi),以防止對其他更關(guān)鍵的工作負(fù)載造成干擾。

資源管控適用于以下場景:

用戶可以將多個應(yīng)用程序合并到單個 TiDB 集群中,降低 TCO 并保證重要工作負(fù)載所需的資源。用戶可以在業(yè)務(wù)運(yùn)營時間內(nèi)安全運(yùn)行批處理任務(wù)。模擬環(huán)境(Staging Environments)可共享具有受資源管控限制的單個 TiDB 集群。

會話可通過三種方式綁定到資源組: 通過 CREATE USER 或 ALTER USER 語句將用戶綁定到特定的資源組,使得用戶會話始終受到設(shè)定邊界約束; 通過 SET RESOURCE GROUP 設(shè)置當(dāng)前會話的資源組; 也可通過優(yōu)化器 Hint RESOURCE_GROUP() 設(shè)置當(dāng)前語句的資源組。

2、TiFlash 支持?jǐn)?shù)據(jù)落盤來穩(wěn)定分析工作負(fù)載

TiFlash 是 TiDB 的列存儲和計算引擎,是數(shù)據(jù)庫分析工作負(fù)載能力的支柱。在 TiDB 7.0 之前,TiFlash 在內(nèi)存中處理所有數(shù)據(jù)。從這個版本開始,TiFlash 支持?jǐn)?shù)據(jù)落盤功能(Spill to disk),通過調(diào)整算子內(nèi)存使用閾值,控制對應(yīng)算子的最大內(nèi)存使用量。對于大查詢而言,當(dāng)算子使用內(nèi)存超過一定閾值時會自動將數(shù)據(jù)落盤,犧牲一定的性能換取整體分析查詢的穩(wěn)定性。數(shù)據(jù)落盤操作根據(jù)用戶配置參數(shù)進(jìn)行,并適用于單個推送下去的操作。由于該優(yōu)化發(fā)生在單個運(yùn)算符級別上,因此必須在多個位置執(zhí)行數(shù)據(jù)落盤操作。在 TiDB 7.0 中,它首先被應(yīng)用于以下情況:

相等條件下的哈希連接;GROUP BYs 上的哈希聚合;窗口函數(shù)中 TopN 和排序運(yùn)算符。

在執(zhí)行這些操作期間,如果運(yùn)算符使用的內(nèi)存量超過了配置限制,會自動將數(shù)據(jù)落盤并繼續(xù)進(jìn)行后續(xù)處理。為了說明目標(biāo)工作負(fù)載受影響程度,我們模擬了決策支持系統(tǒng),使用 TPC-H 基準(zhǔn)測試工具進(jìn)行測試,結(jié)果如下表所示:

圖:TiFlash 存算分離架構(gòu)

TiFlash 存算分離架構(gòu) 適用于高性價比的數(shù)據(jù)分析場景。 在數(shù)據(jù)量很大,但是只有少量數(shù)據(jù)被頻繁查詢,大部分冷數(shù)據(jù)很少被查詢的場景下,將經(jīng)常被查詢的數(shù)據(jù)緩存在 Compute Node 的本地 SSD 上,可以提供較快查詢性能,將大量冷數(shù)據(jù)存儲在成本較低的 S3 或者其他對象存儲上,從而節(jié)省存儲成本。 在計算資源需求有明顯的波峰和波谷場景下,例如晚上執(zhí)行的重型對賬查詢,對計算資源要求較高,可以臨時擴(kuò)展 Compute Node,其他時間可以用較少的 Compute Node 完成查詢?nèi)蝿?wù)。 TiFlash 的存算分離架構(gòu)大幅降低了使用 TiFlash 支持分析工作負(fù)載的成本,并且提供了一定程度的工作負(fù)載隔離。 目前,TiUP 和 TiDB Operator 已經(jīng)支持部署和縮放 TiFlash 獨立組件的能力。

5、TTL 定期刪除過期數(shù)據(jù),為系統(tǒng)減負(fù)

TiDB 6.5 引入了 Time to live(TTL)實驗特性,提供了行級別的生命周期控制策略,該項特性在 TiDB 7.0 中正式 GA。TTL 是一種通過 SQL 配置設(shè)置表中行到期時間的方式,幫助用戶周期性且及時地清理不需要的數(shù)據(jù),并盡量減少對用戶負(fù)載的影響。TTL 以表為單位,并發(fā)地分發(fā)不同的任務(wù)到不同的 TiDB Server 節(jié)點上,進(jìn)行并行刪除處理。在某些情況下,較大的表格意味著查詢時間更長;較大的表格意味著更多的存儲成本;在 TiDB 中,一個表越大,Region 就越多,限制表格大小可以減輕系統(tǒng)負(fù)擔(dān);各種合規(guī)性要求可能需要設(shè)置數(shù)據(jù)過期?;诔杀?、性能或安全等因素考慮,數(shù)據(jù)庫管理員可以配置自動檢查并刪除過期的表格行數(shù)據(jù),例如定期刪除驗證碼、短網(wǎng)址記錄、不需要的歷史訂單、計算的中間結(jié)果等。

6、使用 Key 分區(qū)提高可擴(kuò)展性

在 7.0 之前,TiDB 支持 Hash、Range 和 List 分區(qū)。新版本引入了 key 分區(qū),與 Hash 分區(qū)類似,Key 分區(qū)可以保證將數(shù)據(jù)均勻地分散到一定數(shù)量的分區(qū)里面。Hash 分區(qū)只能根據(jù)一個指定的整數(shù)表達(dá)式或字段進(jìn)行分區(qū),而 Key 分區(qū)可以根據(jù)字段列表進(jìn)行分區(qū),且 Key 分區(qū)的分區(qū)字段不局限于整數(shù)類型。Key 分區(qū)提供了一種更靈活的方式來對數(shù)據(jù)集進(jìn)行劃分以改善集群的可擴(kuò)展性。

7、使用 Reorganize Partition 適應(yīng)不斷變化的需求

TiDB 長期以來一直支持分區(qū),修改分區(qū)表的唯一方法是添加或刪除分區(qū)和截斷 LIST/RANGE 分區(qū)。TiDB 7.0 TiDB 支持 ALTER TABLE... REORGANIZE PARTITION 語法,用戶可以對表的部分或所有分區(qū)進(jìn)行重新組織,包括合并、拆分、或者其他修改,并且不丟失數(shù)據(jù),增加了可用性和靈活性以滿足不斷變化的需求。

8、使用 Load Data 從遠(yuǎn)程存儲導(dǎo)入數(shù)據(jù)

TiDB 7.0 中, LOAD DATA 語句集成 TiDB Lightning,用戶可以使用 LOAD DATA 語句完成原先需要使用 TiDB Lightning 才能完成的數(shù)據(jù)導(dǎo)入任務(wù)(實驗特性),不僅可以省去 TiDB Lightning 的部署和管理成本,還可以借助 TiDB Lightning 的功能極大擴(kuò)展 LOAD DATA 語句的能力,包括:支持從 Amazon S3 和 Google Cloud Storage 導(dǎo)入數(shù)據(jù)到 TiDB,且支持使用通配符一次性匹配多個源文件導(dǎo)入到 TiDB;支持查詢?nèi)蝿?wù)狀態(tài),添加操作便利性等。

推薦DIY文章
形色隨心嶄新江湖 《劍網(wǎng)3》全新資料片“群俠萬變”震撼公測
護(hù)士長進(jìn)修總結(jié):b超學(xué)習(xí)總結(jié)怎么寫?如何寫好升學(xué)自我評價?
李自成寶藏之謎 大順的藏寶在哪里 為什么至今仍是個謎
每日焦點!男士帽子搭配 漁夫帽是近年來非常流行的帽子 還方便收納
林書豪普通話:自從加入北京男籃漢語水平就有了很大提高
繁體字女生個性簽名 還有這五十句美麗又心碎的古詩詞句子可以用
精彩新聞

超前放送