Help us understand the problem. What is going on with this article?

Glueの使い方的な⑮(クローラー(Crawler)のConfiguration option その2)

More than 1 year has passed since last update.

Crawler Configuration options の効果をみていく

今回使うGlueのリソース名

クローラー名

se2_in8
se2_out11

ジョブ名

se2_job11

データ

入力:in8
出力:out11

全体の流れ

  • 前準備
  • Crawler Configuration option のデフォルト値確認
  • Configuration option の確認
  • AWS Glue でデータストアの削除後のオブジェクトはどのように扱いますか?

前準備

今回使うサンプルログファイル(19件)

Glueの使い方的な②(csvデータをパーティション分割したparquetに変換)のジョブをse2_job10、入力データをin8、出力データをout11として今回利用する。

上記で実行した処理は以下のCSVファイルをyear,month,day,hourでパーティション分割している。

元となったCSVファイルcvlog.csv
deviceid,uuid,appid,country,year,month,day,hour
iphone,11111,001,JP,2017,12,14,12
android,11112,001,FR,2017,12,14,14
iphone,11113,009,FR,2017,12,16,21
iphone,11114,007,AUS,2017,12,17,18
other,11115,005,JP,2017,12,29,15
iphone,11116,001,JP,2017,12,15,11
pc,11118,001,FR,2017,12,01,01
pc,11117,009,FR,2017,12,02,18
iphone,11119,007,AUS,2017,11,21,14
other,11110,005,JP,2017,11,29,15
iphone,11121,001,JP,2017,11,11,12
android,11122,001,FR,2017,11,30,20
iphone,11123,009,FR,2017,11,14,14
iphone,11124,007,AUS,2017,12,17,14
iphone,11125,005,JP,2017,11,29,15
iphone,11126,001,JP,2017,12,19,08
android,11127,001,FR,2017,12,19,14
iphone,11128,009,FR,2017,12,09,04
iphone,11129,007,AUS,2017,11,30,14

今回利用する出力データ(out11)をクローリングしたスキーマ情報

スクリーンショット 0030-05-28 10.27.50.png

Athena によるデータ内容確認

スクリーンショット 0030-08-12 10.58.22.png

Athena によるデータ件数確認

19件

スクリーンショット 0030-08-12 10.58.45.png

ディレクトリ構成

in8に入力ファイル、out11に出力ファイル

$ aws s3 ls s3://test-glue00/se2/in8/
2018-08-12 10:32:00          0 
2018-08-12 10:34:17        691 cvlog.csv
$ aws s3 ls s3://test-glue00/se2/out11/
                           PRE year=2017/
2018-08-12 10:37:11          0 
2018-08-12 10:52:53          0 year=2017_$folder$
$ aws s3 ls s3://test-glue00/se2/out11/year=2017/
                           PRE month=11/
                           PRE month=12/
2018-08-12 10:52:53          0 month=11_$folder$
2018-08-12 10:52:53          0 month=12_$folder$

Crawler Configuration options のデフォルト値確認

スクリーンショット 0030-08-12 11.02.51.png

(いつの間にかGlueコンソールが日本語になっていた)

Configuration option の確認

クローラがデータストアのスキーマ変更を検出した場合に、AWS Glue はデータカタログでテーブルの更新をどのように取り扱いますか?

Glueの使い方的な⑭に書きました

AWS Glue でデータストアの削除後のオブジェクトはどのように扱いますか?

要するに元データが消えたらテーブルどうしますか?という設定。

選択できるオプションは以下の3つです

⑤ データカタログからテーブルを削除する
⑥ 変更を無視して、データカタログのテーブルを変更しない
⑦ データカタログで廃止されたテーブルにマーキングする

⑤ "データカタログからテーブルを削除する"

クローリングした際、元データが削除するとテーブルも削除される

実データ(今回だとS3上のデータ)を削除後、クローラー実行するとテーブルse2_in8が削除されました
以下のようにテーブルの更新はゼロと言う表示ですがテーブルは消えてます

スクリーンショット 0030-08-12 11.28.47.png

ログ見るとデータないからDeletingって出てます

スクリーンショット 0030-08-12 11.30.51.png

⑥ "変更を無視して、データカタログのテーブルを変更しない"

クローリングした際、元データを削除してもテーブルはそのまま変更しない

実データ(今回だとS3上のデータ)を削除後、クローラー実行するとテーブルse2_in8は残りました。

表示は⑤と似たような感じです

⑦ "データカタログで廃止されたテーブルにマーキングする"

クローリングした際、元データが削除するとテーブルに廃止フラグを立てる

実データ(今回だとS3上のデータ)を削除後、クローラー実行するとテーブルse2_in8のプロパティに"DEPRECATED_BY_CRAWLER"が追加されている

※"廃止"のところが いいえ -> はい になるかと思ったが違った(要確認)

スクリーンショット 0030-08-12 12.36.39.png

クロールする前のテーブル情報はこちら

スクリーンショット 0030-08-12 12.35.25.png

廃止について(公式ドキュメントより)

AWS Glue により、Data Catalog のテーブルは元のデータストアに存在しなくなったことが分かると、
そのテーブルは廃止されたとしてデータカタログにマークされます。
廃止されたテーブルを参照するジョブを実行する場合、ジョブは失敗する可能性があります。
廃止されたテーブルを参照するジョブを編集し、ソースおよびターゲットとして削除します。
廃止されたテーブルが不要になったら削除することをお勧めします。

こちらも是非

AWS Glue コンソールでのクローラの設定
https://docs.aws.amazon.com/ja_jp/glue/latest/dg/crawler-configuration.html

Glueの使い方まとめ
https://qiita.com/pioho07/items/32f76a16cbf49f9f712f

pioho07
こちらに記載の内容は所属会社とは関係ありませぬ。
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
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  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
ユーザーは見つかりませんでした