HTAP を調べる
このガイドでは、TiDB Hybrid Transactional and Analytical Processing (HTAP) の機能を調べて使用する方法について説明します。
ノート:
TiDB HTAPを初めて使用し、すぐに使い始めたい場合は、 HTAP のクイック スタートを参照してください。
ユースケース
TiDB HTAPは、急速に増加する大量のデータを処理し、DevOps のコストを削減し、オンプレミスまたはクラウド環境に簡単にデプロイできるため、データ資産の価値をリアルタイムでもたらします。
以下は、HTAP の一般的な使用例です。
ハイブリッド ワークロード
ハイブリッド ロード シナリオでリアルタイムのオンライン分析処理 (OLAP) に TiDB を使用する場合、TiDB のエントリ ポイントをデータに提供するだけで済みます。 TiDB は、特定のビジネスに基づいてさまざまな処理エンジンを自動的に選択します。
リアルタイム ストリーム処理
リアルタイム ストリーム処理シナリオで TiDB を使用する場合、TiDB は常に流れ込むすべてのデータをリアルタイムでクエリできるようにします。同時に、TiDB は高度な並行データ ワークロードとビジネス インテリジェンス (BI) クエリも処理できます。
データハブ
TiDB をデータ ハブとして使用する場合、TiDB は、アプリケーションのデータとデータ ウェアハウスをシームレスに接続することで、特定のビジネス ニーズを満たすことができます。
TiDB HTAPの使用例の詳細については、 PingCAP Web サイトの HTAP に関するブログを参照してください。
アーキテクチャ
TiDB では、オンライン トランザクション処理 (OLTP) 用の行ベース ストレージ エンジンTiKVと、オンライン分析処理 (OLAP) 用の列型ストレージ エンジンティフラッシュが共存し、データを自動的に複製し、強力な整合性を維持します。
アーキテクチャの詳細については、 TiDB HTAPのアーキテクチャを参照してください。
環境の準備
TiDB HTAPの機能を調べる前に、データ量に応じて TiDB と対応するストレージ エンジンを展開する必要があります。データ量が大きい場合 (たとえば 100 T) は、TiFlash Massively Parallel Processing (MPP) を主なソリューションとして使用し、TiSpark を補助的なソリューションとして使用することをお勧めします。
ティフラッシュ
TiFlash ノードのない TiDB クラスターをデプロイした場合は、現在の TiDB クラスターに TiFlash ノードを追加します。詳細については、 TiFlash クラスターをスケールアウトするを参照してください。
TiDB クラスターをデプロイしていない場合は、 TiUP を使用して TiDBクラスタをデプロイするを参照してください。最小限の TiDB トポロジに基づいて、 TiFlashのトポロジーもデプロイする必要があります。
TiFlash ノードの数を選択する方法を決定するときは、次のシナリオを考慮してください。
- 小規模な分析処理とアドホック クエリを使用する OLTP がユース ケースに必要な場合は、1 つまたは複数の TiFlash ノードを展開します。分析クエリの速度を劇的に向上させることができます。
- OLTP スループットが TiFlash ノードの I/O 使用率に大きな圧力をかけない場合、各 TiFlash ノードはより多くのリソースを計算に使用するため、TiFlash クラスタはほぼ線形のスケーラビリティを持つことができます。 TiFlash ノードの数は、予想されるパフォーマンスと応答時間に基づいて調整する必要があります。
- OLTP のスループットが比較的高い場合 (たとえば、書き込みまたは更新のスループットが 1,000 万行/時を超える場合)、ネットワークおよび物理ディスクの書き込み容量が限られているため、TiKV と TiFlash 間の I/O がボトルネックになり、また、ホットスポットを読み書きする傾向があります。この場合、TiFlash ノードの数は解析処理の計算量と複雑な非線形関係にあるため、システムの実際の状況に基づいて TiFlash ノードの数を調整する必要があります。
ティスパーク
- データを Spark で分析する必要がある場合は、TiSpark をデプロイします。具体的なプロセスについては、 TiSpark ユーザーガイドを参照してください。
データ準備
TiFlash がデプロイされた後、TiKV はデータを TiFlash に自動的に複製しません。 TiFlash に複製する必要があるテーブルを手動で指定する必要があります。その後、TiDB は対応する TiFlash レプリカを作成します。
- TiDB クラスタにデータがない場合は、まずデータを TiDB に移行します。詳細については、 データ移行を参照してください。
- TiDB クラスターにアップストリームからのレプリケートされたデータが既にある場合、TiFlash のデプロイ後、データのレプリケーションは自動的に開始されません。 TiFlash に複製するテーブルを手動で指定する必要があります。詳細については、 TiFlash を使用するを参照してください。
情報処理
TiDB では、クエリまたは書き込み要求の SQL ステートメントを入力するだけです。 TiFlash レプリカを含むテーブルの場合、TiDB はフロントエンド オプティマイザを使用して、最適な実行計画を自動的に選択します。
ノート:
TiFlash の MPP モードはデフォルトで有効になっています。 SQL ステートメントが実行されると、TiDB はオプティマイザーを介して MPP モードで実行するかどうかを自動的に決定します。
- TiFlash の MPP モードを無効にするには、システム変数tidb_allow_mppの値を
OFF
に設定します。- クエリ実行のために TiFlash の MPP モードを強制的に有効にするには、 tidb_allow_mppとtidb_enforce_mppの値を
ON
に設定します。- TiDB が特定のクエリを実行するために MPP モードを選択するかどうかを確認するには、 MPP モードの Explain ステートメントを参照してください。
EXPLAIN
ステートメントの出力にExchangeSender
およびExchangeReceiver
演算子が含まれている場合、MPP モードが使用されています。
パフォーマンス監視
TiDB を使用する場合、次のいずれかの方法で TiDB クラスターのステータスとパフォーマンス メトリックを監視できます。
- TiDB ダッシュボード : TiDB クラスターの全体的な実行状況を確認し、読み取りおよび書き込みトラフィックの分布と傾向を分析し、スロー クエリの詳細な実行情報を学習できます。
- 監視システム (Prometheus & Grafana) : PD、TiDB、TiKV、TiFlash、TiCDC、および Node_exporter を含む TiDB クラスター関連コンポーネントの監視パラメーターを表示できます。
TiDB クラスターと TiFlash クラスターのアラート ルールを確認するには、 TiDB クラスターのアラート ルールとTiFlash アラート ルールを参照してください。
トラブルシューティング
TiDB の使用中に問題が発生した場合は、次のドキュメントを参照してください。
また、 Github の問題を作成したり、 アスクトゥグで質問を送信したりすることもできます。
次は何ですか
- TiFlash のバージョン、重要なログ、システム テーブルを確認するには、 TiFlash クラスターを管理するを参照してください。
- 特定の TiFlash ノードを削除するには、 TiFlash クラスターをスケールアウトするを参照してください。