0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【2025/05アップデート】AWS GlueのビジュアルETLでExcelファイルをソースにできるようになりました

Last updated at Posted at 2025-05-30

はじめに

株式会社ジールの @oreo_tです。
2025年5月のアップデートで、AWS GlueのビジュアルETLでExcelファイルをソースにできる機能が追加されたので紹介しようと思います。

今回の更新情報

ビジュアルETLはコンソールのGUIのみで処理構築ができるもので、データソースとしてS3を選択した場合はcsvやjsonといったファイル形式を利用できましたが、Excelファイルをソースとすることはできませんでした。
それが、今回のアップデートで利用できるようになりました。
また、同時に出力ファイル数を自分で設定できるという機能も追加されたため合わせて紹介します。

公式の記事は以下のリンクを参照してください。
https://aws.amazon.com/about-aws/whats-new/2025/05/aws-glue-studio-file-types-single-file-output/

利用方法や注意点について見ていきましょう。

Excelファイルをソースとする設定方法

まずはGlueでビジュアルETLのページに移動し、「Create Job」でビジュアルETLを選択して構築画面に移ります。
image.png

この画面で左のウィンドウから「Amazon S3」を選択してソースのノードを追加します。
image.png

データソースの設定をします。今回はS3に置いたExcelファイルをソースとするので、ソースタイプは「S3 location」、S3 URLはファイルパスを指定、データ形式は「Excel」とします。
このデータ形式が今回新たにアップデートで選択できるようになったものです。
image.png

IAMロールを設定してデータプレビューをすると、中のデータが正常に表示されました。
image.png

今回はこのようなデータを用意しています。
A、B、C列には数値が入っていてD列にはその合計を関数で出すようになっています。
関数で出している値でもプレビューでは数値として表示されているのが分かります。
image.png

続いてターゲットの設定もしていきます。
S3の出力先パスや出力形式を選択した後、今回のアップデートで「File partitioning」の設定項目が追加されました。
ここで「Multiple file output」を選択することで、従来はGlueが自動的にファイル分割をしていたものを、自分でファイルの分割数を設定できるようになります。
ここで「1」を入力することで分割しないこともできます。
image.png

今回はソースとターゲットの確認のため、加工は行わずこの内容で処理を実行したいと思います。

実行後、出力先にファイルができていました。
オプションで指定した通り1ファイルになっています。
image.png

ダウンロードして中身を見てみると、プレビューにも表示されていた内容と同じものがcsvとして書き出されていました。
image.png

このように、Excelファイルを入力としたデータ抽出ができました。
続いて、使用についてポイントを解説します。

仕様について

pythonのコード上の仕様

ソースコードを見ると、pandasのread_excelを利用して読み込んでいることが分かります。
この関数をこのような形式で実行した場合、Excelファイルの1シート目のみを読み込みます。
そのため、複数シートに渡って表があるようなExcelファイルでも1シート目しか読み込まれないため注意が必要です。
また、必ず1行目をヘッダーとして扱うため、ヘッダー無しのExcelファイルは正常に読み込めないことにも注意が必要です。
image.png

また、分割ファイル数の設定についてはここに表れています。
image.png
抽出・加工後のDynamicFrameの分割が指定したオプションのファイル数以上だった場合、指定した数になるようにcoalesceでDynamicFrameが再構築されます。

再帰オプションについて

ソースがcsvファイルなどであれば、ソース設定の「Recursive」にチェックを入れ、S3 URLにフォルダまでを指定することで、フォルダ配下のファイルをすべて読み込んでくれます。
しかし、ソースをExcelファイルにした場合、pandasのread_excelを利用する都合上単一ファイルしか読み込めず、フォルダ名までを指定してRecursiveにチェックを入れても実行時にエラーが発生してしまいます。
これについては、実行でエラーになるものの設定自体はできてしまうため注意が必要です。
image.png

まとめ

ビジュアルETLはプログラミングに詳しくない人でもノーコード開発ができるというメリットがあるため、業務で使うことも多いExcelファイルが対応したのはそういったユースケースともマッチしていて良いかと思いました。
その反面、1シートしか読み込めないなどの制約もあるため、複数シートからの読み取りをしたい場合はビジュアルETLではなく従来のコーディングで対応する、といった使い分けができるとジョブ構築が効率的にできるのではないかと思います。


株式会社ジールでは、「ITリテラシーがない」「初期費用がかけられない」「親切・丁寧な支援がほしい」「ノーコード・ローコードがよい」「運用・保守の手間をかけられない」などのお客様の声を受けて、オールインワン型データ活用プラットフォーム「ZEUSCloud」を月額利用料にてご提供しております。
ご興味がある方は是非下記のリンクをご覧ください:

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?