| TiDB | |
|---|---|
| 開発者 | PingCAP Inc. |
| リリース | 2017年10月 15日 (2017-10-15)[ 1 ] |
| 安定放出 | |
| 執筆 | Go (TiDB)、Rust (TiKV) |
| 利用可能 | 英語、中国語 |
| タイプ | NewSQL |
| ライセンス | Apache 2.0 |
| Webサイト | en |
| リポジトリ |
|
TiDB ( / ˈ taɪ diː biː / ; "Ti" はTitaniumの略) は、ハイブリッド トランザクションおよび分析処理 ( HTAP ) ワークロードをサポートするオープンソースのNewSQLデータベースです。[ 3 ] MySQLと互換性があるように設計されており、主に PingCAP によって開発およびサポートされ、Apache 2.0 ライセンスで提供されています。有料製品としても利用可能です。TiDB は、当初、Google の Spanner および F1 論文から設計上のインスピレーションを得ました。[ 4 ] [ 5 ] [ 6 ]
TiDBのリリースノートをすべて参照してください。
TiDBは、新しいノードを追加することで、SQL処理能力とストレージ容量の両方を拡張できます。
TiDBはアプリケーションに対してMySQL 8.0サーバーのように動作します。ユーザーは既存のMySQLクライアントライブラリをすべて引き続き使用できます。[ 7 ] TiDBのSQL処理レイヤーはゼロから構築されているため、MySQLのフォークではありません。[ 8 ]
TiDBは内部的にテーブルを「リージョン」と呼ばれる小さな範囲ベースのチャンクに分割します。[ 9 ]各リージョンのデフォルトサイズは約100MBで、TiDBは内部的に2フェーズコミットを使用して、リージョンがトランザクション的に一貫した方法で維持されるようにします。
TiDB はクラウドで動作するように設計されています。TiDB のストレージ レイヤーである TiKV は、2018 年 8 月にサンドボックス レベルのプロジェクトとしてCloud Native Computing Foundation (CNCF) のメンバー プロジェクトとなり[ 10 ]、2019 年 5 月にインキュベーション レベルのホスト プロジェクトになりました[ 11 ]。TiKV は 2020 年 9 月に CNCF を卒業しました[ 12 ]。
TiDBは、オンライン・トランザクション処理( OLTP)とオンライン分析処理(OLAP )の両方のワークロードをサポートできます。TiDBには、行ストアであるTiKVと列ストアであるTiFlashという2つのストレージエンジンがあります。
TiDBはRaftコンセンサスアルゴリズム[ 13 ]を使用して、Raftグループ内のストレージ全体でデータが利用可能かつ複製されることを保証します。障害が発生した場合、Raftグループは障害が発生したメンバーの新しいリーダーを自動的に選出し、TiDBクラスタを自己修復します。
TiDBにはベクトルデータ型とベクトルインデックスがあります。[ 14 ]これにより、TiDBはAI検索拡張生成アプリケーションでベクトルデータベースとして使用できます。
TiDB は、TiDB Operator を使用してKubernetes対応のクラウド環境にデプロイできます。 [ 15 ] Operator は、Kubernetes アプリケーションをパッケージ化、デプロイ、管理する方法です。ステートフルなワークロードを実行するように設計されており、2016 年にCoreOSによって初めて導入されました。 [ 16 ] TiDB Operator [ 17 ]は、元々は PingCAP によって開発され、2018 年 8 月にオープンソース化されました。[ 18 ] TiDB Operator は、ラップトップ、[ 19 ] Google Cloud Platformの Google Kubernetes Engine、[ 20 ]およびAmazon Web Servicesの Elastic Container Service for Kubernetes [ 21 ]に TiDB をデプロイするために使用できます。
TiDB 4.0では、クラスタの運用と保守のためのツールであるTiUPが導入されました。これにより、ユーザーはいくつかのコマンドでTiDBクラスタを迅速にインストールおよび構成できます。[ 22 ]
TiDBには、既存のMySQLおよびMariaDBユーザー向けに、データの複製と移行を支援する一連のオープンソースツールが用意されています。
TiDBデータ移行(DM)は、既にシャーディングされたMySQLまたはMariaDBテーブルからTiDBにデータを複製するのに適しています。[ 23 ] DMの一般的な使用例は、MySQLまたはMariaDBテーブルをTiDBに接続し、TiDBをほぼスレーブとして扱い、このTiDBクラスタ上で分析ワークロードをほぼリアルタイムで直接実行することです。
Backup & Restore (BR) は、TiDB クラスタデータの分散バックアップおよびリストアツールです。[ 24 ]
Dumplingは、TiDBまたはMySQLに保存されているデータをエクスポートするデータエクスポートツールです。これにより、ユーザーはTiDBまたはMySQLから論理的な完全バックアップまたは完全ダンプを作成できます。[ 25 ]
TiDB Lightning は、大規模な MySQL ダンプを新しい TiDB クラスターに高速で完全にインポートすることをサポートするツールです。このツールは、テストや本番環境への移行を高速化するために、最初は空の TiDB クラスターに大量のデータを格納するために使用されます。インポート速度の向上は、SQL ステートメントをキーと値のペアに解析し、RocksDBにソート済み文字列テーブル (SST) ファイルを直接生成することによって実現されます。[ 26 ] [ 27 ]
TiCDCは、TiDBからApache Kafkaなどの他のシステムにデータをストリーミングする変更データキャプチャツールです。