TiDBの概要

TiDB(/’taɪdiːbi:/、「Ti」はTitaniumを表す)は、ハイブリッドトランザクション/分析処理(HTAP)ワークロードをサポートするオープンソースのNewSQLデータベースである。MySQLと互換性があり、水平スケーラビリティ、強い一貫性、高可用性を提供する。TiDBの目標は、OLTP(オンライン・トランザクション処理)、OLAP(オンライン分析処理)、HTAPサービスを扱うワンストップのデータベースソリューションをユーザーに提供することである。TiDBは、高可用性と大規模データの強い一貫性を必要とするさまざまなユースケースに適している。

主な機能

  • 水平スケールアウトとシンプルなスケールイン

    コンピューティングとストレージを分離するTiDBのアーキテクチャ設計により、必要に応じてコンピューティング容量またはストレージ容量をオンラインで個別にスケールアウトまたはスケールインできる。スケーリング処理は、アプリケーションの運用・保守担当者に対して透過的である。

  • 金融グレードの高可用性

    データは複数のレプリカに保存される。データレプリカはMulti-Raftプロトコルを使用してトランザクションログを複製する。トランザクションは、データが大多数のレプリカに正常に書き込まれた場合にのみコミットできる。これにより、少数のレプリカが停止しても強い一貫性と可用性を保証できる。さまざまな災害耐性レベルの要件を満たすため、必要に応じて地理的位置とレプリカ数を構成できる。

  • リアルタイムHTAP

    TiDBは2つのストレージエンジンを提供する。TiKVは行ベースのストレージエンジンであり、TiFlashは列ベースのストレージエンジンである。TiFlashはMulti-Raft Learnerプロトコルを使用してTiKVのデータをリアルタイムに複製し、TiKVの行ベースストレージエンジンとTiFlashの列ベースストレージエンジン間のデータ一貫性を保証する。TiKVとTiFlashは、HTAPのリソース分離の問題を解決するため、必要に応じて別々のシステムにデプロイできる。

  • クラウドネイティブ分散データベース

    TiDBはクラウド向けに設計された分散データベースであり、クラウドプラットフォームに柔軟なスケーラビリティ、信頼性、セキュリティを提供する。ユーザーは変化するワークロード要件に合わせてTiDBを柔軟に拡張できる。TiDBでは、各データに少なくとも3つのレプリカがあり、データセンター全体の停止に耐えられるように異なるクラウド可用性ゾーンに配置できる。TiDB OperatorはKubernetes上でのTiDB管理を支援し、TiDBクラスター運用に関連する作業を自動化する。これにより、マネージドKubernetesを提供するクラウドにTiDBを簡単にデプロイできる。完全マネージド型TiDBサービスであるTiDB Cloudは、クラウドでTiDBの力を活用する最も簡単で経済的、かつ弾力的な方法であり、数回のクリックだけでTiDBクラスターをデプロイして実行できる。

  • MySQL 5.7プロトコルおよびMySQLエコシステムとの互換性

    TiDBはMySQL 5.7プロトコル、MySQLの一般的な機能、MySQLエコシステムと互換性がある。アプリケーションをTiDBへ移行する際、多くの場合はコードを1行も変更する必要がなく、必要であっても少量のコード変更だけで済む。また、TiDBはアプリケーションデータをTiDBへ簡単に移行するための一連のデータ移行ツールを提供する。

ユースケース

  • データの一貫性、信頼性、可用性、スケーラビリティ、耐障害性に対する高い要件がある金融業界のシナリオ

    よく知られているように、金融業界ではデータの一貫性、信頼性、可用性、スケーラビリティ、耐障害性に対して高い要件がある。従来のソリューションでは、同一都市の2つのデータセンターでサービスを提供し、別都市の3つ目のデータセンターは災害復旧用のデータを保持するがサービスは提供しない。このソリューションには、リソース使用率が低く保守コストが高いという欠点があり、RTO(Recovery Time Objective、目標復旧時間)とRPO(Recovery Point Objective、目標復旧時点)も期待を満たしていない。TiDBは複数のレプリカとMulti-Raftプロトコルを使用して、異なるデータセンター、ラック、機器にデータをスケジューリングする。一部の機器で障害が発生すると、システムが自動的に切り替わり、RTO ≤ 30秒、RPO = 0を実現する。

  • ストレージ容量、スケーラビリティ、同時実行性に対する要件が高い、大量データかつ高同時実行のシナリオ

    アプリケーションが急速に成長すると、データも急増する。従来のスタンドアロンデータベースでは、データ容量の要件を満たせない。解決策は、シャーディングミドルウェアまたはTiDBのようなNewSQLデータベースを使用することである。後者は費用対効果が高い。TiDBはコンピューティングとストレージを分離したアーキテクチャを使用するため、コンピューティング容量またはストレージ容量を個別にスケールアウトまたはスケールインできる。コンピューティングレイヤーは最大512ノードをサポートし、各ノードは最大1,000の同時実行をサポートし、クラスターの最大容量はPB(ペタバイト)レベルに達する。

  • リアルタイムHTAPシナリオ

    5G、モノのインターネット、人工知能の急速な成長に伴い、企業が生成するデータは大幅に増加し、数百TB(テラバイト)またはPB規模に達している。従来のソリューションは、OLTPデータベースでオンライントランザクションアプリケーションを処理し、ETL(抽出、変換、ロード)ツールを使用してデータ分析用にOLAPデータベースへデータを複製することである。このソリューションには、ストレージコストが高くリアルタイム性が低い可能性があるという欠点がある。TiDBはv4.0でTiFlash列指向ストレージエンジンを導入した。これはTiKV行ベースストレージエンジンと組み合わせることで、TiDBを真のHTAPデータベースにする。少量の追加ストレージコストで、オンライントランザクション処理とリアルタイムデータ分析の両方を同じシステムで処理できるため、コストを大幅に削減できる。

  • データ集約および二次処理シナリオ

    ほとんどの企業アプリケーションデータは、さまざまなシステムに分散している。アプリケーションが成長するにつれて、意思決定者は会社全体のビジネス状況を把握し、適切なタイミングで意思決定を下す必要がある。この場合、企業は分散したデータを同じシステムに集約し、二次処理を行ってT+0またはT+1レポートを生成する必要がある。従来のソリューションはETLとHadoopを使用することだが、Hadoopシステムは複雑で、運用・保守およびストレージコストが高い。Hadoopと比較すると、TiDBははるかにシンプルである。TiDBが提供するETLまたはデータ移行ツールを使用して、データをTiDBに複製できる。レポートはSQL文を使用して直接生成できる。