Azure Cosmos DB ドライバーのパフォーマンス比較
この記事では、CData MongoDB ドライバーのパフォーマンスを他社の同等ドライバーと比較します。Azure Cosmos DB インスタンス(MongoDB API 用に設定)からデータをクエリし、結果セットを処理するのにかかる時間を測定して、読み取りパフォーマンスを比較しました。
テストマシンの仕様は以下のとおりです。
オペレーティングシステム:Windows 10
プロセッサー:Intel® CoreTM 2 Quad CPU Q8400 @ 2.66GHz
メモリ(RAM):6.00 GB
システムの種類:64 ビットオペレーティングシステム
ドライバー同士を比較しているため、マシン自体のパフォーマンスはそれほど重要ではありません。重要なのは、ドライバー間の相対的な比較です。
データ
再現可能な比較を行うために、MongoDB 社が公開しているサンプルの restaurants データセットをコピーしました。クエリ対象のテーブルの詳細は以下のとおりです。
| テーブル | 行数 |
|---|---|
| restaurants | 25,359 |
| restaurants_large | 1,193,949 |
クエリ
この調査の主な目的は、ドライバーの相対的なパフォーマンスを比較することでした。各ドライバーで同じクエリを実行することでこれを実現しました。Cosmos DB からの単純な読み取りを超えた実際のデータ処理をシミュレートするために、各行の値を配列に格納しました(配列は行ごとに置き換えられます)。クエリは以下のとおりです。
- SELECT borough, cuisine, name, restaurant_id FROM restaurants
- SELECT borough, cuisine, name, restaurant_id FROM restaurants_large
結果
以下は、ドライバー/プラットフォームごとの各クエリのパフォーマンスです。
ADO.NET プロバイダー / C# ドライバー
CData と MongoDB 社は、.NET アプリケーションで Cosmos DB データ(MongoDB API 経由)へのネイティブ接続をサポートする 2 社です。CData は MongoDB 用の ADO.NET プロバイダーを提供しています。MongoDB 社は独自の C# および .NET MongoDB ドライバーを提供しており、MongoDB API を使用して Cosmos DB インスタンスに接続できます。各製品が結果を処理するのに要した時間は以下の表のとおりです。
| ADO.NET/C# クエリ時間(ミリ秒) | ||
|---|---|---|
| クエリ | CData | MongoDB 社 |
| 約 25,000 行 | 6,911.4 (+160%) | 18,001.4 |
| 約 120 万行 | 267,950 (+209%) | 828,049 |
結果からわかるように、CData ADO.NET プロバイダーは MongoDB 社の C# ドライバーよりも大規模な結果セットを高速に処理でき、最大のデータセットでは MongoDB 社のドライバーの 3 倍以上の速度で処理しました。
各クエリの平均実行時間を以下のグラフで比較しています。
ODBC ドライバー
CData は Azure Cosmos DB の MongoDB API 用 ODBC ドライバーを提供していますが、ネイティブ ODBC ドライバーも存在します。各製品が結果を処理するのに要した時間は以下の表のとおりです。
| ODBC クエリ時間(ミリ秒) | ||
|---|---|---|
| クエリ | CData | ネイティブ |
| 約 25,000 行 | 4,123.6 (-18%) | 3,377.6 |
| 約 120 万行 | 151,849.8 (+200%) | 455,843.6 |
結果からわかるように、CData ODBC ドライバーはネイティブドライバーよりも大規模な結果セットを大幅に高速に処理でき、最大のデータセットでは 3 倍の速度で処理しました。
各クエリの平均実行時間を以下のグラフで比較しています。
まとめ
CData ドライバーは、特に大規模なデータセットを扱う際に、競合他社の同等製品よりも高速であることが証明されています。CData の開発チームは、Cosmos DB データベースから返される結果の処理パフォーマンスを最適化するために多大な時間を費やしてきました。その結果、ドライバーのパフォーマンスは Web トラフィックとサーバー処理時間のみによって制限されるレベルに達しています。ぜひ MongoDB ドライバーの 30 日間の無料トライアルをダウンロードして、CData の違いをご自身でお確かめください。
関連記事
- NoSQL ドライバー:機能比較 - 異なるベンダーのドライバーが、NoSQL データソースからの複雑なクエリと複雑なデータセットをどのように処理するかを比較します。
- CData NoSQL 概要 - NoSQL を扱う際に CData ドライバーを特徴づける機能についてご紹介します。



