1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

動的なJSONに対するGlueスキーマの安定化

Posted at

背景と課題

スクリーンショット 2024-11-17 10.48.17.png

上記の構成図は、バックエンドのデータがDynamoDBに保存され、それをS3へエクスポートし、Glue TableからRedshiftまでのETLフローを示しています。
Glue Crawler(以後クローラー)は、JSONフィールドを自動的に解析し、その構造に基づいて適切なデータ型(struct型やarray型)に変換します。しかし、この自動変換において以下のような問題が発生します。

スキーマの不一致

  • JSONの構造が動的に変化する場合、Glueスキーマに影響が発生
  • クローラー実行のたびにスキーマ定義が不安定になる

解決方法

この問題を解決するために、JSONフィールドを強制的にstring型として固定します。
これにより、JSONの構造が変化した場合でも、Glueのスキーマは変更されず、安定したデータ処理が実現できます。

期待される効果

JSONフィールドをstring型として扱うことで、以下の効果が得られます

スキーマ変更の防止

  • JSONの構造が変化してもGlueスキーマへの影響を防止
  • クローラー実行時のスキーマ変更を回避
  • 後続のETL処理(例:GlueからRedshiftへのデータロード)時のエラーを防止

まとめ

JSONデータの型をstring型に固定することで、動的に変化するJSONデータ構造に対してもGlueスキーマを安定的に保つことができます。
これにより、後続のETL処理を含むデータ分析基盤全体の安定運用が実現できます。

1
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
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?