TIDB介紹 新數據庫趨勢


 

TIDB是什么? 
TIDB 受谷歌Spanner和F1的論文啟發的new sql數據庫,這類數據庫不僅具有NoSQL對海量數據的存儲管理能力,還保持了傳統數據庫支持ACID和SQL等特性,同類數據庫還包括巨杉數據庫。

TiDB的原理與實現 
TiDB 架構是 SQL 層和 KV 存儲層分離,相當於 innodb 插件存儲引擎與 MySQL 的關系。

有了 TiKV,TiDB 層只需要實現 SQL 層,再加上 MySQL 協議的支持,應用程序就能像訪問 MySQL 那樣去訪問 TiDB 了

TiDB的成功案例 
目前今日頭條,摩拜單車、鳳凰網、游族網絡等公司采用了TIDB數據庫。 
這些企業采用TIDB的主要原因包括:

1. 兼容mysql
2. 分布式存儲,擴展能力強。
3. 支持OLTP
4. 可以直接利用TiSpark做實時分析。
5. 穩定的高可用性
6. 無阻塞在線DDL

 

采用TIDB的公司需求具有的共同點:

1. 擁有數億以上記錄的數據,希望在保持海量數據存儲能力的前提下保留良好的OLTP性能和QPS性能
2. 希望數據庫擁有實時計算的能力

 

TIDB的架構 
TiKV Server:負責數據存儲,是一個提供事務的分布式 Key-Value 存儲引擎; 
PD Server:負責管理調度,如數據和 TiKV 位置的路由信息維護、TiKV 數據均衡等; 
TiDB Server:負責 SQL 邏輯,通過 PD 尋址到實際數據的 TiKV 位置,進行 SQL 操作。

TiDB的特性

1. 水平擴展:包括計算能力和存儲能力。TiDB Server 負責處理 SQL 請求,隨着業務的增長,可以簡單的添加 TiDB Server 節點,提高整體的處理能力,提供更高的吞吐。TiKV 負責存儲數據,隨着數據量的增長,可以部署更多的 TiKV Server 節點解決數據 Scale 的問題。PD 會在 TiKV 節點之間以 Region 為單位做調度,將部分數據遷移到新加的節點上。
2. 高可用:TiDB/TiKV/PD 這三個組件都能容忍部分實例失效,不影響整個集群的可用性

 

TIDB的部署

1. 因 TiDB 和 PD 對磁盤 IO 要求不高,所以只需要普通磁盤即可。
2. TiKV 對磁盤 IO 要求較高。TiKV 硬盤大小建議不超過 500G,以防止硬盤損害時,數據恢復耗時過長。整個 TiDB 架構是面向未來、面向海量數據高並發場景,底層存儲技術(如數據定位 seek)都是針對當前主流的 SSD 進行設計和優化的,不會對傳統的 SATA/SAS 機械硬盤再進行優化。(參考鳳凰網的部署方案)
3. 部署工具使用了 TiDB-Ansible。TiDB-Ansible 是 PingCap 基於 Ansible playbook 功能編寫了一個集群部署工具叫 TiDB-Ansible。使用該工具可以快速部署一個完整的 TiDB 集群(包括 PD、TiDB、TiKV 和集群監控模塊)

 

TIDB的監控方案 
Pincap 團隊給 TiDB 提供了一整套監控的方案,他們使用開源時序數據庫 Prometheus 作為監控和性能指標信息存儲方案,使用 Grafana 作為可視化組件進行展示。(參考今日頭條的方案) 
監控的原理:

1. 在 client 端程序中定制需要的 Metric
2. Push GateWay 來接收 Client Push 上來的數據,統一供 Prometheus 主服務器抓取。
3. AlertManager 用來實現報警機制,使用 Grafana 來進行展示


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM