- 新しい順
- 投票が多い順
- コメントが多い順
AWS Glue ジョブの挙動について、ご質問の状況を説明いたします。
複数のワーカーが並列で実行され、一部のワーカーが先にS3にParquetファイルを格納した後、他のワーカーでエラーが発生した場合の挙動は以下のようになります:
-
先に成功したワーカーによって格納されたParquetファイルは、S3に残ります。Glueジョブは、既に完了したタスクの結果を自動的に削除することはありません。
-
エラーが発生したワーカーの処理は停止しますが、これは他のワーカーの既に完了した作業に影響を与えません。
-
ジョブ全体としては失敗として扱われますが、部分的に成功した結果(この場合、S3に格納されたParquetファイル)はそのまま保持されます。
-
エラーの内容や設定によっては、残りのタスクも中止される可能性がありますが、既に完了したタスクの結果は影響を受けません。
このような挙動は、大規模なデータ処理において部分的な成功を活用できるようにするためのものです。ただし、ジョブの完全性や一貫性を確保するためには、エラーハンドリングやリトライのロジックを適切に実装することが重要です。
また、このような状況でデータの整合性を保つためには、出力ファイルの命名規則やバージョニング、あるいはトランザクション的なアプローチを検討することも有効です。例えば、一時的な出力先を使用し、ジョブが完全に成功した場合にのみ最終的な場所に移動するなどの方法があります。
エラーが発生した場合の具体的な挙動や、部分的に成功したデータの取り扱いについては、ジョブの設計や要件に応じて適切に対応することが重要です。
Sources
Enhance monitoring and debugging for AWS Glue jobs using new job observability metrics, Part 3: Visualization and trend analysis using Amazon QuickSight | AWS Big Data Blog
