LoginSignup
2
0

More than 1 year has passed since last update.

AWS Glue Crawlerで異なる構造を持つ複数のcsvをまとめてクロールするとデータが空になる

Last updated at Posted at 2023-04-23

AWS Glue Crawlerで複数csvから一括でデータカタログを作ったときにデータが空になったときの対処法

結論

csvをまとめてクロールする場合は構造別にフォルダを分けてやる必要があります。

概要

複数のcsvデータをまとめてデータカタログ化する。
以下のサンプルデータをまとめてクロールしてAthenaで見れるところまでやります。

サンプルデータ

user.csv
"user_id","name"
1,"hoge taro"
2,"hoge jiro"
3,"hoge sanro"
user_image.csv
"user_id","image_url"
1,"https://hoge_taro_image.jpg"
2,"https://hoge_jiro_image.jpg"
3,"https://hoge_sanro_image.jpg"

空データの再現

サンプルデータを配置するS3バケットパスはS3://sample/inputとしておきます。
S3://sample/input/user.csv
S3://sample/input/user_image.csv

一見S3://sample/inputをクロールすれば問題なさそうですね。
しかしテーブルとスキーマは正しいのにデータが空の状態になります。
S1_empty_athena.png

対策

この現象はAWS Knowledge Centerで解説されています。
Data for multiple tables stored in the same S3 prefixの項目

説明通りに各構造でフォルダ分けします。
S3://sample/input/user/user.csv
S3://sample/input/user_image/user_image.csv

これでS3://sample/inputを再度クロールすることで無事にデータを確認できました。
S1_Athena_has_records.png

おまけ1

csvの数が多くなると手動でのフォルダ分けは面倒になります。
AWS Glue ETL Jobを使った自動フォルダ分けを追々紹介します。

おまけ2

このままだとデータにダブルクォーテーションが付いているため扱いづらいです。
データのみ抽出する方法を追々紹介します。

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0