ApsaraDB RDS の DuckDB ベースの分析読み取り専用インスタンスは、カラムナストレージとベクトル化を利用して、複雑な分析クエリのパフォーマンスを最大 100 倍向上させます。これにより、大規模なデータシナリオでリアルタイム分析を提供し、企業がデータに基づいた意思決定を迅速に行えるよう支援します。
製品紹介
DuckDB ベースの分析読み取り専用インスタンスには、以下の特徴を持つ DuckDB エンジンが組み込まれています。
高性能な分析:カラムナストレージ、JIT (Just-In-Time) コンパイル、ベクトル化実行、効率的なメモリ管理、および並列処理をサポートします。
MySQL との高い互換性:MySQL の構文とデータ形式との高い互換性を持ちます。元の検索文を変更することなく、効率的に結果を取得できます。
データ同期メカニズム:
既存データ同期:DuckDB ベースの分析読み取り専用インスタンスを作成すると、システムはプライマリインスタンスから既存データを同期し、自動的に DuckDB エンジン形式に変換します。
増分データ同期:DuckDB ベースの分析読み取り専用インスタンスの作成後、プライマリインスタンスからの増分データは、MySQL ネイティブのバイナリログレプリケーションを使用して、リアルタイムで分析読み取り専用インスタンスに同期されます。データは RDS 内で流れ、外部のデータ同期ツールは不要です。詳細については、「DuckDB ベースの分析インスタンスの技術原理」をご参照ください。
利用シーン
集約と分析:ログデータなどの集約と分析において、DuckDB ベースの分析読み取り専用インスタンスは効率的な集約クエリを提供します。
複数テーブルの JOIN クエリ:複数テーブルの
JOINクエリを使用するサービスにおいて、このインスタンスタイプは MySQL の分析パフォーマンスを大幅に向上させることができます。
DuckDB ベースの分析読み取り専用インスタンス、標準の読み取り専用インスタンス、OLAP データベースの比較
複雑なクエリに使用する場合、DuckDB ベースの分析読み取り専用インスタンスは、プライマリインスタンス、標準の読み取り専用インスタンス、または OLAP データベースと比較して、以下の利点を提供します。
高性能:InnoDB エンジンと比較して、複雑なクエリのパフォーマンスが 100 倍向上します。
高い互換性:MySQL プロトコルとデータ型に 100% 互換です。SQL 構文とデータ定義言語 (DDL) とも高い互換性を持ちます。
効率的で安定したデータ同期:自己構築のネイティブバイナリログレプリケーションチャネルを使用し、より安定かつ効率的な同期リンクを実現します。データ同期に追加料金はかかりません。
リソースの隔離:DuckDB ベースの分析読み取り専用インスタンスが複雑な分析クエリを処理し、プライマリインスタンスと標準の読み取り専用インスタンスがトランザクション処理を処理します。リソースは隔離されており、互いに影響しません。
比較項目 | DuckDB ベースの分析読み取り専用インスタンス | 読み取り専用インスタンス | OLAP データベース | |
ユースケース | 複雑な分析クエリ | トランザクション処理 | 複雑な分析クエリ | |
分析クエリのパフォーマンス | 強力 | 低い | 強力 | |
データ同期方法 | ネイティブバイナリログレプリケーション | ネイティブバイナリログレプリケーション | DTS データ同期リンク | |
MySQL 互換性 | データ型 | 完全互換 | 完全互換 | 非互換 (フィールドマッピングが必要) |
SQL 構文 | 高い互換性 (99.9% 以上) | 完全互換 | 非互換 (SQL の再書き込みが必要) | |
DDL | 高い互換性 | 完全互換 | 部分的に互換 | |
運用保守コスト | 低い (統合インスタンス) | 低い (統合インスタンス) | 高い (データベースと同期リンクの追加メンテナンスが必要) | |
付録:DuckDB ベースの分析読み取り専用インスタンスのパフォーマンステスト
以下のセクションでは、データベースの複雑なクエリパフォーマンスを評価する標準的な TPC-H ベンチマークを使用して、DuckDB ベースの分析読み取り専用インスタンスの分析クエリパフォーマンスを示します。
ステージング環境
データセット:TPC-H sf-100 データセットを使用しました。データサイズは 100 GB です。データは DuckDB の公式サイトから入手しました。
実行環境:各データベースは、同じ仕様の ECS ホスト (32 コア CPU、128 GB メモリ、ストレージに ESSD (エンタープライズ SSD)) で実行されました。これにより、一貫したテスト環境が保証されます。
比較対象:標準の ApsaraDB RDS for MySQL インスタンス (バージョン 8.0.36、InnoDB エンジン) と ClickHouse Community Edition (バージョン 25.3)。
テスト方法:クエリ結果の一貫性を確保するため、各データベースで最初に 3 回のプリフェッチラウンドを実行し、その結果は集計に含めませんでした。その後、3 回の公式テストラウンドを実行し、3 回の平均値を最終的なパフォーマンス結果としました。
テスト結果
以下の表は、TPC-H sf-100 シナリオにおける DuckDB ベースの分析用読み取り専用インスタンス、ApsaraDB RDS for MySQL インスタンス (InnoDB エンジン)、および ClickHouse インスタンスでの各クエリの実行時間を示しています。
クエリ ID | 実行時間 (秒) | ||
DuckDB ベースの分析用読み取り専用インスタンス | 標準 ApsaraDB RDS for MySQL インスタンス (InnoDB エンジン) | ClickHouse | |
q1 | 0.92 | 1134.25 | 3.47 |
q2 | 0.15 | 1800 | 1.52 |
q3 | 0.53 | 802.94 | 3.65 |
q4 | 0.46 | 1000.45 | 2.77 |
q5 | 0.5 | 1800 | 5.38 |
q6 | 0.22 | 566.73 | 0.73 |
q7 | 0.59 | 1800 | 6.06 |
q8 | 0.68 | 1800 | 6.99 |
q9 | 1.44 | 1800 | 13.29 |
q10 | 0.91 | 894.35 | 3.22 |
q11 | 0.11 | 79.63 | 1.1 |
q12 | 0.44 | 734.35 | 1.69 |
q13 | 1.59 | 454.15 | 5.85 |
q14 | 0.38 | 574.07 | 0.83 |
q15 | 0.31 | 568.43 | 1.53 |
q16 | 0.32 | 63.56 | 0.52 |
q17 | 0.89 | 1800 | 7.96 |
q18 | 1.59 | 1800 | 3.11 |
q19 | 0.8 | 1800 | 2.96 |
q20 | 0.51 | 1800 | 3.38 |
q21 | 1.64 | 1800 | メモリ不足 |
q22 | 0.33 | 361.4 | 4 |
合計 | 15.31 | 25234.31 | 80.01 |
テストの結論
DuckDB ベースの分析読み取り専用インスタンス vs. ApsaraDB RDS for MySQL インスタンス (InnoDB エンジン)


