TiDB 是 PingCAP 公司自主設(shè)計、研發(fā)的開源分布式關(guān)系型數(shù)據(jù)庫,是一款同時支持在線事務(wù)處理與在線分析處理 (Hybrid Transactional and Analytical Processing, HTAP) 的融合型分布式數(shù)據(jù)庫產(chǎn)品,具備水平擴容或者縮容、金融級高可用、實時 HTAP、云原生的分布式數(shù)據(jù)庫、兼容 MySQL 協(xié)議和 MySQL 生態(tài)等重要特性。目標(biāo)是為用戶提供一站式 OLTP (Online Transactional Processing)、OLAP (Online Analytical Processing)、HTAP 解決方案。TiDB 適合高可用、強一致要求較高、數(shù)據(jù)規(guī)模較大等各種應(yīng)用場景。
優(yōu)勢
純分布式架構(gòu),擁有良好的擴展性,支持彈性的擴縮容
支持 SQL,對外暴露 MySQL 的網(wǎng)絡(luò)協(xié)議,并兼容大多數(shù) MySQL 的語法,在大多數(shù)場景下可以直接替換 MySQL
默認(rèn)支持高可用,在少數(shù)副本失效的情況下,數(shù)據(jù)庫本身能夠自動進(jìn)行數(shù)據(jù)修復(fù)和故障轉(zhuǎn)移,對業(yè)務(wù)透明
支持 ACID 事務(wù),對于一些有強一致需求的場景友好,例如:銀行轉(zhuǎn)賬
具有豐富的工具鏈生態(tài),覆蓋數(shù)據(jù)遷移、同步、備份等多種場景
在內(nèi)核設(shè)計上,TiDB 分布式數(shù)據(jù)庫將整體架構(gòu)拆分成了多個模塊,各模塊之間互相通信,組成完整的 TiDB 系統(tǒng)。對應(yīng)的架構(gòu)圖如下:
應(yīng)用場景
金融行業(yè)場景:金融行業(yè)對數(shù)據(jù)一致性及高可靠、系統(tǒng)高可用、可擴展性、容災(zāi)要求較高。
海量數(shù)據(jù)及高并發(fā)的 OLTP 場景:傳統(tǒng)的單機數(shù)據(jù)庫無法滿足因數(shù)據(jù)爆炸性的增長對數(shù)據(jù)庫的容量要求。TiDB 是一種性價比高的解決方案,采用計算、存儲分離的架構(gòu),可對計算、存儲分別進(jìn)行擴縮容,計算最大支持 512 節(jié)點,每個節(jié)點最大支持 1000 并發(fā),集群容量最大支持 PB 級別。
實時 HTAP 場景:TiDB 適用于需要實時處理的大規(guī)模數(shù)據(jù)和高并發(fā)場景。TiDB 在 4.0 版本中引入列存儲引擎 TiFlash,結(jié)合行存儲引擎 TiKV 構(gòu)建真正的 HTAP 數(shù)據(jù)庫,在增加少量存儲成本的情況下,可以在同一個系統(tǒng)中做聯(lián)機交易處理、實時數(shù)據(jù)分析,極大地節(jié)省企業(yè)的成本。
數(shù)據(jù)匯聚、二次加工處理的場景:TiDB 適用于將企業(yè)分散在各個系統(tǒng)的數(shù)據(jù)匯聚在同一個系統(tǒng),并進(jìn)行二次加工處理生成 T+0 或 T+1 的報表。與 Hadoop 相比,TiDB 要簡單得多,業(yè)務(wù)通過 ETL 工具或者 TiDB 的同步工具將數(shù)據(jù)同步到 TiDB,在 TiDB 中可通過 SQL 直接生成報表。