分布式數(shù)據(jù)庫(Tencent Distributed SQL,TDSQL)是騰訊打造的一款分布式數(shù)據(jù)庫產(chǎn)品,具備強(qiáng)一致高可用、全球部署架構(gòu)、分布式水平擴(kuò)展、高性能、企業(yè)級安全等特性,同時提供智能 DBA、自動化運(yùn)營、監(jiān)控告警等配套設(shè)施,為用戶提供完整的分布式數(shù)據(jù)庫解決方案。目前 TDSQL 已經(jīng)為超過500+的政企和金融機(jī)構(gòu)提供數(shù)據(jù)庫的公有云及私有云服務(wù),客戶覆蓋銀行、保險、證券、互聯(lián)網(wǎng)金融、計(jì)費(fèi)、第三方支付、物聯(lián)網(wǎng)、互聯(lián)網(wǎng)+、政務(wù)等領(lǐng)域。TDSQL 亦憑借其高質(zhì)量的產(chǎn)品及服務(wù),獲得了多項(xiàng)國際和國家認(rèn)證,得到了客戶及行業(yè)的一致認(rèn)可。
功能
騰訊云 TDSQL 是基于分布式架構(gòu)的數(shù)據(jù)庫,高度兼容 MySQL、高性能、高可用、企業(yè)級安全與監(jiān)控、可擴(kuò)展、易用性為一體的數(shù)據(jù)庫托管服務(wù)。
高度兼容 MySQL
- 兼容大多數(shù)常用的 MySQL 語法包括 MySQL 的語言結(jié)構(gòu)、字符集和時區(qū)、數(shù)據(jù)類型、常用函數(shù)、預(yù)處理協(xié)議、排序、聯(lián)合(join)、存儲過程、索引、分區(qū)、事務(wù)、預(yù)處理協(xié)議、控制指令、等常用的 DDL、DML、DCL 和數(shù)據(jù)庫訪問接口。
- 支持(分布式)事務(wù)通過兩段提交的方式支持分布式事務(wù),支持諸如轉(zhuǎn)賬、出單、支付等場景;跨節(jié)點(diǎn)事務(wù)性能約為單節(jié)點(diǎn)的 70%,高于開源分布式事務(wù) XA 約 56%。目前僅開放 MySQL 5.7支持該能力。
- 支持(分布式)JOINTDSQL 支持多個物理節(jié)點(diǎn)之間的 JOIN(聯(lián)合查詢)操作,即分布式 JOIN。如果 JOIN 相關(guān)的表有 shardkey 相等條件,由于分表的一致性原則,會讓這部分?jǐn)?shù)據(jù)自動存儲到同一物理節(jié)點(diǎn),此時相當(dāng)于單機(jī) JOIN,性能**。如果涉及到跨物理節(jié)點(diǎn)數(shù)據(jù),此時 proxy 會先從其他節(jié)點(diǎn)拉取數(shù)據(jù)并緩存,由于涉及到網(wǎng)絡(luò)數(shù)據(jù)傳輸,性能會損失。
- 支持JSonTDSQL 支持存儲 JSON 格式的數(shù)據(jù),使得對 JSON處理更加有效,同時又能提早檢查錯誤;如果您既希望使用 JSON類型,又對數(shù)據(jù)一致性,事務(wù),JOIN 等傳統(tǒng)數(shù)據(jù)庫具備的能力也有一定要求的話,TDSQL 將是一個很好的選擇,當(dāng)然 TDSQL 的 JSON 是基于 MySQL 與 Mongodb 的使用仍有一些差異,如果您感興趣,可以閱讀?TDSQL 與 MongoDB 的 JSON 能力對比。
- 三種建表策略分表:即水平拆分的表,通常適用于表規(guī)模大于 2000 萬行、大于 50GB,且快速增長的表;廣播表:即所有操作都將廣播到所有邏輯分片(Shard)中,這意味著每個分片都有該表的全量數(shù)據(jù),通常適用于配置表,或需要頻繁 JOIN 的表,該類表數(shù)據(jù)更新相對較少,廣播表可以兩個表的聯(lián)合查詢(JOIN)、事務(wù)收斂到單節(jié)點(diǎn)中,以提高性能;單表:一些無需分片的表,通常適用于數(shù)據(jù)量較小的庫表;由于單表并未拆分,這意味著單表使用完全兼容 MySQL。
- 全局**數(shù)字序列與 AUTO_INCREMENT 類似。自增長序列為用戶提供一個全局**數(shù)字 ID 服務(wù),實(shí)現(xiàn)分布式環(huán)境下**鍵、主鍵等數(shù)據(jù)的全局**性。
- 透傳命令支持通過注釋方式(hint)將 SQL 透傳到指定目標(biāo)分片,以提高性能和操作靈活性。
- 二級分區(qū)在分表的基礎(chǔ)上,還支持分區(qū)表方案。即在水平拆分的表,再支持一層邏輯分區(qū),因此叫做二級分區(qū);二級分區(qū)可以均衡數(shù)據(jù)分布和訪問,可以提高查詢效率,也支持諸如游戲歷史戰(zhàn)績、IoT 傳感器數(shù)據(jù),需要定期刪除歷史數(shù)據(jù)等場景。
更高性能
- 讀寫分離(從機(jī)只讀)TDSQL 默認(rèn)支持讀寫分離能力,主從架構(gòu)中的每個從機(jī)都能支持只讀能力,如果配置有多個從機(jī),將由網(wǎng)關(guān)集群(TProxy)自動分配到低負(fù)載從機(jī)上,以支撐大型應(yīng)用程序的讀取流量;讀寫分離的方案包括:只讀賬號,,只讀實(shí)例三種方案。
- 線程池TDSQL 默認(rèn)支持線程池,騰訊對線程池的調(diào)度算法進(jìn)行了優(yōu)化,改進(jìn)當(dāng)系統(tǒng)處于重負(fù)載時,查詢和更新請求在線程組間分布不均衡等極端情況,并且能夠更好地利用計(jì)算資源,減少無謂的線程切換,減少請求在隊(duì)列中的等待時間,及時處理請求。
- 高端硬件配置TDSQL 基于 PCI-E SSD,提供至少高于 SATA 三倍的 IOPS 配置,強(qiáng)大 IO 性能保障數(shù)據(jù)庫的訪問能力;存儲硬件采用 NvMe 協(xié)議,專門針對 PCI-E 接口的 SSD 設(shè)計(jì),更能發(fā)揮出性能優(yōu)勢;單分片**支持 245509 QPS(每秒訪問次數(shù))、384GB 內(nèi)存和 6TB 存儲空間。
- 性能并發(fā)線性增長分布式架構(gòu)的特性是隨著 TDSQL 分片的增加,每個分片分別承擔(dān)一部分分布式任務(wù)的處理,這樣您的數(shù)據(jù)庫性能等同于線性增長。
- 支持RocksDBRocksDB 是新近開源的存儲引擎,包括 FB 在內(nèi)的大量公司都在使用 RocksDB,而 RocksDB 是一種基于LSM 樹的存儲引擎,其數(shù)據(jù)壓縮率** InnoDB 引擎 60% 以上,即 InnoDB 壓縮前 160GB 數(shù)據(jù)使用RocksDB 后僅需 62GB,相當(dāng)于每 1000 行數(shù)據(jù)僅需1GB存儲空間,極大節(jié)省數(shù)據(jù)庫使用成本;另外 RocksDB 的寫入性能也有較大提升,高并發(fā)情況下約為 InnoDB 的 5 倍以上。因此,RocksDB 特別適合物聯(lián)網(wǎng)、日志等“寫多讀少”,且對容量比較敏感的業(yè)務(wù)。
高可用性
- 分布式高可用分布式系統(tǒng)架構(gòu)本身就具有極高的可用性,即單一節(jié)點(diǎn)故障,并不影響集群整體可用性。而 TDSQL 在分布式架構(gòu)的基礎(chǔ)上,對每個分片都配置主從冗余,確保業(yè)務(wù)持續(xù)高可用。
- 三種數(shù)據(jù)復(fù)制方式TDSQL 支持強(qiáng)同步(不可蛻化)、強(qiáng)同步(可蛻化)、異步復(fù)制三種方式?;隍v訊自研異步多線程強(qiáng)同步復(fù)制技術(shù)技術(shù),極大提高了數(shù)據(jù)強(qiáng)同步復(fù)制性能。在強(qiáng)同步性能基本等同于異步的基礎(chǔ)上,確保主從節(jié)點(diǎn)的數(shù)據(jù)強(qiáng)一致性。
- 透明故障轉(zhuǎn)移每一個分片和底層物理設(shè)備提供 7X24 小時持續(xù)監(jiān)控。發(fā)生故障時,網(wǎng)關(guān)集群(TProxy)將及時從故障節(jié)點(diǎn)切換到正常節(jié)點(diǎn)。在主從切換時,VIP不變,這意味應(yīng)用層無需做任何改動即可完成熱備切換,業(yè)務(wù)對容災(zāi)切換無感知。
- 節(jié)點(diǎn)故障自動恢復(fù)承載分片的物理節(jié)點(diǎn)故障,調(diào)度系統(tǒng)自動重試恢復(fù)節(jié)點(diǎn),如果原節(jié)點(diǎn)無法恢復(fù),將在 30 分鐘內(nèi)自動申請新資源,并通過備份重建(Rebuild)節(jié)點(diǎn),并將節(jié)點(diǎn)自動加入集群,已確保分片長期來看保持主從容易。
- 支持跨可用區(qū)部署主機(jī)和從機(jī)可分處于同城不同可用區(qū),通過騰訊專線網(wǎng)絡(luò)進(jìn)行實(shí)時的數(shù)據(jù)復(fù)制。本地為主機(jī),遠(yuǎn)程為從機(jī),外部訪問該數(shù)據(jù)時,首先訪問本地的實(shí)例,若本地實(shí)例發(fā)生故障或訪問不可達(dá),則訪問遠(yuǎn)程從機(jī)??缈捎脜^(qū)部署特性為 TDSQL 提供了多可用區(qū)容災(zāi)的能力,主機(jī)和從機(jī)切換過程對用戶透明,避免了單 IDC 部署的運(yùn)營風(fēng)險。
- 金融級兩地三中心方案TDSQL 可提供同城雙中心、兩地三中心的部署架構(gòu)。故障發(fā)生時,您可以在幾分鐘內(nèi)將數(shù)據(jù)庫恢復(fù)正常運(yùn)行。
企業(yè)級安全
- 符合國家/國際/行業(yè)相關(guān)標(biāo)準(zhǔn)TDSQL 現(xiàn)已代表騰訊云云數(shù)據(jù)庫通過多項(xiàng)國家或國際認(rèn)證,包括但不限于:ISO22301 認(rèn)證、ISO27001 認(rèn)證、ISO20000 認(rèn)證、*** 認(rèn)證、可信云服務(wù)認(rèn)證、信息安全等級保護(hù)(三級或以上)、CSA STAR 認(rèn)證。TDSQL 部分功能設(shè)計(jì)標(biāo)準(zhǔn)也參考 GBT 20273-2006 信息安全技術(shù) 數(shù)據(jù)庫管理系統(tǒng)安全技術(shù)要求、JRT 0072-2012 金融行業(yè)信息系統(tǒng)信息安全等級保護(hù)測評指南;即使您的業(yè)務(wù)對數(shù)據(jù)庫安全較為敏感,也可以完全放心的使用 TDSQL。
- 數(shù)據(jù)庫內(nèi)核級安全針對諸如 SQL 注入、目錄穿越攻擊(Path Traversal)、非法提權(quán)、系統(tǒng)表覆蓋攻擊、插件引入等安全隱患,TDSQL 做了大量的安全優(yōu)化,并在數(shù)據(jù)庫集群內(nèi)部提供內(nèi)置數(shù)據(jù)庫防火墻,從運(yùn)維和使用角度都能幫助您的業(yè)務(wù)提高安全標(biāo)準(zhǔn)。
- 支持私有網(wǎng)絡(luò)TDSQL 允許您在私有網(wǎng)絡(luò)(VPC)中運(yùn)行數(shù)據(jù)庫實(shí)例,這使您可以隔離數(shù)據(jù)庫實(shí)例并通過行業(yè)標(biāo)準(zhǔn)加密的 IPsec VPN 或?qū)>€連接到您現(xiàn)有的數(shù)據(jù)中心。
- 數(shù)據(jù)庫防火墻與多重安全防護(hù)云數(shù)據(jù)庫默認(rèn)為每個數(shù)據(jù)庫提供多重安全防護(hù),在提供了外網(wǎng)訪問功能的數(shù)據(jù)庫實(shí)例遭到 DDoS 攻擊時,幫助用戶抵御各種攻擊流量,保證業(yè)務(wù)正常運(yùn)行。高效防御 SQL 注入、暴力破解等數(shù)據(jù)庫攻擊行為,極大減少用戶因數(shù)據(jù)庫攻擊帶來的業(yè)務(wù)中斷和損失。
- 細(xì)粒度的權(quán)限控制默認(rèn)屏蔽超級管理員 root 賬號,避免安全隱患;提供**到表、函數(shù)、存儲過程等對象級別的權(quán)限控制,讓您分配的賬號只能訪問被授權(quán)的資源,并將風(fēng)險控制在可預(yù)期范圍內(nèi)。
- 支持物理獨(dú)享方案在公有云、金融云、黑石數(shù)據(jù)庫(專區(qū))支持以獨(dú)享物理集群(設(shè)備)全部資源部署數(shù)據(jù)庫,這意味著您專享獨(dú)立的物理設(shè)備,不與其他租戶共用。獨(dú)享集群滿足您對資源獨(dú)享、物理安全、行業(yè)監(jiān)管等需求;購買獨(dú)享集群后,通過騰訊云控制臺,靈活創(chuàng)建多種自定義規(guī)格的數(shù)據(jù)庫實(shí)例。
- 存儲高可靠提供在線的主從兩份數(shù)據(jù)存儲,確保線上數(shù)據(jù)安全。每日自動備份數(shù)據(jù),云數(shù)據(jù)庫可根據(jù)備份文件提供 3 天內(nèi)的任意時間點(diǎn)回檔。同時每天的冷備數(shù)據(jù)都會存儲多份,以便于在災(zāi)難情況下進(jìn)行數(shù)據(jù)恢復(fù)。您可以放心的將數(shù)據(jù)存儲在 TDSQL 上,無需考慮數(shù)據(jù)丟失的問題。
企業(yè)級監(jiān)控
- 全面的日常監(jiān)控日常監(jiān)控支持 60 秒粒度,覆蓋連接訪問、數(shù)據(jù)庫負(fù)載、查詢緩存、存儲引擎等七十余項(xiàng)重要指標(biāo),可全方位監(jiān)控?cái)?shù)據(jù)庫運(yùn)行狀況。十五項(xiàng)數(shù)據(jù)庫核心性能指標(biāo)支持秒級的實(shí)時監(jiān)控,可幫助您及時掌握實(shí)例運(yùn)行狀況,快速定位實(shí)例性能問題。自定義資源閾值告警,可幫助用戶知曉 DB 運(yùn)行中的問題。它將問題及時反饋給運(yùn)維人員,幫助您快速響應(yīng)數(shù)據(jù)庫問題。提供慢查詢分析報(bào)告和 SQL 完整運(yùn)行報(bào)告下載,幫助您了解影響數(shù)據(jù)庫性能的因素。
- 自定義告警自定義資源閾值告警,可幫助用戶知曉 DB 運(yùn)行中的問題。它將問題及時反饋給運(yùn)維人員,幫助您快速響應(yīng)數(shù)據(jù)庫問題。
- 性能分析日志提供慢查詢分析報(bào)告和 SQL 完整運(yùn)行報(bào)告下載,幫助您了解影響數(shù)據(jù)庫性能的因素。
可擴(kuò)展性
- 彈性擴(kuò)展目前單一分片**可支持 6TB 存儲,如果性能或容量不足以支撐業(yè)務(wù)發(fā)展時,在控制臺點(diǎn)擊,即可自動升級完成。升級過程中,您無需關(guān)心分布式系統(tǒng)內(nèi)的數(shù)據(jù)遷移,均衡和路由切換。升級完成后訪問 IP 不變,僅在自動切換時存在秒級閃斷,您僅需確保有重連機(jī)制即可。
- 自動再均衡(Rebalance)增加分片或升級分片規(guī)格時,數(shù)據(jù)自動遷移,保證每個節(jié)點(diǎn)數(shù)據(jù)實(shí)現(xiàn)均衡分布;遷移過程服務(wù)不會停止,只會有幾個分配存在秒級的只讀。以提高大型業(yè)務(wù)維護(hù)效率,減少運(yùn)營風(fēng)險事件發(fā)生。
易用性
- 輕松管理海量數(shù)據(jù)庫提供命令行和 Web 兩種方式管理分布式數(shù)據(jù)庫,兩種管理方式將海量數(shù)據(jù)庫實(shí)例的運(yùn)維工作簡化為在頁面點(diǎn)擊即可完成,極大地降低了運(yùn)維工作量。
- 多種網(wǎng)絡(luò)接入方式支持 VPC 網(wǎng)絡(luò)和基礎(chǔ)網(wǎng)絡(luò),還可配置數(shù)據(jù)庫外網(wǎng)訪問。通過這些接入方式,您可從騰訊云、IDC、私有云或其他云廠商處訪問云數(shù)據(jù)庫,從而滿足多種環(huán)境下的數(shù)據(jù)庫訪問需求。
- 支持 API提供完善的 API 體系,您可使用 API 輕松地將云數(shù)據(jù)庫與內(nèi)部監(jiān)控、運(yùn)營系統(tǒng)相結(jié)合,實(shí)現(xiàn)貼近業(yè)務(wù)需求、完全自動化的業(yè)務(wù)運(yùn)維體系。 查看 API 說明。