私がやろうとしているのは、AWS Glue を使用して S3 バケットのデータをクロールすることです。ネストされた json とパスとして保存されたデータは次のようになります。
s3://my-bucket/some_id/some_subfolder/datetime.json
デフォルトのクローラー(カスタム分類子なし)を実行すると、パスに基づいて分割され、期待どおりにjsonが逆シリアル化されますが、別のフィールドでファイル名からタイムスタンプも取得したいと思います。今のところ、クローラーはそれを省略しています。
たとえば、クローラーを実行すると:
s3://my-bucket/10001/fromage/2017-10-10.json
次のようなテーブル スキーマを取得します。
- パーティション 1: 10001
- パーティション2:フロマージュ
- 配列: JSON データ
Grok パターンに基づいてカスタム分類子を追加しようとしました。
%{INT:id}/%{WORD:source}/%{TIMESTAMP_ISO8601:timestamp}
ただし、クローラーを再実行するたびに、カスタム分類子がスキップされ、デフォルトの JSON 分類子が使用されます。明らかに解決策として、クローラーを実行する前に JSON 自体にファイル名を追加できますが、この手順を回避できるかどうか疑問に思っていましたか?