Amazon Athenaのパーティション追加めんどくさい
S3のバケットに
s3://バケット名/HOGE/20170824/00_0.gz
s3://バケット名/HOGE/20170824/00_1.gz
みたいな感じでログを置いています。
Athenaを利用して軽く集計してみようかなーと思ったところ、パーティションを分ける必要がありました。
(分けないでも実行できるけど、よりお金かかるから分けたほうがいい)
Hiveフォーマットに沿って格納されていれば簡単だけど、上記のように 20170824
だとそれぞれでAlter Tableを叩かないといけないのでめんどくさい・・・
ので、開始日と終了日を指定してわーっとAlter Table叩いてくれるShell Scriptを書きました。
#!/bin/sh
STARTDATE=2016-11-01
ENDDATE=2020-10-31
CURRENTDATE=$STARTDATE
while [ 1 ] ; do
CURRENTYEAR=`date -d "$CURRENTDATE" "+%Y"`
CURRENTMONTH=`date -d "$CURRENTDATE" "+%m"`
CURRENTDAY=`date -d "$CURRENTDATE" "+%d"`
aws --region ap-northeast-1 athena start-query-execution --query-string "ALTER TABLE データベース名.テーブル名 ADD PARTITION (year=$CURRENTYEAR,month=$CURRENTMONTH,day=$CURRENTDAY) location 's3://バケット名/HOGE/$CURRENTYEAR$CURRENTMONTH$CURRENTDAY/'" --result-configuration OutputLocation=s3://結果出力先
if [ $CURRENTDATE = $ENDDATE ] ; then
break
fi
CURRENTDATE=`date -d "$CURRENTDATE 1day" "+%Y-%m-%d"`
done
おしまい。
Author And Source
この問題について(Amazon Athenaのパーティション追加めんどくさい), 我々は、より多くの情報をここで見つけました https://qiita.com/ssossan/items/6a4320b9e40af9a132c3著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .