RedShiftやその他DWHに対してローカルアプリケーションから実行できる、とっても便利なSQL WorkbenchですがAWSのクエリサービス、Athena(S3に対してクエリを発行できるPrestoエンジン)でもサポートしていて使うことが可能です。

SQL Workbenchを使用することのメリットは(というかWEBコンソールを使う弊害の方が多いのですが)SQLの同時実行が行えたり、アクセス先のデータベース一覧が一括管理出来たりと良い事尽くめですので、ぜひ活用しましょう。

私の環境ではRedshift、Treasure Dataなどの接続を確認済。恐らくドライバーがあれば接続可能かと思います。

[Sponsored Link]





用意しておくもの

Athenaへの接続で必要なものはツール群とドライバ、アカウント情報です。

SQL Workbench
インストーラー付きのものが配布されているので、画面の支持にしたがってインストールしてください。日本語化パッケージを配布してくださっている方もおりますが、今回はそのまま使用します。

JDBCドライバー(4.1系 or 4.2系)
どちらのバージョンでも構いませんが4.1系 or 4.2系かで、SQL Workbenchの設定方法が異なります。※後述しますのでお好きな方をインストールしてください。どちらも私の環境では安定しています。

ダウンロードしたら適当なフォルダ

C:\Driver\
C:\Program Files\Driver\

などに放り込んでおきましょう。

③AWSアカウント情報各種
└アクセスキー
└シークレットアクセスキー
└クエリ結果出力用のS3Bucket(どこかしらのディレクトリで可)

今回は特に触れませんがJavaも必要ですので必要に応じて互換性のあるバージョンをインストールしてください。

設定方法

まずは、下図の赤枠で囲った上部メニューのアイコンから新規プロジェクトを作成します。こちらの接続先情報に、使用するドライバーのローカルパス、アクセス先情報を入力すれば、複数DB環境を1つのアプリケーションから実行が可能です。

SQL Workbench(JDBCドライバー経由で)Amazon Athenaに接続する

早速設定していきます。項目は以下のとおりです。

①ProjectName:任意(仮でAmazon Athena4.2と命名)

②Driver:画面左下のManage Driverを押下し、開いたウインドウから設定を行います。自身のローカル上のjdbcドライバーを追加する事により、Driver一覧から追加する事が可能です。

SQL Workbench(JDBCドライバー経由で)Amazon Athenaに接続する

③URL:JDBCドライバーのバージョンにより設定が異なります。以下を参考に設定をお願いします。

 4.1系
 jdbc:awsathena://athena.us-west-2.amazonaws.com:443
 4.2系
 jdbc:awsathena://AwsRegion=us-west-2;

※us-west-2の部分は使用しているリージョン環境ですので(私の場合はオレゴン環境)、こちらのAWSのリージョン名を参考に自身の環境に変更してください。

④UserName:AWSのアクセスキー

⑤Password:AWSのシークレットアクセスキー

⑥Extended properties:クエリ結果を保存しておくバケットを指定します。

 ・Property: s3_staging_dir  or S3OutputLocation
 ・Value: クエリ結果を保存したいs3ディレクトリ(s3://●●●●/)

なお、こちらのExtended properties >> s3_staging_dir  or S3OutputLocationは任意ではなく必須となっておりますので、設定しないと必ずエラーになり接続が行えません。

SQL Workbench(JDBCドライバー経由で)Amazon Athenaに接続する

設定が終わってtestを押下すると、下記画面のように「successful」とメッセージが現れます。エラーの場合は設定が間違っていますので最初から各項目を見直してください。

SQL Workbench(JDBCドライバー経由で)Amazon Athenaに接続する

DBにアクセスするとテーブル一覧が画面左サイドに、クエリエディターが右上に、クエリ結果が画面右下に表示されます。

SQL Workbench(JDBCドライバー経由で)Amazon Athenaに接続する

ブラウザコンソール上のAthenaでは1つのクエリが実行中の際に他クエリの、同時実行は行なえないのですが、Workbenchからでしたら複数のタブから同時実行が可能です。

シンタックスハイライトや予測変換機能はありませんので、白画面みにくいんじゃー!という方はSublime TextやVSCodeなどで記述したコードを貼り付けて実行すると良いでしょう。

参考にしたリンク

・JDBC ドライバーを介した Athena の使用-AWS
https://docs.aws.amazon.com/ja_jp/athena/latest/ug/connect-with-jdbc.html

・SQL Workbench経由でAmazon Athenaに接続するとエラーになる-stackoverflow
https://stackoverflow.com/questions/47998843/error-connecting-sql-workbench-j-to-amazon-athena

・リソースおよびプロパティタイプのリファレンス-AWS
https://docs.aws.amazon.com/ja_jp/AWSCloudFormation/latest/UserGuide/aws-properties-ssm-association-s3outputlocation.html

・Athena JDBCガイドブック(pdf)-AWS
https://s3.amazonaws.com/athena-downloads/drivers/JDBC/SimbaAthenaJDBC_2.0.9/docs/Simba+Athena+JDBC+Driver+Install+and+Configuration+Guide.pdf

・Athena JDBCリファレンス
https://www.simba.com/products/Athena/doc/JDBC_InstallGuide/content/jdbc/ath/options/awscredentialsproviderarguments.htm

おしまい:)