Analytics Accelerator architecture#
このアーキテクチャページでは、アナリティクスアクセラレーターPGAAがトランザクションPostgresと最新のデータレイク間のギャップを埋める方法に関する高レベルの技術概要を提供します。
アーキテクチャの概要#
EDB Analytics Acceleratorは、 Postgresの機能を拡張して、トランザクションOLTPおよび分析OLAPワークロード用の統合プラットフォームを作成します。システムは、3つの基本原則で動作します。弾力的なスケーリングのためのコンピューティングとストレージの分離、ホットおよびコールドデータ層にわたる透過的なクエリアクセス、およびオープンテーブルフォーマットとのネイティブ互換性。
コアコンポーネント#
PostgresアナリティクスアクセラレーターPGAA#
PGAA拡張機能はPostgresクエリプランナーにフックして、分析エンジンにオフロードできるクエリを特定します。分析テーブルのメタデータを管理し、Postgresプロセスとクエリ実行プログラム間の通信を調整します。
PGFSストレージの抽象化#
PostgresファイルシステムPGFSは、オブジェクトストレージの統合抽象化レイヤーとして機能し、個々のクラウドプロバイダープロトコルの複雑さをマスクしながら、PostgresがAWS S3、GCS、およびAzure Blob Storageとシームレスに対話できるようにします。 IAMロールとHMACキーを介して安全な認証を管理し、自動再試行と接続プーリングでネットワークの復元力を確保し、リモートファイルの場所とスキーマをキャッシュすることによりメタデータのオーバーヘッドを削減することにより、パフォーマンスと信頼性を最適化します。
Executorエンジン#
``Seafowl`` は、PGAAのデフォルトのDataFusionベースのクエリエンジンであり、ステートレスアーキテクチャを利用して、レイクハウスノードは、ローカルデータのストレージまたは移動のオーバーヘッドなしで動的にコンピューティングをスケールアップまたはダウンできます。分析ワークロード専用に設計されたベクトル化実行エンジンとして、標準のPostgresで使用される従来の行ごとのアプローチではなく、列型バッチでデータを処理することにより、CPUキャッシュ効率を最大化します。
Postgresインスタンスは、Apache Arrow Flightを使用してSeafowl
エンジンと通信します。これは、大規模なデータ転送のために設計された高性能RPCフレームワークです。
Arrowを使用することにより、PGAAは最小限のシリアル化オーバーヘッドでデータベースとクエリエンジン間で列状データを移動できます。
Seafowl は高速SQLのデフォルトのエグゼキュータですが、PGAAは Spark
Connect
もサポートしています。これにより、組織は非常に複雑なETL変換にApache
Sparkを活用しながら、使い慣れたPostgresワイヤプロトコルを介してデータにアクセスできます。
クエリ実行モード#
分析テーブルに対してクエリが実行されると、PGAAはクエリ構造とデータの場所に基づいて、最も効率的なスキャンモードを自動的に選択します。
DirectScan クエリーは完全にSeafowl
エンジンにオフロードされます。 Seafowl
は、オブジェクトストレージからリモートファイルを直接読み取り、すべてのロジックフィルタリング、集計、および結合を処理し、最終的な結果セットのみをPostgresに返します。このモードは、ソースでベクトル化された実行を利用することにより、最大のパフォーマンスを提供します。
CompatScan
このモードは、クエリがベクトル化エンジンでまだサポートされていない機能を必要とする場合、またはリモートレイクハウスデータをローカルのPostgresテーブルに結合する場合に使用されます。このシナリオでは、Seafowl
はリモートデータで初期フィルタリングと投影を実行し、これらの最適化された結果をPostgresにストリーミングして、最終的な結合または複雑な処理をローカルで完了します。