Salesforce.com 向けドライバーのパフォーマンス比較
この記事では、CData の Salesforce 向けドライバーと各社が提供する同等のドライバーのパフォーマンスを比較します。読み取りパフォーマンスを測定し、Salesforce.com インスタンスからデータをクエリして結果セットを処理するのに要する時間を比較しました。
テストに使用したマシンの仕様は以下のとおりです:
オペレーティングシステム:Windows 10
プロセッサ:Intel® CoreTM 2 Quad CPU Q8400 @ 2.66GHz
メモリ(RAM):6.00 GB
システムの種類:64 ビット オペレーティングシステム
ドライバーを並べて比較しているため、マシン自体のパフォーマンスはそれほど重要ではありません。重要なのは、ドライバー同士の相対的な比較です。
データ
サンプルデータとして、Salesforce サンドボックスに約 600,000 件のアカウントを用意し、比較対象の各ドライバーで読み取り・処理を行いました。テーブルの詳細は以下のとおりです:
| テーブル | 行数 |
|---|---|
| Account | 593,919 |
クエリ
この調査の主な目的は、ドライバーの相対的なパフォーマンスを比較することでした。各ドライバーで同じクエリを実行して比較を行いました。Salesforce からの読み取りだけでなく、実際のデータ処理をシミュレートするために、各行の値を配列に格納しました(配列は行ごとに置き換えられます)。SSIS コンポーネントのように SQL を常に使用しないツールの場合は、Account テーブルから利用可能なすべてのデータを取得するよう設定しました。場合によっては、LIMIT 句を使用して結果数を制限しました。SQL で通信するドライバーが送信した正確なクエリは以下のとおりです。
- SELECT * FROM Account LIMIT 100000
- SELECT * FROM Account
結果
以下に、ドライバー/プラットフォームごとの各クエリのパフォーマンスを示します。
SSIS コンポーネント
SQL Server とライブの Salesforce データを接続するコンポーネントを提供しているベンダーは複数あります。公開されているコンポーネントを比較するため、Account テーブルからすべてのデータを取得してテキストファイルに書き込むテストを実施しました。各製品が結果を処理するのに要した時間は以下の表のとおりです。
| 会社別 SSIS クエリ時間(秒) | |||||
|---|---|---|---|---|---|
| クエリ | CData Software | Company 1 | Company 2 | Company 3 | Company 4 |
| 約 590,000 行 | 122.2 (+58.5% - +543.9%) | 193.7 | 328.4 | 378.2 | 786.9 |
上記のとおり、CData Software の SSIS コンポーネントは、他の競合製品よりも高速に大規模な結果セットを処理できます。ほとんどの競合製品の少なくとも 2 倍の速さでアカウントデータを処理し、最も近い競合製品と比較しても 50% 高速でした。
各クエリの平均実行時間を以下のチャートで比較しています:
約 590,000 行の結果

JDBC ドライバー
CData Software と別の会社(Competitor)は、Java アプリケーションや JDBC 準拠の BI、レポーティング、ETL ツールで Salesforce データに接続できる JDBC ドライバーを提供しています。ドライバーを比較するため、上記のクエリを使用して 100,000 件のアカウントデータと約 590,000 件のデータを取得しました。各製品が結果を処理するのに要した時間は以下の表のとおりです。
| 会社別 JDBC クエリ時間(秒) | ||
|---|---|---|
| クエリ | CData Software | Competitor |
| 約 100,000 行 | 20.3 (-2.3%) | 19.8 |
| 約 590,000 行 | 47.5 (+87.8%) | 89.2 |
結果からわかるように、CData JDBC ドライバーは Competitor JDBC ドライバーよりも高速に大規模な結果セットを処理できました。最大のデータセットを Competitor ドライバーの約 2 倍の速度で処理しています。
各クエリの平均実行時間を以下のチャートで比較しています:
Mulesoft コネクタ
CData Software と Mulesoft は、Mule アプリケーションや Anypoint Studio などの関連ツールで Salesforce データに接続できるコネクタを提供しています。コネクタを比較するため、上記のクエリを使用して 100,000 件のアカウントデータと約 590,000 件のデータを取得しました*。各製品が結果を処理するのに要した時間は以下の表のとおりです。
| 会社別 Mulesoft クエリ時間(秒) | ||
|---|---|---|
| クエリ | CData Software | Native Connector |
| 約 100,000 行 | 30.3 (+64.9%) | 49.9 |
| 約 590,000 行* | 128.2 (+99.6%) | 256.0 |
* - 作成したフローでは Weave/Transform Message コンポーネントを使用しました。Object to JSON トランスフォーマーを使用しようとしたところ、両方のコネクタでフルデータセットに対して Java ヒープスペースエラーが発生しました。これはコネクタ自体の制限ではなく、トランスフォーマーの制限を示しています。
結果からわかるように、CData Mulesoft Connector for Salesforce は、ネイティブコネクタよりも高速に大規模な結果セットを処理できました。最大のデータセットを約 2 倍の速度で処理しています。
各クエリの平均実行時間を以下のチャートで比較しています:
まとめ
CData Software のドライバーは、特に大規模なデータセットを扱う際に、競合他社の同等製品よりも高速であることが常に証明されています。CData の開発者は、Salesforce から返される結果の処理パフォーマンスを最適化するために多大な時間を費やしてきました。その結果、ドライバーのパフォーマンスは Web トラフィックとサーバー処理時間によってのみ制限されるようになっています。



