TiDB學習筆記

2021-09-12 17:51:10 字數 2368 閱讀 5507

上週在做分庫分表技術調研和驗證的時候,無意間看到了tidb,意識到這應該是我們需要的終極解決方案,所以這週就花了些時間,了解了一下並且通過docker compose搭了demo試用了一下,感覺還是非常不錯的。

ps:oltp與olap

資料處理大致可以分成兩大類:聯機事務處理oltp(on-line transaction processing)、聯機分析處理olap(on-line analytical processing)。

oltp是傳統的關係型資料庫的主要應用,主要是基本的、日常的事務處理,例如銀行交易。強調資料庫記憶體效率,強調記憶體各種指標的命令率,強調繫結變數,強調併發操作

olap是資料倉儲系統的主要應用,支援複雜的分析操作,側重決策支援,並且提供直觀易懂的查詢結果。 則強調資料分析,強調sql執行市場,強調磁碟i/o,強調分割槽等。

大多數情況下,無需修改**即可從 mysql 輕鬆遷移至 tidb,分庫分表後的 mysql 集群亦可通過 tidb 工具進行實時遷移。

通過簡單地增加新節點即可實現 tidb 的水平擴充套件,按需擴充套件吞吐或儲存,輕鬆應對高併發、海量資料場景。

tidb 100% 支援標準的 acid 事務。

相比於傳統主從 (m-s) 複製方案,基於 raft 的多數派選舉協議可以提供金融級的 100% 資料強一致性保證,且在不丟失大多數副本的前提下,可以實現故障的自動恢復 (auto-failover),無需人工介入。

tidb 作為典型的 oltp 行存資料庫,同時兼具強大的 olap 效能,配合 tispark,可提供一站式 htap 解決方案,乙份儲存同時處理 oltp & olap,無需傳統繁瑣的 etl 過程。

tidb 是為雲而設計的資料庫,支援公有雲、私有雲和混合雲,使部署、配置和維護變得十分簡單。

可以看出 tidb 是 spanner 理念的乙個完美實踐,乙個 tidb 集群由 tidb、pd、tikv 三個元件構成。

tikv server:負責資料儲存,是乙個提供事務的分布式 key-value 儲存引擎;

pd server:負責管理排程,如資料和 tikv 位置的路由資訊維護、tikv 資料均衡等;

tidb server:負責 sql 邏輯,通過 pd 定址到實際資料的 tikv 位置,進行 sql 操作。

tidb server 負責接收 sql 請求,處理 sql 相關的邏輯,並通過 pd 找到儲存計算所需資料的 tikv 位址,與 tikv 互動獲取資料,最終返回結果。

tidb server 是無狀態的,其本身並不儲存資料,只負責計算,可以無限水平擴充套件,可以通過負載均衡元件(如lvs、haproxy 或 f5)對外提供統一的接入位址。

placement driver (簡稱 pd) 是整個集群的管理模組,其主要工作有三個:一是儲存集群的元資訊(某個 key 儲存在哪個 tikv 節點);二是對 tikv 集群進行排程和負載均衡(如資料的遷移、raft group leader 的遷移等);三是分配全域性唯一且遞增的事務 id。

pd 是乙個集群,需要部署奇數個節點,一般線上推薦至少部署 3 個節點。

tikv server 負責儲存資料,從外部看 tikv 是乙個分布式的提供事務的 key-value 儲存引擎。儲存資料的基本單位是 region,每個 region 負責儲存乙個 key range(從 startkey 到 endkey 的左閉右開區間)的資料,每個 tikv 節點會負責多個 region。tikv 使用 raft 協議做複製,保持資料的一致性和容災。副本以 region 為單位進行管理,不同節點上的多個 region 構成乙個 raft group,互為副本。資料在多個 tikv 之間的負載均衡由 pd 排程,這裡也是以 region 為單位進行排程

tispark 作為 tidb 中解決使用者複雜 olap 需求的主要元件,將 spark sql 直接執行在 tidb 儲存層上,同時融合 tikv 分布式集群的優勢,並融入大資料社群生態。至此,tidb 可以通過一套系統,同時支援 oltp 與 olap,免除使用者資料同步的煩惱。

TiDB 學習 整體架構

這段時間學習了tidb,現抽空整理了一下。tidb 主要分三部分 tidb servers sql 層 pd servers tikv cluster 即儲存引擎層 tidb 儲存的資料報括三部分 表的元資料,表的row,索引資料。對於 index,tidb 不止需要支援 primary index...

tidb和mysql導資料 TIDB資料遷移

使用 mydumper loader 全量匯出匯入資料 將 mysql 的資料遷移到 tidb,tidb完全相容 mysql 協議和生態,遷移便捷 使用官方提供的遷移工具 wget wget 檢查檔案完整性,返回 ok 則正確 sha256sum c tidb enterprise tools la...

Tidb體驗記錄

一直在尋找分布式資料庫解決方案,有看過mycat,mycat是乙個資料庫中間層產品,通過資料庫分割槽技術能提供乙個理論上無限擴充套件的大資料庫,背後核心還是mysql,我感覺不是終極解決方案,但可以算作是過度方案。tidb進入我的視野,覺得思路比較有趣,對外以mysql 協議提供關聯式資料庫儲存服務...