created: 2018-11-03T09:11:44.000Z

athenacliを使う

awscliにはathenaサブコマンドが用意されているが、gcpのbqコマンドのように便利な雰囲気ではない

シェルスクリプトにするのにもちょっと面倒な感じ

  1. start-query-executionして、
  2. get-query-executionしながらsleepしたりして
  3. get-query-resultで結果を取得
  4. 結果csvをs3から取ってくる

この面倒な部分をやってくれる便利なツールがあった

install

pipで入る

$ pip install athenacli
Collecting athenacli
...
$ which athenacli
/usr/local/bin/athenacli

設定

athenaにクエリをかけるのには以下のような設定情報が必要となる

  • aws-access-key-id
  • aws-secret-access-key
  • region
  • s3-staging-dir (クエリの実行結果を置く場所)

これらをAthenaCLIに渡す方法はいろんな種類がサポートされている

環境変数を使うならこんな感じになる

export AWS_ACCESS_KEY_ID=xxxxxx
export AWS_SECRET_ACCESS_KEY=xxxxxx/xxxxxxxxxx
export AWS_DEFAULT_REGION=ap-northeast-1
export AWS_ATHENA_S3_STAGING_DIR="s3://thisisyourbucket/athenacli/"

実行

ファイル名を渡しても、クエリを文字列で渡しても良い 結果は標準出力にcsvで出力される

$ athenacli -e src/queries/_.sql > /tmp/_.csv
貝と羊の中国人 (新潮新書)
[ad] 貝と羊の中国人 (新潮新書)
加藤 徹 (新書)