Elasticsearch ドライバーの比較



この記事の計測結果は、2019年7月時点で利用可能な最新のドライバーに基づいています。

この記事では、CData JDBC Driver for Elasticsearch とネイティブドライバーのパフォーマンスを2つの観点から比較します。

まず、読み取りパフォーマンスを比較します。Elasticsearch インスタンスにデータをクエリし、結果セットを処理するのにかかる時間を計測しました。CData Driver はネイティブドライバーより2.5倍高速という結果が得られました。

次に、読み取りクエリにおける各ドライバーのリソース使用量を比較し、CPU とネットワークの使用状況に着目します。これにより、CData Driver がより高いパフォーマンスを発揮する根本的な理由を説明します。

ドライバーを横並びで比較しているため、マシン自体のパフォーマンスは比較的重要ではありません。重要なのは、ドライバー同士がどのように比較されるかです。

データ



再現可能な比較を提供するため、Google の公開データセット trips_2015 をコピーしました。クエリ対象のテーブルの詳細は以下の通りです:

テーブル 行数
trips_2015 9,896,012

JDBC ドライバーの読み取りパフォーマンス



まず、各ドライバーで同じ2つのクエリを実行し、関連するパフォーマンスをテストしました:

  1. SELECT * FROM trips_2015 LIMIT 25000
  2. SELECT * FROM trips_2015

Elasticsearch からのデータの実際の処理をシミュレートするため、各行のすべてのフィールドの値を読み取りました。各製品が結果を処理するのに要した時間は以下のテーブルの通りです。

JDBC クエリ時間(ミリ秒)
クエリ対象行数 CData Software ネイティブ
25,000 1,016.9 (+35%) 1,375.4
約10,000,000 199,577 (+155%) 508,338

結果からわかるように、CData JDBC Driver はネイティブドライバーよりも大規模な結果セットを大幅に高速に処理し、最大のデータセットを2.5倍高速に処理しました。

JDBC ドライバーのリソース使用量



読み取りパフォーマンスのテスト中、クライアント側のリソース使用量も計測し、特にメモリと CPU の使用状況に着目しました。以下のグラフは、サンプル Java プログラムを実行し、Java VisualVM を使用して CPU とメモリの使用量をキャプチャして作成しました。Java バージョン 8 update 211 を使用し、最大ヒープサイズは 4.27 GB に設定しました。

この比較では、テスト用の Elasticsearch インスタンスに対して大量の行を取得するクエリを実行しました: SELECT * FROM trips_2015

CData Driver

ネイティブドライバー

グラフに基づくと、CData Driver は CPU とメモリの使用率を高く維持し、CPU の約40%を使用し、ヒープ使用量は平均で約700MB でした。対照的に、ネイティブドライバーは CPU を5%未満しか使用せず、メモリ使用量も不安定でした。クエリの最初の3分の1では、ドライバーはヒープの約400MB を使用していましたが、その後使用量を100MB 未満に大幅に削減しました。CData Driver はクライアント側のリソースをより有効に活用することで、ネイティブドライバーの2倍以上の速度でデータをリクエストし処理します。読み取りプロセスを高速に完了することは、時間の節約だけでなく、Elasticsearch サーバーのリソースも最大限に活用していることを意味します。

まとめ



CData ドライバーは、特に大規模なデータセットを扱う場合に、ネイティブドライバーよりも一貫して高速であることが証明されています。CData の開発者は、Elasticsearch インスタンスから返されるデータのリクエストと結果の処理のパフォーマンス最適化に膨大な時間を費やし、システムに割り当てられた RU を最大限に活用しています。このエンジニアリングにより、割り当てられた RU に基づいて最高のパフォーマンスを得ることができます。CData Elasticsearch ドライバーの30日間無料トライアルをダウンロードして、CData の違いをぜひ体験してみてください。

関連記事



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

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

今すぐダウンロード