IntelliJ IDEAでBigQueryへの接続を設定する

2021.06.16

はじめに

データアナリティクス事業本部のkobayashiです。

IDEとしてJetBrainsのIntellijを愛用しています。2021.1バージョンがリリースされていたのですがなかなかアップデートする機会がなく、この度アップデートしたところIntellij内のDB管理ツールであるDataGridの接続でBigQueryが正式にサポートされていました。この接続設定を行ってみましたのでその内容をまとめます。

DataGridでのBigQuery接続設定

以前でもDataGridでは汎用のデータソース設定としてJDBCドライバを使って各データソースへの接続は行え、BigQueryもJDBCドライバを入手すれば以下の方法で設定は行えました。

自分も今まではこの方法で接続していましたが、Advancedタブに値を入れなくてはならなかったりして設定に苦労した覚えがあります。今回、正式にサポートされたことで設定項目がわかりやすくなりそのような苦労はなくなったと思います。

では設定を行います。

コネクションの作成

手順1) Intellijを開きDatabase > Data Source でデータソースの設定画面を開き、BigQueryテンプレートを選ぶ。

画像では自分で以前作成したJDBCドライバを使った設定テンプレートが残っています。

サービスアカウント認証を使った設定

手順2)BigQueryへの接続設定の画面が開くので初めての設定の場合は左下のDownloadを押下しドライバをダウンロードする。 次に必要な設定値を入力する。

  • Host : 既定値のまま
  • Port : 443
  • Project ID : 接続を行いたいBigQueryのプロジェクトIDを入力
  • OAuthType : 接続方法を入力
  • URL : OAuthTypeに従った値を入力

ここでOAuthTypeなのですが、次の4パターンがあります。

  • 0 : サービスアカウントでの認証
  • 1 : ユーザーアカウントでの認証
  • 2 : アクセストークンとリフレッシュトークンでの認証
  • 3 : アプリケーションのデフォルトの資格情報での認証

はじめ「1」のユーザーアカウントでの認証で設定を行ったのですが、使い勝手がイマイチでしたので「0」のサービスアカウントでの認証を行いました。こちらの設定方法のが個人的にはおすすめです。他の認証方法に関してはまだ試していないので機会があれば行ってみたいと思います。

各設定値でURLへ設定する値は変わるのですが、詳細はドキュメント(BigQuery | DataGrip )がありますのでそちらをご確認ください。

サービスアカウントでの認証を選択した場合にはURLに次の値を入力します。サービスアカウントは事前に適切なロールを割当てて作成しておきます。

jdbc:bigquery://https://www.googleapis.com/bigquery/v2:443;ProjectId={Project ID};OAuthType=0;OAuthServiceAcctEmail={サービスアカウントのメールアドレス};OAuthPvtKeyPath={サービスアカウント秘密鍵のファイルパス};

設定はこれで終わりですので左下のTest Connectionを押下し設定が問題なければ以下の表示が出ます。

ここで一度設定画面を閉じてから再度設定画面を開くとURLで設定した値がテキストボックスで表示されます。個人的な感想として、できればOAuthTypeをSelectBoxで選択できて、その選択肢でそれ以降の入力値が変わると更に使い勝手が良くなると思います(以前に比べればこれでも十分使い勝手は向上しているのですが)。

ここまで設定ができればDatabaseウィンドにBigQueryが表示されてDataGridで様々な操作が行えるようになります。

ユーザーアカウントでの認証(未使用)

ユーザーアカウントでの認証を初めに行いましたがあまり使い勝手がよくなくサービスアカウントでの認証に変更しましたが、一応ユーザーアカウントでの認証の方法もまとめておきます。

コネクション作成の手順1を終えた後から続けます。

手順2)BigQueryへの接続設定の画面が開くので初めての設定の場合は左下のDownloadを押下しドライバをダウンロードする。 次に必要な設定値を入力する。

  • Host : 既定値のまま
  • Port : 443
  • Project ID : 接続を行いたいBigQueryのプロジェクトIDを入力
  • OAuthType : 1

手順3) 左下のTest Connectionを押下すると以下のダイアログが開くので表示されているURLをコピーしてブラウザに貼り付けて移動する。

手順4) 以下のようなアカウント選択画面が表示されるので接続を行いたいBigQueryへの権限のあるアカウントを選択する。

手順5) アクセスリクエストの確認画面が出るので問題なければ「許可」を押下する。

手順6) コードが表示されるのでコピーする。

手順7) コピーしたコードを手順4で表示されたダイアログに入力してOKを入力する。

これで設定は終わりです。

ただこのユーザーアカウントでの認証ですが、何らかのデータソースへの接続を行った際にその都度、手順3からやり直す必要があるため結局は先程まとめたサービスアカウントでの認証を使うことにしました。

まとめ

JetBrainsのアップデートで他にも機能が増えているので次回引き続き紹介したいと思います。

最後まで読んで頂いてありがとうございました。