Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
8
Help us understand the problem. What is going on with this article?
@abetomo

AWS Glueで定期的にクロール。2018-06-01

More than 1 year has passed since last update.

内容

S3にログをアップロードして、それをAthenaで集計するというケースにのみ焦点をあてます。

AWSのGlueのクローラーで1度クロールするとテーブルが作成され、Athenaからselectできるようになります。
しかし、Glueのクローラには定期的に動かす設定もあります。
どのような時に定期的にクロールした方が良いのか一例を紹介します。

Glueのクローラがやってくれること

S3においてあるファイルの内容からよしなにテーブルスキーマを作成してくれます。
カラム名の設定、データの型の設定に加えて パーティション の追加も行なってくれます。

定期的にクローラを動かした方が良い例1

あまりないケースだと思いますが、頻度高めで項目が追加されるような場合は、定期的にクローラを実行してスキーマを更新すると良いでしょう。

定期的にクローラを動かした方が良い例2

おそらくほぼこちらのケースでクローラの定期実行が使われると思います。
それはパーティションの更新です。
https://docs.aws.amazon.com/ja_jp/athena/latest/ug/glue-best-practices.html#schema-crawlers-schedule

基本的には指定のprefixが付いて入れば、S3にファイルを置くだけでAthenaからselectできるようになります。
しかしパーティションがあると、そうならない場合があります

新規で追加されたパーティションの以下にあるファイルはAthenaのselect対象になりません。

具体的には

  • S3のkeyに年月日が入っている BUCKET_NAME/logs/YYYY-MM-DD/AAA.json
  • 年月日がパーティションになっている

以上のような場合を考えます。

keyに年月日が入っているので、毎日ファイルがアップロードされるようなケースです。
パーティションになっている年月日の部分が毎日追加されていきます。
この場合、新しく追加された日のデータはクローラでパーティションを更新しないとAthenaからselectできるようになりません。

  1. 2018-06-01のファイルが新たに置かれる
    • 新しいパーティションが追加された
  2. この後何もしないでAthenaでselectしても2018-06-01のデータはselectできない
  3. Glueでクローラを動かして、パーティションを更新する
  4. Athenaで2018-06-01のデータもselectできるようになる

まとめ

パーティションがあるとGlueのクローラを動かして更新しないとselect対象にならない場合があるので注意です

8
Help us understand the problem. What is going on with this article?
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
abetomo

Comments

No comments
Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account Login
8
Help us understand the problem. What is going on with this article?