TiDB の紹介
TiDB (/'taɪdiːbi:/、「Ti」はチタンを表す) は、ハイブリッド トランザクションおよび分析処理 (HTAP) ワークロードをサポートするオープンソースの NewSQL データベースです。 MySQL と互換性があり、水平方向のスケーラビリティ、強力な一貫性、および高可用性を備えています。 TiDB の目標は、OLTP (オンライン トランザクション処理)、OLAP (オンライン分析処理)、および HTAP サービスをカバーするワンストップ データベース ソリューションをユーザーに提供することです。 TiDB は、高可用性と大規模データとの強力な整合性を必要とするさまざまなユース ケースに適しています。
次のビデオでは、TiDB の主な機能を紹介しています。
主な機能
水平方向に簡単にスケールアウトまたはスケールイン
コンピューティングをストレージから分離する TiDBアーキテクチャ設計により、必要に応じてオンラインでコンピューティングまたはストレージ容量を個別にスケールアウトまたはスケールインできます。スケーリング プロセスは、アプリケーションの運用および保守スタッフに対して透過的です。
金融グレードの高可用性
データは複数のレプリカに保存されます。データ レプリカは、Multi-Raft プロトコルを使用してトランザクション ログを取得します。トランザクションは、データが大部分のレプリカに正常に書き込まれた場合にのみコミットできます。これにより、強整合性と、少数のレプリカがダウンした場合の可用性が保証されます。さまざまな災害耐性レベルの要件を満たすために、地理的な場所とレプリカの数を必要に応じて構成できます。
リアルタイム HTAP
TiDB は 2 つのストレージ エンジンを提供しますTiKVは行ベースのストレージ エンジンで、 ティフラッシュは列ベースのストレージ エンジンです。 TiFlash は、Multi-Raft Learner プロトコルを使用して TiKV からのデータをリアルタイムで複製し、TiKV の行ベースのストレージ エンジンと TiFlash の列型ストレージ エンジンの間のデータの一貫性を確保します。 HTAP リソースの分離の問題を解決するために、必要に応じて TiKV と TiFlash を異なるマシンに展開できます。
クラウドネイティブの分散データベース
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 (目標復旧時間) と RPO (目標復旧時点) が期待に応えられないという欠点があります。 TiDB は、複数のレプリカと Multi-Raft プロトコルを使用して、データをさまざまなデータ センター、ラック、およびマシンにスケジュールします。一部のマシンに障害が発生した場合、システムは自動的に切り替えて、システムの RTO ≦ 30 秒および RPO = 0 を保証します。
ストレージ容量、スケーラビリティ、および同時実行性に対する高い要件を伴う大量のデータと同時実行性の高いシナリオ
アプリケーションが急速に成長するにつれて、データが急増します。従来のスタンドアロン データベースでは、データ容量の要件を満たすことができません。解決策は、シャーディング ミドルウェアまたは NewSQL データベース (TiDB など) を使用することです。後者の方が費用対効果が高くなります。 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 ステートメントを使用して直接生成できます。