Amazon DynamoDB ドライバーのパフォーマンス比較
本記事の数値は、2017年8月時点で利用可能な最新ドライバーに基づいています。
本記事では、CData JDBC Driver for Amazon DynamoDB と、他社(競合製品1)の同等製品のパフォーマンスを比較します。DynamoDB からデータをクエリし、結果セットを処理するまでにかかる時間を測定し、読み取りパフォーマンスを比較しました。
テストマシンの仕様は以下のとおりです。
オペレーティングシステム:Windows 10
プロセッサ:Intel® CoreTM 2 Quad CPU Q8400 @ 2.66GHz
メモリ(RAM):6.00 GB
システムの種類:64ビット オペレーティングシステム
ドライバーを並べて比較するため、マシン自体のパフォーマンスはそれほど重要ではありません。重要なのは、ドライバー間の相対的な比較です。
データ
再現性のある比較を行うため、MongoDB, Inc. が公開しているサンプル restaurants データセットからレコードをコピーし、Amazon DynamoDB に保存しました。
| テーブル | 行数 |
|---|---|
| restaurants | 7,309 |
クエリ
本調査の主な目的は、ドライバー間の相対的なパフォーマンスを比較することでした。各ドライバーで同じクエリを実行して比較を行いました。DynamoDB からの単純な読み取りを超えた実際のデータ処理をシミュレートするため、各行の値を配列に格納しました(配列は各行ごとに置き換えられます)。テストしたクエリは以下のとおりです。
- SELECT TOP 100 * FROM restaurants
- SELECT * FROM restaurants
結果
以下に、ドライバー別の各クエリのパフォーマンスを示します。
JDBC ドライバー
比較対象の両社は、Java アプリケーションで DynamoDB データにネイティブにアクセスできる JDBC ドライバーを提供しています。シンプルな Java アプリケーションでクエリ結果を処理した結果は以下のとおりです。
| 企業別 JDBC クエリ時間(秒) | ||
|---|---|---|
| クエリ | CData Software | 競合製品1 |
| 1(100行) | 4.2 (+1,041.6%高速) | 48.3 |
| 2(約7,300行) | 5.6 (+65,723.6%高速) | 3,653.2 |
競合製品1のドライバーは、テーブル全体の比較的少ない行数を取得するのにかなりの時間がかかることに注目してください。競合製品1のドライバーは一度に1レコードずつ取得しているようで、これがパフォーマンス低下の原因と考えられます。CData ドライバーは、Amazon DynamoDB のページング機能を活用し、DynamoDB サービスの強力な処理能力を最大限に引き出す方法でデータをリクエストします。結果からわかるように、CData ドライバーは競合製品1のドライバーよりも大幅に高速に結果セットを取得・処理でき、特にデータセットが大きいほどその差は顕著になります。
まとめ
CData Software のドライバーは、特に大規模なデータセットを扱う場合、競合他社の同等製品よりも高速であることが繰り返し証明されています。速度は1つの指標に過ぎませんが、ドライバーのパフォーマンスは、すべてのドライバーとデータアクセステクノロジーに組み込まれた技術的な深さと専門性を示す強力な指標です。開発チームは、DynamoDB データベースから返される結果の処理パフォーマンスを最適化するために数え切れないほどの時間を費やしており、ドライバーの制限要因はネットワークトラフィックとサーバー処理時間のみとなっています。