TPC-H テストにおいて、ApsaraDB RDS for MySQL インスタンス (InnoDB エンジン) の合計実行時間は 25,234.31 秒でしたが、DuckDB ベースの分析読み取り専用インスタンスの合計実行時間はわずか 15.31 秒でした。これは 1,000 倍以上のパフォーマンス向上を示しています。ApsaraDB RDS for MySQL インスタンス (InnoDB エンジン) は、複雑なクエリの処理において著しい欠点を示しました。q5、q7、q8、q9、q17、q18、q19、q20、q21 などのクエリはタイムアウトし、完了できませんでした。各タイムアウトは 1,800 秒として記録されています。このことから、DuckDB ベースの分析読み取り専用インスタンスは、大規模なデータ分析クエリタスクにおいて卓越したパフォーマンスを発揮し、複雑なクエリの効率を大幅に向上させることがわかります。
DuckDB ベースの分析読み取り専用インスタンス vs. ClickHouse


ClickHouse の合計実行時間は 80.01 秒でした。これに対し、DuckDB ベースの分析読み取り専用インスタンスの合計実行時間はわずか 15.31 秒であり、全体的なパフォーマンスで大幅なリードを示しています。ClickHouse は、メモリ不足エラー (
Memory limit exceeded) のため、クエリ q21 を完了できませんでした。残りのクエリでは、DuckDB ベースの分析読み取り専用インスタンスが ClickHouse を大幅に上回り、複雑な分析シナリオにおいてより強力なクエリパフォーマンスと安定性を示しました。