Amazon AthenaにはAWSのマネージメントコンソールから、SQL実装&クエリログ保存ができるUIが提供されており、便利に使えます。
ちょっとした調査や分析であればこれで十分なのですが、ローカルのDB統合環境からつなげるとより捗りそうです。
もともと、SQL Serverを扱う際にSQL Operation Studioを使っていたのですが、UIや動作でつらみが結構あり、DataGripに切り替えたところ劇的に改善されたので、その流れで今度はログ調査でよく利用しているAthenaの接続を試みることにしました。
Athenaにローカル接続できる専用ツールは見つからない
GUIの専用ツールは見つけられず(2018/11/15時点)。あったら使ってみたい
Athena用のJDBCドライバが公式に配布されている
AWSからJDBCドライバが提供されており、これを使えばツールからの接続ができそう
https://docs.aws.amazon.com/ja_jp/athena/latest/ug/connect-with-jdbc.html
AthenaJDBC42-2.0.5.jar は、JDBC 4.2 と互換性があり、JDK 8.0 以降が必要です。
すでに試している方がいる(欧州)
eu-west-1(アイルランド)リージョンですでにDataGrip -> Athenaの手順をまとめてくれている方がいました(感謝)。
今回はこちらを参考に、Athenaのデータストア(S3)が東京リージョンの場合の手順をまとめてみます。
https://medium.com/datamindedbe/connect-to-aws-athena-using-datagrip-c34762e37a17
JDBC接続に必要なもの(事前準備)
-
Athenaに接続可能な管理ポリシーを持つIAMのアクセスキー取得
-
実行結果保存用のS3バケット作成
-
DataGripのインストール
- https://www.jetbrains.com/datagrip/ ※30日間試用可
-
Athena接続用JDBCドライバのダウンロード
-
https://docs.aws.amazon.com/ja_jp/athena/latest/ug/connect-with-jdbc.html
- AthenaJDBC42-2.0.5.jar ※JDK8.0以降が必要
-
https://docs.aws.amazon.com/ja_jp/athena/latest/ug/connect-with-jdbc.html
接続までの手順
DataGrip上にAthena接続用JDBCを登録
メニューの Driver
より新規ドライバの追加画面へ
AthenaのJDBCを登録
- Driver filesにダウンロードしてきたJDBCのjarファイルを指定
- Classで
com.simba.athena.jdbc.Driver
を選択
メニューの Data Source
より Athena
を選択し、接続設定へ
Athenaの接続情報を登録
-
General
タブにであることを確認 - Userにアクセスキー、 Passwordにシークレットアクセスキーを入力
- URLに
jdbc:awsathena://athena.ap-northeast-1.amazonaws.com:443/
を入力
-
Adbanced
タブに移動 - S3OutputLocationに
s3://実行結果保存用のバケット名
を入力
※ここではAthenaのデータストア、実行結果保存用のバケットともに ap-northeast-1
の場合を想定
*Regionが異なる場合は、同じリスト内にあるAwsRegion欄を設定する必要があるかも知れません
-
General
タブに再び移動 - Test Connectionをクリック
- ボタン横に「Successful」と表示されれば接続成功 🎉
- 右下のOKを押して、接続情報の登録を完了
RubyMineなどのDatabase機能でも同様の接続が可能
RubyMineなどのDatabase機能も、DataGrip互換の機能が利用できるようで、そちらからもAthena接続が可能でした。
DataGrip使えるライセンスじゃない or 買うほどじゃないという方はありかもしれません。
(個人的には独立して使えるDataGripがおすすめ)