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

Hologres:QE

最終更新日:Jan 11, 2025

このトピックでは、Hologresで使用されるクエリエンジン(QE)の利点と、Hologresでのクエリの処理方法について説明します。

利点

Alibaba Cloudによって開発されたHologres QEは、最新のビッグデータテクノロジーをサポートし、あらゆる種類のクエリを処理する際に高いパフォーマンスを提供します。Hologres Query Engine(HQE)は、Hologres QEの主要モジュールです。Hologres QEには、次の利点があります。

  • 分散実行

    Hologres QEは、ストレージ分離アーキテクチャと連携する分散実行モデルです。実行プランは、非同期オペレーターで構成される有向非巡回グラフ(DAG)で表されます。実行プランは、さまざまな複雑なクエリを表すことができ、Hologresのデータストレージモデルに適合します。このように、クエリオプティマイザ(QO)は、さまざまな最適化テクノロジーに基づいてクエリを簡単に最適化できます。

  • 完全非同期実行

    Hologres QEは、エンドツーエンドの完全非同期フレームワークを提供し、高並列システムのボトルネックを解消し、リソースを最大限に活用できます。これにより、ストレージ分離アーキテクチャによって引き起こされる読み取りレイテンシの影響を最小限に抑えます。

  • ベクトル化と列指向処理

    Hologres QEは、可能な限り、オペレーターでベクトル化された方法でデータを処理します。Hologres QEは、ストレージエンジン(SE)と緊密に統合されています。さまざまなインデックスを最大限に活用するために、柔軟な実行モデルが構築されています。不要なデータの読み取りや計算を防ぐために、ベクトル化とマテリアライゼーションは可能な限り遅延されます。

  • 適応型増分処理

    Hologres QEは、定期的なリアルタイムデータに対して適応型増分処理を実装します。

  • 特定のクエリの最適化

    Hologres QEは、特定のクエリに対して独自の最適化を提供します。

クエリ実行プロセス

Hologres QEには複数のワーカーが含まれています。次の図は、ワーカーがクライアントによって開始されたクエリを実行する方法を示しています。Query execution process

クライアントがSQLクエリを開始した後、クエリは次のプロセスで実行されます。

  1. フロントエンド(FE)は、SQLクエリを認証および解析し、Hologres QEのさまざまなモジュールにSQLクエリを配布します。

  2. Hologres QEは、SQLクエリの特性に基づいて実行パスを選択します。

    • SQLクエリがポイントクエリの場合、FEはSQLクエリをFixed QEに配布して、QOをスキップすることでデータを取得します。これにより、実行パスが短縮され、クエリのパフォーマンスが向上します。この実行パスは、固定プランと呼ばれます。 HBaseのキーバリュークエリと同様のポイントクエリ、およびポイント書き込みは、固定プランを使用して処理されます。

  • SQLクエリがオンライン分析処理(OLAP)クエリの場合、FEはSQLクエリをQOに配布します。QOはSQLクエリを解析し、実行プランを生成します。実行プランには、オペレーター実行の推定コスト、統計、絞り込まれたクエリ範囲などの情報が含まれます。 QOは、実行プランに基づいて、HQE、PostgreSQL Query Engine(PQE)、Seahawks Query Engine(SQE)、またはHive Query Engine(Hive QE)を使用してオペレーターを計算することを決定します。

    次の内容は、HQE、PQE、およびSQEについて説明しています。

    • Hologres Query Engine(HQE)

      Alibaba Cloudによって開発されたHQEは、スケーラブルな超並列処理(MPP)アーキテクチャを使用して、完全な並列コンピューティングを実装します。 HQEはベクトル化演算子を使用してCPUを最大限に活用し、究極のクエリパフォーマンスを実現します。 HQEは、Hologres QEの主要モジュールです。

    • PostgreSQL Query Engine(PQE)

      PQEは、PostgreSQLとの互換性を提供します。 PQEは、PostGISや、PL / Java、PL / SQL、またはPL / Pythonで記述されたユーザー定義関数(UDF)など、さまざまなPostgreSQL拡張機能をサポートしています。 HQEでサポートされていない関数と演算子は、PQEを使用して実行できます。 HQEは各バージョンで継続的に最適化されています。最終的な目標は、PQEのすべての機能を統合することです。

    • Seahawks Query Engine(SQE)

      SQEを使用すると、HologresをMaxComputeにシームレスに接続できます。これにより、データを移行またはインポートすることなく、あらゆる種類のMaxComputeファイルへの高パフォーマンスアクセスが提供されます。これにより、Hologresはハッシュテーブルや範囲クラスターテーブルなどの複雑なテーブルにアクセスし、PBレベルのバッチデータのインタラクティブ分析を実装することもできます。

  • Hologres QEが正しい実行プランを決定した後、Hologres QEはSEを使用してデータを取得し、異なるシャードからのデータをマージして、クエリ結果をクライアントに返します。