見出し画像

【AWS Glue】ソースファイル読み込み時のマルチライン指定

※2024年7月時点の情報です

事象

  • S3に格納されたcsvファイルを読み込みRedshiftのテーブルに登録しようとすると「String length exceeds DDL length」のエラーが発生した

  • csvファイルを分割するとエラーは発生しない

原因

  • 「Records in source files can span multiple lines」の設定が機能しておらず、複数行にまたがったレコードの登録に失敗していた

    • 本来、上記項目にチェックを入れると「multiLine」とスクリプト生成されるべきところが「multiline」と全て小文字で生成されてしまっており、マルチライン指定が機能していない(Visual ETL のスクリプト生成処理の不備)

    • Glueではファイルの容量が大きい場合、自動で分割して読み込みを行うが、複数行にまたがっているデータの途中で分割されてしまったことが原因
      そのため複数行にまたがっているデータがあるからといって必ず本事象が起こるわけではない

対処方法

  • スクリプトモードに切り替え、「multiline」→「multiLine」に修正する

    • ※一度スクリプトを編集するとVisualモードに戻すことができないので注意!

    • 試す場合は複製してからスクリプトモードに切り替えるのがよい

AWSサポートに問い合わせた際、「サービス側の改善が必要」と回答ありましたが、修正時期は未定のようです

この記事が気に入ったらサポートをしてみませんか?