「Athenaのパーティションでは大文字禁止!」
これを知らずに、ハマりまくりました。(厳密には禁止というか、使えないよ、ということです)
みなさん、同じ溝にハマらないでください。という思いで記載します。
Athenaではパーティションに、大文字(キャメルケースなども)が使えないらしいです。
詳細:
https://docs.aws.amazon.com/ja_jp/athena/latest/ug/msck-repair-table.html
Amazon S3 パスを小文字に変更する
Amazon S3 パスは小文字にする必要があります。S3 パスがキャメルケースの場合、MSCK REPAIR TABLEは、パーティションを AWS Glue データカタログに追加しません。たとえば、S3 パスがuserIdのパーティションは AWS Glue データカタログに追加されません。
つまり、HIVE形式にして
userId=123 といったパーティションは使えないので
userid=123 とフラットケースにしなければなりません。
テーブル作成中にもエラーが出ないし、特にメッセージもなかった(はず)。
MSCK REPAIR TABLEしても、ALTER TABLE ADD PARTITIONをしても、
クエリが0件でヒットする形に、、、なります。
データの形式がおかしいのか、色々回り回った挙句、
ふと、パーティションを小文字にしてみたらデータがロードされた。
他にも、パーセントエンコーディングが必要な文字などは注意が必要だったりします。
基本英数字小文字でs3パスを構成するのが無難のようです。