Skip to main content

常にいまいち

[メモ]BigQueryをDataGripから使用する

概要

JDBCDriverを使用してDataGrip経由でBigQueryにクエリを投げられるようにする。

やりかた

  1. ここから JDBC 4.2-compatible を落としてくる(ODBCではないので注意)
  2. DataGripのDriver追加画面(+ から Driverを選択)開く
  3. DriverとしてJDBCDriverを追加する(ここの2つ目のgifを参照)
    1. NameはBigQueryなどの適当なものにする
    2. Driver files に1で落としたzipに含まれるjarをすべて指定する
    3. URL templatesdefault として jdbc:bigquery://[{host::https\://www.googleapis.com/bigquery/v2}[:{port::443}]][<;,{:identifier}={:param}>] をセットする
    4. Advanced タブを開き、 OAuthType0 をセットする
    5. ApplyかOKでここまでの変更を保存する
  4. DataGripのDatasource追加画面(+ から Datasource > 追加したDriverを選ぶ)を開く
  5. Datasourceに接続したいBigQueryプロジェクトを追加する(ここの3つ目のgifを参照)
    1. Name を適当に設定する
    2. UserPasswordURLDriverはそのまま変更しない
    3. Advanced タブを開き以下の項目を設定する
      • OAuthPvtKeyPath にservice accountキーのパスを設定する
        • gcloudコマンドを使っているなら${HOME}/.config/gcloud/application_default_credentials.json が使える
      • OAuthServiceAcctEmail に追加したservice accountのメールアドレスを設定する
      • ProjectID *に接続したいBigQueryのプロジェクトIDを設定する
    4. ApplyかOKでここまでの変更を保存する

ここまで設定すればMySQLやPostgreのように接続できるはず。 素のままではTimeoutが短すぎる場合は、Datasourceの Advanced タブから Timeout に適当な値を設定する。

参考資料

https://blog.jetbrains.com/datagrip/2018/07/10/using-bigquery-from-intellij-based-ide/