BigQuery JDBC Drivers のパフォーマンス比較



本資料で利用したドライバーは2019年6月時点の最新のドライバーを使用しています

BigQuery はGoogle 社のフルマネージド、ペタバイトスケール、低コストのエンタープライズ向けデータウェアハウスです。大容量データの保存およびアクセス、分析に大変便利で、多くの会社にとってクラウドベースのアナリティクスプラットフォームとしてGoogle BigQuery は試しやすい選択肢です。BigQuery はクラウドベースであり、データベース管理者や運用のためのインフラが不要です。

準備

本記事では、Google 社がサポートするJDBC Driver for Google BigQuery1 とCData Software JDBC Driver for Google BigQuery2 を大容量のデータセットをクエリするパフォーマンスを比較します。同様の結果を再現できるように、比較ではtlc_yellow_trips_2018 table from the new_york_taxi_trips dataset in the public bigquery-public-data project3 を使いました。


比較内容



tlc_yellow_trips_2018 テーブルの詳細は次のとおり:

Table Size     Table Number of Rows     Number of Columns
18.1 GB 112,234,626 17

この調査の目的は、ドライバーのパフォーマンスの比較であり、同じクエリセットをそれぞれのJDBC Driver で実行しました。それぞれのクエリで使用するデータセットサイズを変更するためにLIMIT クエリを使用しました。カラムはそれぞれのクエリで変更していません。

ベースとなるクエリ

SELECT 
  vendor_id, 
  passenger_count, 
  trip_distance, 
  rate_code, 
  store_and_fwd_flag, 
  payment_type, 
  fare_amount, 
  extra, 
  mta_tax, 
  tip_amount, 
  tolls_amount, 
  imp_surcharge, 
  total_amount, 
  pickup_location_id, 
  dropoff_location_id 
FROM 
  `bigquery-public-data.new_york_taxi_trips.tlc_yellow_trips_2018`

Limit by Query

  1. LIMIT 100000
  2. LIMIT 1000000
  3. LIMIT 10000000


結果



テスト用にシンプルなJava アプリケーションからBigQuery に接続し、上記のクエリを繰り返し実行しました。結果をそれぞれ新しいstring 値として保存。次のチャートの実行時間の値はそれぞれのクエリの平均値(秒)です。

Query Times by Driver (in seconds)
Query CData JDBC Google JDBC
1 (100,000 rows) 10.80 (+17%) 12.99
2 (1,000,000 rows) 103.49 (+17%) 125.17
3 (10,000,000 rows) 1,047.33 (+17%) 1,266.90

どのデータセットでも、CData Drivers はGoogle のDriver よりも17% 程度パフォーマンスが高いことが結果から読み取れます。

それぞれのクエリの平均実行時間は次のチャートをご覧ください:

Results for All Queries


まとめ



CData Driver のパフォーマンスはGoogle がサポートするドライバーより高パフォーマンスであり、しかも数字は前回の調査よりも改善しています。CData では、ユーザーの大容量データのクエリニーズに応えるため、ドライバーパフォーマンスの改善に引き続き努めます。

References



  1. Google Drivers
  2. CData JDBC Drivers
  3. City of New York Taxi Trip Public Dataset

Related Articles