Twitterの`created_at`をAthenaのdatetimeに変換する
Twitterのデータを分析用にS3に保存して、AthenaでSQLを投げたりしてるのですが、created_at
の形式がAthenaでのdateに対応した形式では無いので、それをフォーマット出来るSQLを考えました。
Prestodb
AthenaではPrestodbを利用しているようです。
よって、Prestodbのドキュメントから、日付フォーマットに関する情報を見つけました。
6.12. Date and Time Functions and Operators — Presto 0.191 Documentation
parse_datetime(string, format) → timestamp with time zone
parse_datetimeはJodaTimeとの互換性があるとのことで、DateTimeFormat
から対応するパターンを探す。
DateTimeFormat (Joda time 2.2 API)
SQL
SELECT parse_datetime('Tue Dec 05 11:01:38 +0000 2017', 'EEE MMM dd HH:mm:ss Z YYYY') AT TIME ZONE 'Asia/Tokyo'
上記のようなフォーマットで変換する事ができました。 Twitterのcreated_at
ではUTCのため、日本時間に変換する為に、 AT TIME ZONE
も合わせて利用しています。
プログラミングで変換する方法
以下のように、プログラミングで変換する方法も有るようなので、合わせて紹介します。