Help us understand the problem. What is going on with this article?

AWS Athenaで複数のクエリをまとめて実行する方法(SQL Workbench)

はじめましてSE歴2年目でまだまだ未熟者です。
このたび業務でAWS Athenaでパーティションを作成するクエリを数年分用意して実行することになったのですがAthenaでは複数のクエリを実行できないため、自分が困ったので記事にしました。

Athenaとは

標準 SQL を使用して Amazon S3 内のデータを直接分析することができるインタラクティブなクエリサービスです

Amazon Athenaとは

僕の中では、ログなどのデータに対してSQL文で検索、抽出ができるものといった認識です。(違ったらすみません。)

SQL Workbenchを使って複数のクエリをまとめて実行する。

先述の通りAthenaではSQLを1文ずつしか流せないので、今回はSQL WorkBenchというものを使いました。
こちらを使ってAthenaへ接続してSQLをまとめて実行するといった具合でやっていきます。

事前に準備するもの

SQL Workbench

JDBCドライバー(4.1系または4.2系)
どちらのバージョンでも動作するようです。(※JDKがインストールされてない場合はそちらも必要です)

私は4.1にしました。
ダウンロード後は適当なフォルダに入れます。(そのままでもいい)
例 C:\Driver\

③AWSアカウント情報
- Access key ID
- Secret access key
- クエリ結果出力用のS3Bucket(s3://hoge/)
 
 アクセスキー及びシークレットアクセスキーが不明な場合はこちらを参照してください。
 IAM ユーザーのアクセスキーの管理

設定方法

まず、ダウンロードしたSQL Workbenchのなかにあるsqlworkbench.jarを開きます。

下記のような画面が表示されたら、New profileを選択しましょう。
もし何も表示が無ければ「Select connection profile」画面の左上部を押して新しくプロジェクトを作ります。

1.PNG

設定が必要な項目は以下の6つです。

①ProjectName:任意
 (AWS Athenaなど)

②Driver:画面左下のManage Driverを押して開いたウインドウから設定を行います。(下の画像参照)
さきほど事前に保存したローカル上のjdbcドライバーを追加する事により、フォルダのマークのドライバー一覧から選択してOKを押します。

2.PNG

OKを押した後は以下を設定していきます。

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

 4.1~の場合
 jdbc:awsathena://athena.ap-northeast-1.amazonaws.com:443
 4.2~の場合
 jdbc:awsathena://AwsRegion=ap-northeast-1;

基本は東京リージョン(ap-northeast-1)だと思いますが異なるリージョンを利用されている場合は、ap-northeast-1の部分を各自変更してください。

④UserName:AWSのアクセスキー

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

 アクセスキー及びシークレットアクセスキーに関してはこちらを参照してください。
 IAM ユーザーのアクセスキーの管理

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

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

Extended propertiesは必須項目なので設定しないと必ずエラーが起きます。

上記の6つの設定が終わって画面右下のtestを押下すると、「Connection to うんたらかんたら~~successful」というメッセージが表示されます。
エラーの場合は設定が間違っていますので設定を見直してください。

設定は以上です。

後は実行したい複数のSQL文(一つでも良い)を入力して
SQLタブ→Execute ALLを押したらAthenaへクエリを実行することができます。

お疲れ様でした。

参考元リンク

https://310ch.net/work/analytics/sql-workbench-amazon-athena

https://docs.aws.amazon.com/ja_jp/athena/latest/ug/connect-with-jdbc.html

https://dev.classmethod.jp/cloud/aws/amazon-athena-automate-partition-setting/

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした