February 16, 2017

AWS AthenaでPartitionの設定をする

AWS re:Invent 2016で発表されたAthenaというサービスを試してみました。このサービスはS3上にあるデータに対してSQLでデータを取得することが出来ます。一言で言えば、AWS版のBigQueryです。 gzで圧縮されたままのデータに対してもクエリを投げることができ、データをスキャンした量に応じて課金されます。2017年2月15日現在では、1TB あたり5USDと非常に安いです。 BigQuery同様に巨大なデータをうっかりスキャンしてしまうとお金が飛んでいくので注意です。参考: BigQueryで150万円溶かした人の顔 というわけで、日付毎にPartitionを切りましょうという話です。 Englishが得意な皆さんは、https://docs.aws.amazon.com/athena/latest/ug/partitions.html見てもらえば一発ですが、備忘録のために書き残します。 データの準備 下にあるデータを仮定します。 $ cat 20170101.tsv a 1 a 2 a 3 $ cat 20170102.tsv b 1 b 2 b 3 $ cat 20170103.tsv c 1 c 2 c 3 S3に保存する こんな感じです。年月日ごとにログを保存してあるような、よく見る形式です。 $ aws s3 ls athenatest.aws.gepuro.net --recursive 2017-02-15 19:27:10 0 20170101/ 2017-02-15 19:27:28 12 20170101/20170101.tsv 2017-02-15 19:27:15 0 20170102/ 2017-02-15 19:27:42 12 20170102/20170102.tsv 2017-02-15 19:27:18 0 20170103/ 2017-02-15 19:27:53 12 20170103/20170103. Read more

© gepuro 2013