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 からの単純な読み取りを超えた実際のデータ処理をシミュレートするために、各行の値を配列に格納しました(配列は行ごとに置き換えられます)。クエリは以下のとおりです。

  1. SELECT borough, cuisine, name, restaurant_id FROM restaurants
  2. 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 倍以上の速度で処理しました。

各クエリの平均実行時間を以下のグラフで比較しています。

約 25,000 行の結果

約 120 万行の結果

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 倍の速度で処理しました。

各クエリの平均実行時間を以下のグラフで比較しています。

約 25,000 行の結果

約 120 万行の結果

まとめ



CData ドライバーは、特に大規模なデータセットを扱う際に、競合他社の同等製品よりも高速であることが証明されています。CData の開発チームは、Cosmos DB データベースから返される結果の処理パフォーマンスを最適化するために多大な時間を費やしてきました。その結果、ドライバーのパフォーマンスは Web トラフィックとサーバー処理時間のみによって制限されるレベルに達しています。ぜひ MongoDB ドライバーの 30 日間の無料トライアルをダウンロードして、CData の違いをご自身でお確かめください。

関連記事



  •  NoSQL ドライバー:機能比較 - 異なるベンダーのドライバーが、NoSQL データソースからの複雑なクエリと複雑なデータセットをどのように処理するかを比較します。
  •  CData NoSQL 概要 - NoSQL を扱う際に CData ドライバーを特徴づける機能についてご紹介します。

始める準備はできましたか?

Azure Cosmos DB 用ドライバーの詳細、または無料トライアルをダウンロード:

今すぐダウンロード