CData JDBC Driverを使って、DbVisualizerからGoogle BigQueryのSQLを実行する
前回の記事でWeb ConsoleベースでBigQueryと戯れました。
でもBigQuery、せっかくSQL(正確にはちょっと方言がはいるのだけど)が使えるのだから、WebConsoleだけじゃなく普段使い慣れたツールから叩きたい! という方が居るはず!
というわけで、今回はクライアントツールからBigQueryと戯れてみました。
必要なもの
JDBCドライバーが使えるツールなら、Eclipsとかでもいいのですが、今回は私がメインで使っているDbVisualizerを使います。
あとは、以下のCData BigQuery JDBC Driverをダウンロードしておきます(30日間試用版があります)
ClientIDとClientSecretの入手
BigQueryにはOAuthでアクセスするので、まず認証用のClientIDとClientSecretを入手します。
GCPのコンソール画面を表示し、BigQueryが含まれるプロジェクトを選択の上、「プロジェクト設定に移動」をクリックします。
[IAMと管理]の画面に移動するので[API認証情報]をクリック
ここで認証情報を作成します。
[認証情報を作成]→[OAuthクライアントID]をクリック
[アプリケーションの種類]では[その他]を選択し、適切な名前を付けて[作成]をクリックします。
これで接続に必要な[ClientID]と[ClientSecret]が入手できます。
DbVisualizerで接続
次にDbVisualizerでBigQueryに接続できるようにします。
接続の際にJDBCドライバーが必要になるので、インストールしておいてください。
その上で、インストールしたJDBC Driverを読み込みます。
DbVisualizerを立ち上げて[Tools]→[Driver Manager]を選択し
左上の[+]ボタンをクリック
任意の名前を付けて、[フォルダ]アイコンをクリックします。
[C:\Program Files\CData\CData JDBC Driver for Google BigQuery 2017J\lib]にBigQueryのドライバーライブラリである[cdata.jdbc.googlebigquery.jar]があるので、これを参照します。
以下のような状態になればOKです。
続いて、Connectionの作成です。
DbVisualizerのメイン画面に戻って[Connection]ボタンをクリック
任意の名称と、先程登録したBig QueryのDriverを選択し、Database URLを以下のような形式で入力します。ここで先程入手したClientID・ClientSecret、それから対象となるDatasetIdを指定します。
jdbc:googlebigquery:InitiateOAuth=GETANDREFRESH;ProjectId=***;DatasetId=***;OAuth Client Id=****.apps.googleusercontent.com;OAuth Client Secret=****;
Databse typeはDefaultのまま、Database User IDとPasswordは不要です。でOKです。
細かな接続方法は以下のURLからどうぞ。
http://cdn.cdata.com/help/HBC/jdbc/pg_connectionj.htm
これで、Connectをクリックすれば完了です。
以下のように、ツリーが開けるようになり、Datasetに登録されているTable一覧が見えると思います。
SQLも普段と同じように叩くことができます。
内部的にはREST APIが使われていて、Jobs/Queryのリクエストが実行されています。
なので、もちろんBigQueryの課金が発生します!! 要注意!!
サポートされるSQLは以下を参照してみてください。一部DDL等は利用できないので要注意です。
あとLegacySQLですが、接続文字列を設定することで利用することが可能です。その他BigQueryの方言に関するいくつかの調整が可能なので、このクエリどうなってるの?という場合は、以下のリファレンスを参照してみてください。
おわりに
次回はもうちょっとDriverを使ったいろいろな試みを書いていきたいかなぁと思います。