見出し画像

【AWS Glue】Glueを使ってみて地味に困った・面倒だったこと色々

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

現在AWS Glueを使ってS3に格納されたデータをETL処理してAmazon Redshiftに登録したり、Amazon Redshiftのデータを加工してファイルを作成・S3にアップロードすることをやっています
その中で困ったこと、面倒だったことがあったのでシェアしたいと思います
これからAWS Glueを使おうかなと考えている方の検討材料になれば幸いです

1:ファイル名に全角括弧→()【】が含まれているとエラーになる

S3に格納されたファイル名に()や【】の全角括弧が含まれていた場合、S3 URLにフォルダを指定してフォルダ配下のファイルに対して処理を実行するとエラー終了してしまいます
※フォルダではなくファイルまでS3 URLに指定するとエラーは起きませんでした
※今回は()、【】で発生しましたがそのほかの括弧でも起きるのかは未検証です
→Python Shellでファイル名を変更してから以降の処理を実施しました
re.sub()を使って文字列を置換

replace_filename = re.sub('(|)|【|】', '', filename)

2:Amazon Redshiftで列名に使える文字がAWS Glueではエラーになる

Amazon Redshiftでは英大文字が列名に使用できますが、AWS GlueからRedshiftに対して登録しようとするとき、Glueは小文字しか対応していないようでエラーになります
→Glueを使う前提であれば、Redshiftの列名には英大文字を使わないようにする必要があります

3:ジョブ複製時、DPUsの値を引き継いでくれない

ETLジョブの場合、デフォルトのDPUsが10となっており、そのまま使ってしまうと料金が高くなってしまうのでまずは最低数の2に変更して検証を行っています
ジョブを複製した場合、複製元のDPUsが2であってもデフォルトの10が設定されてしまい変更を忘れそうになるのでDPUsも引き継いでくれるとありがたいなと思います

Glueを使い始めてまだ日が浅いので、これから使っていく中でまた困りごとが出てきたら更新したいと思います!

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