Amazon DynamoDB Drivers のパフォーマンス比較



この記事では、CData Driver for Amazon DynamoDB と類似したMagnitude|Shimba Technologies の製品とのパフォーマンス比較結果を説明しています。 比較は、READ 機能のパフォーマンスをDynamoDB へのクエリ処理にかかる秒数で計測しています。

テストの際のマシンスペックは次の通りです:
Operating System: Windows 10
Processor: Intel® CoreTM 2 Quad CPU Q8400 @ 2.66GHz
Installed Memory (RAM): 6.00 GB
System type: 64-bit Operating System

ドライバーのパフォーマンス比較ですので、マシンスペックはあまり重要ではありません;このテストはドライバーのパフォーマンスを比較する目的です。

テストデータ



再現可能な比較となるように、このテストでは公開されているMongoDB のRestaurants というサンプルデータをAmazon DynamoDB に保存してテストデータとして使いました。

Table Number of Rows
restaurants 7,309

クエリ



以下のクエリを双方のドライバーで実行しました。ただのデータの読み出しにならないために、それぞれの行のデータを配列として保存しました。

  1. SELECT TOP 100 * FROM restaurants
  2. SELECT * FROM restaurants

結果



以下が、ドライバー別のクエリ処理パフォーマンスの結果です。

JDBC Drivers

両社のJDBC ドライバーは、DynamoDB データをJava アプリケーションからネイティブに扱える機能を持っています。シンプルなJava アプリケーションでのクエリ結果は次の通りです。

各製品のJDBC クエリ所要時間(秒)
Query CData Software Magnitude|Simba
1 (100 rows) 4.2 (+1,041.6%) 48.3
2 (~7,300 rows) 5.6 (+65,723.6%) 3,653.2

結果では、行数が少ないデータセットで全テーブルを取得するクエリでもShimba 社のドライバーは多くの時間がかかっています。 Shinba 社のドライバーは1レコード毎に取得リクエストを出しているようです。 CData ドライバーでは、Amazon DynamoDB のページング機能を使い、DynamoDB のパワフルな処理機能をレバレッジする仕様となっています。 この結果からは、CData ドライバーがSimba 社のドライバーに比べて、高いパフォーマンスが出ることがわかりました。データ量が大きくなった際にはパフォーマンスの差はより明らかになります。 ただし、この結果は上述の環境とデータセットにより得られたものであれ、普遍性はありません。

Conclusion



CData Software は、市場の他の製品よりも高いパフォーマンスを常に意識した開発・改善を行っています。特にデータセットが大きくなった場合にはパフォーマンスの差はUX において大きな要因になることを理解しています。 パフォーマンスは一つの要素ではありますが、CData Drivers に組み込まれた多くのテクノロジーを証明するものです。CData Software では、製品の改善に普段の努力をし、ストレスの少ないデータ連携体験をお届けします。