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

AnalyticDB:クエリ実行モード

最終更新日:Sep 29, 2024

AnalyticDB for MySQL Data Warehouse Editionは、インタラクティブまたはバッチモードのクエリをサポートしています。 2つのクエリ実行モードをリソースグループとともに使用して、ハイブリッドロードを実装できます。

背景情報

AnalyticDB for MySQLは、大量のデータを高い同時実行性で分析するためにAlibaba Cloudによって開発されたリアルタイムオンライン分析処理 (OLAP) サービスです。 AnalyticDB for MySQLは、複数のディメンションにわたる大量のデータを即座に分析し、ビジネスに関するデータ駆動型の洞察を提供できます。 AnalyticDB for MySQLは、有向非巡回グラフ (DAG) と大規模並列処理 (MPP) を統合する実行エンジンを利用します。 これにより、AnalyticDB for MySQLは、メモリを使用してデータを高速に計算できます。 分析クエリには、低レイテンシのリアルタイム分析クエリや高スループットの抽出、変換、ロード (ETL) クエリなど、さまざまな負荷が含まれます。 メモリのみに基づいて、低レイテンシでリアルタイム分析クエリを実行できます。 ETLクエリは、クエリのレイテンシに対する要件が低いが、処理コストが低く、スループットが高い。

上記の問題に対処するために、AnalyticDB for MySQL Data Warehouse Editionは、メモリのみをコンピューティングに使用する元のインタラクティブモードに基づくバッチモードを提供しています。 対話型モードとは異なり、バッチモードを使用してクエリジョブをバッチで実行できます。 メモリが不足している場合、各タスクはメモリデータをディスクに転送できます。 これにより、コンピューティングコストが削減され、データ処理能力が向上します。

インタラクティブモード

AnalyticDB for MySQLがユーザーからクエリを受信した後、クエリを解析し、オプティマイザを使用して実行計画を生成します。 実行エンジンは、実行プランを受け取り、対応する分散実行タスクを生成する。 これらの分散実行タスクは、実行プランに記述されているロジックに基づいて計算されます。 実行エンジンは、これらの分散実行タスクをスケジュールし、管理する。

インタラクティブモードでは、クエリのすべての分散実行タスクがスケジュールされ、同時に実行されます。 各タスクはメモリのみに基づいて計算されます。 データは上流のタスクから下流のタスクへパイプライン方式で転送される。

インタラクティブモードは、低レイテンシを必要とするリアルタイム分析クエリに適しています。

バッチモード

バッチモードでは、実行エンジンは、依存関係に基づいて分散実行タスクをバッチでスケジュールします。 タスクの計算中にメモリが不足している場合、データは自動的にディスクに転送され、データ処理能力が向上します。 計算中に生成された中間データもディスクに書き込まれる。 下流のタスクが実行されるようにスケジュールされると、中間データが計算のためにディスクから読み取られる。

バッチモードは、ETLクエリなど、実行に長時間を要する大量のクエリに適しています。

デフォルトのクエリ実行モード

エディション

モード

デフォルトのクエリ実行モード

バッチモード

データウェアハウス版

予約モード

インタラクティブ

非対応

弾性モード

対応

クエリ実行モードの変更

  • AnalyticDB for MySQLクラスターのクエリ実行モードを変更できます。

    • 次のステートメントを実行して、AnalyticDB for MySQLクラスターのクエリ実行モードを対話型に変更します。

      set adb_config query_type=interactive
    • 次のステートメントを実行して、AnalyticDB for MySQLクラスターのクエリ実行モードをbatchに変更します。

      set adb_config query_type=batch
      説明

      ほとんどの場合、クラスターではなく、クエリまたはリソースグループのクエリ実行モードをバッチに変更することをお勧めします。

  • リソースグループのクエリ実行モードを変更する方法については、「リソースグループの管理」トピックの「リソースグループの変更」をご参照ください。

ハイブリッド荷重

AnalyticDB for MySQLリソースグループは、クラスター内の複数のテナントをサポートします。 クラスター内のリソースグループに対して、さまざまなクエリ実行モードを設定できます。 このようにして、クラスタは同時にハイブリッド負荷を処理することができる。 詳細については、「リソースグループの概要」をご参照ください。