各製品の資料を入手。
詳細はこちら →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
- LIMIT 100000
- LIMIT 1000000
- 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
Related Articles
- Google BigQuery: Million Row Challenge - We take on the challenge of using the CData JDBC Driver to upload one million rows in Google Big Query.