EC2からAthenaへのJDBC接続テストするためのDockerイメージ作った

色々な環境で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修正すればアクセスキーでの接続にも対応できます。

github.com

その際はこちらのマニュアルにJDBCに渡せるパラメータの記載があります。

https://s3.amazonaws.com/athena-downloads/drivers/JDBC/SimbaAthenaJDBC_2.0.7/docs/Simba+Athena+JDBC+Driver+Install+and+Configuration+Guide.pdf#page=70&zoom=100,0,244

参考

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

VPC Endpointからの接続を行う場合はGlueのエンドポイントにもアクセス可能にします。 yomon.hatenablog.com