色々な環境でIAM権限等のテストしている作業の中で、タイトルのイメージ作成したので書いておきます。
パラメータ環境変数
必須環境変数
環境変数名 | 説明 |
---|---|
REGION | AWS Region |
SQL | Athenaで実行されるSQL |
OUTPUT_LOCATION | Athenaの実行結果が格納されるS3バケット |
オプション環境変数
環境変数名 | 説明 |
---|---|
WORKGROUP | Athenaのワークグループです。設定しない場合はデフォルトのprimaryというワークグループを利用します。 |
使い方
IAMロール紐づけたEC2で、Dockerを使えるようにして、上記の環境変数を入れながらdocker runするだけです。
$ docker run -it --rm \ -e REGION=ap-northeast-1 \ -e SQL="SELECT * FROM \"test_db\".\"test_tab\" limit 10;" \ -e OUTPUT_LOCATION="s3://your-output-bucket/" \ -e WORKGROUP=yourworkgroup \ yomon8/athena-jdbc-tester
,
区切りでデータが表示されます。
#-- 省略 Listing tables... 2019/02/24,2019-02-24T07:50:01+0000,16770 2019/02/24,2019-02-24T05:05:01+0000,31677 2019/02/24,2019-02-24T03:30:01+0000,641 2019/02/24,2019-02-24T06:50:01+0000,31714 2019/02/24,2019-02-24T03:45:01+0000,11003 2019/02/24,2019-02-24T10:10:01+0000,17403 2019/02/24,2019-02-24T04:05:01+0000,13064 2019/02/24,2019-02-24T07:05:02+0000,15278 2019/02/24,2019-02-24T08:30:01+0000,9821 2019/02/24,2019-02-24T02:15:01+0000,8776 Finished connectivity test.
簡単なコードなので、Java修正すればアクセスキーでの接続にも対応できます。
その際はこちらのマニュアルにJDBCに渡せるパラメータの記載があります。
参考
https://docs.aws.amazon.com/athena/latest/ug/connect-with-jdbc.htmldocs.aws.amazon.com
VPC Endpointからの接続を行う場合はGlueのエンドポイントにもアクセス可能にします。 yomon.hatenablog.com