すべてのプロダクト
Search
ドキュメントセンター

PolarDB:HTAP ベースのリクエストをローストアノードとカラムストアノードに分散する方法

最終更新日:Mar 15, 2025

ビジネスにオンライントランザクション処理(OLTP)サービスとオンライン分析処理(OLAP)サービスの両方が含まれる場合は、データベースプロキシのクラスターエンドポイント機能を使用して、IMCI 機能に基づいて OLAP リクエストをカラムストアノードに、OLTP リクエストをローストアノードに分散できます。

背景情報

PolarDB for MySQL は、次の読み取り専用ノードタイプをサポートしています。

  • 読み取り専用ローストアノード:ローストア機能に基づいて読み取りリクエストを処理します。 ローストアノードは、OLTP 読み取りリクエストを処理する際に、より高いパフォーマンスを提供します。

  • 読み取り専用カラムストアノード:カラムストア機能に基づいて読み取りリクエストを処理します。 カラムストアノードは、複雑な SQL クエリや分析 SQL クエリなど、OLAP 読み取りリクエストを処理する際に、ローストアノードよりも優れたパフォーマンスを発揮します。

説明

デフォルトでは、クラスターには 1 つのプライマリノードと 1 つの読み取り専用ローストアノードが含まれています。 読み取り専用ノードを追加するときに、ローストアノードまたはカラムストアノードを追加することを選択できます。 詳細については、「読み取り専用カラムストアノードを追加する」をご参照ください。

SQL クエリのパフォーマンスを最大化するために、クラスターエンドポイントを設定して、OLAP リクエストをカラムストアノードに、OLTP リクエストをローストアノードに分散できます。

手動リクエスト分散と自動リクエスト分散がサポートされています。

OLTP と OLAP の混在シナリオでの自動リクエスト分散

OLAP リクエストと OLTP リクエストが同じアプリケーションによってデータベースへのアクセスに送信される場合、2 つのタイプのリクエストは、スキャンされた行数に基づいて、カラムストアノードまたはローストアノードに自動的に分散できます。

説明

ローストアノードとカラムストアノード間で自動リクエスト分散を実装するには、クラスターエンドポイントは次のいずれかの要件を満たす必要があります。

  • クラスターエンドポイントの読み取り/書き込みモードが 読み書き に設定されています。

  • クラスターエンドポイントの読み取り/書き込みモードが ReadOnly に設定されており、負荷分散ポリシーが [アクティブリクエストベースの負荷分散] に設定されています。

リクエスト分散ルール:

  • OLTP サービス:ほとんどの場合、読み取りリクエストと書き込みリクエストが含まれます。 すべての書き込みリクエストはプライマリノードによって処理されます。 読み取りリクエストは、読み取り専用ローストアノードまたはプライマリノードによって処理されます。

  • OLAP サービス:ほとんどの場合、読み取りリクエストのみが含まれます。 すべての読み取りリクエストは、読み取り専用カラムストアノードによって処理されます。

自動リクエスト分散ソリューション:

  • プライマリノードと読み取り専用カラムストアノード間のリクエスト分散:プライマリノードはローストアモードでもあるため、OLTP 読み取りリクエストを処理できます。 このソリューションでは、書き込みリクエストと OLTP 読み取りリクエストはプライマリノードに分散されます。 OLAP 読み取りリクエストは、読み取り専用カラムストアノードに分散されます。

  • 読み取り専用ローストアノードと読み取り専用カラムストアノード間のリクエスト分散:このソリューションでは、書き込みリクエストはプライマリノードに分散され、OLTP 読み取りリクエストは読み取り専用ローストアノードまたはプライマリノードに分散され、OLAP 読み取りリクエストは読み取り専用カラムストアノードに分散されます。

自動リクエスト分散ルール:

  • SQL 文の実行コストのしきい値を下回るリクエストは、ローストアノードまたはプライマリノードに分散されます。 複数のローストアノードが使用可能な場合、SLB は宛先ローストアノードを決定します。

  • SQL 文の予想実行コストのしきい値を超えるリクエストは、カラムストアノードに分散されます。 複数のカラムストアノードが使用可能な場合、SLB は宛先カラムストアノードを決定します。

混合下分流

詳細については、「ローストアノードとカラムストアノード間の自動リクエスト分散」をご参照ください。

説明

オプティマイザーによって推定される実行コストは、使用されるサンプリング方法とサンプリング精度のために、実際の値と大きく異なる場合があります。 その結果、一部の低速クエリがローストアノードに自動的に分散される可能性があります。 この問題を防ぐために、システムの適応実行計画切り替えを有効にして、ローストアノードに誤って分散された低速クエリをカラムストアノードに自動的に切り替えることができます。 適応実行計画の切り替えを有効にする方法については、「適応実行計画の切り替え」をご参照ください。

OLTP と OLAP が分離されたシナリオでのローストアノードとカラムストアノード間の手動リクエスト分散

OLAP リクエストと OLTP リクエストが異なるアプリケーションによってデータベースへのアクセスに送信される場合は、アプリケーションごとに異なるクラスターエンドポイントを設定し、ローストアノードとカラムストアノードを異なるクラスターエンドポイントに関連付けてリクエスト分散を実装できます。

リクエスト分散ルール:

  • OLTP サービス:ほとんどの場合、読み取りリクエストと書き込みリクエストが含まれます。 すべての書き込みリクエストはプライマリノードによって処理されます。 読み取りリクエストは、読み取り専用ローストアノードまたはプライマリノードによって処理されます。

  • OLAP サービス:ほとんどの場合、読み取りリクエストのみが含まれます。 すべての読み取りリクエストは、読み取り専用カラムストアノードによって処理されます。

手動リクエスト分散ソリューション(読み書き または 読み取り専用

  • OLTP アプリケーション用に、読み取り専用カラムストアノードに関連付けられていないクラスターエンドポイントを指定します。 これにより、OLTP 読み取りリクエストは、プライマリノードまたは読み取り専用ローストアノードによって処理されます。

  • OLAP アプリケーション用に、読み取り専用カラムストアノードのみに関連付けられているクラスターエンドポイントを指定します。 これにより、OLAP 読み取りリクエストは、読み取り専用カラムストアノードによって処理されます。

独立

詳細については、「ローストアノードとカラムストアノード間の手動リクエスト分散」をご参照ください。

関連トピック

高度な手順