RDS PostgreSQL で複雑なクエリを実行し、高速な結果を得るには、rds_duckdb 分析アクセラレーションエンジンをご利用ください。
概要
デフォルトでは、RDS PostgreSQL は行指向ストレージを使用しており、オンライントランザクション処理(OLTP)シナリオにおける高頻度のポイント検索および更新に最適です。ただし、大量のデータをスキャンする必要があるオンライン分析処理(OLAP)シナリオでは、そのパフォーマンスが制限されます。rds_duckdb 拡張機能は、DuckDB 分析エンジンを RDS PostgreSQL に統合します。これにより、以下の機能を通じて複雑なクエリを高速化します。
列指向ストレージ:データは列単位で整理・保存されます。一部の列からの集計データを取得するクエリでは、関連する列のみを読み取るため、I/O オーバーヘッドを大幅に削減できます。
ベクトル化実行:エンジンはデータをバッチ単位で処理し、CPU の SIMD 命令およびキャッシュ局所性を最大限に活用します。この方式により、従来のタプル単位実行(Volcano モデル)と比べて数倍から数十倍のパフォーマンス向上を実現します。
非侵襲的な使用方法:既存の SQL ステートメントを一切変更せずに、アプリケーションをアクセラレーションパスへスムーズに移行できます。
ユースケース
複数テーブルの JOIN、GROUP BY 句、集計計算を含む複雑なレポートおよびアドホッククエリ。
単一テーブルが大規模であり、クエリがその一部の列のみを対象とするデータ分析および統計シナリオ。
同一データセット上でオンライントランザクションと分析クエリの両方をサポートする必要があるハイブリッドトランザクショナル/分析処理(HTAP)ワークロードシナリオ。
有効化オプション
分析アクセラレーション機能を使用する前に、インスタンスを設定する必要があります。ワークロードの特性に応じて、以下の 2 つのオプションのいずれかを選択してください。
有効化方法 | リソースモード | 推奨シナリオ | ドキュメント |
プライマリインスタンスでの分析アクセラレーションの有効化 | PostgreSQL と DuckDB がプライマリインスタンスのリソースを共有します。このオプションは導入が簡単でコスト効率に優れています。 | TP ワークロードが軽量なビジネス、または AP クエリがプライマリインスタンスのリソースをある程度消費しても許容できる場合に適しています。また、アクセラレーション性能を迅速に検証したい場合にも理想的です。 | |
DuckDB ベースの分析インスタンス | 専用の DuckDB ベースの分析インスタンスを別途デプロイし、プライマリインスタンスとの間でデータ同期を実行します。これにより、AP および TP ワークロード間で完全な物理的リソース分離を実現します。 | オンラインサービスのレイテンシーに敏感で、大規模な AP クエリを処理しながらも TP の安定性を保証する必要があるコアビジネス向けです。 |
どちらのオプションを選べばよいか判断が難しい場合は、DuckDB ベースの分析インスタンスから開始することを推奨します。この方法では分析ワークロードをオンライントランザクションから分離できるため、AP クエリがコアビジネスのパフォーマンスや安定性に影響を与えることを防げます。
使用方法
HTAP アクセラレーション機能を有効化した後は、rds_duckdb 拡張機能を使用して列指向テーブルを作成し、データをインポートしてクエリを実行します。構文、テーブル管理操作、クエリに関する詳細な手順については、「AP アクセラレーションエンジン(rds_duckdb)」をご参照ください。
性能テスト
rds_duckdb が複雑なクエリに対して提供するアクセラレーション効果を定量的に評価するには、標準的な TPC-H ベンチマークをご参照ください。このベンチマークでは、テストデータの準備、クエリの実行、結果の比較を行うための完全な手順が提供されています。詳細については、「AP アクセラレーションエンジン(rds_duckdb)性能テスト」をご参照ください。
無料トライアル
rds_duckdb の主要機能を迅速に体験するには、無料トライアルをご利用ください。このトライアルでは、追加リソースを購入することなく、シンプルな AP クエリの検証が可能です。詳細については、「RDS PostgreSQL AP アクセラレーションエンジン(rds_duckdb)の無料トライアル」をご参照ください。