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