Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Glue Studio Visual ETL実装時にハマったこと
Search
KOKI TAMURA
April 12, 2025
Programming
1
250
Glue Studio Visual ETL実装時にハマったこと
KOKI TAMURA
April 12, 2025
Tweet
Share
More Decks by KOKI TAMURA
See All by KOKI TAMURA
RCPと宣言型ポリシーについてのお話し
kokitamura
2
200
Amazon Nova のトークナイザについて調べてみた
kokitamura
0
60
Other Decks in Programming
See All in Programming
JetBrainsのAI機能の紹介 #jjug
yusuke
0
200
AIレビュアーをスケールさせるには / Scaling AI Reviewers
technuma
2
200
Constant integer division faster than compiler-generated code
herumi
2
660
The state patternの実践 個人開発で培ったpractice集
miyanokomiya
0
130
20250808_AIAgent勉強会_ClaudeCodeデータ分析の実運用〜競馬を題材に回収率100%の先を目指すメソッドとは〜
kkakeru
0
180
コーディングは技術者(エンジニア)の嗜みでして / Learning the System Development Mindset from Rock Lady
mackey0225
2
490
プロダクトという一杯を作る - プロダクトチームが味の責任を持つまでの煮込み奮闘記
hiliteeternal
0
460
画像コンペでのベースラインモデルの育て方
tattaka
3
1.7k
Amazon Q CLI開発で学んだAIコーディングツールの使い方
licux
3
180
DockerからECSへ 〜 AWSの海に出る前に知っておきたいこと 〜
ota1022
5
1.1k
decksh - a little language for decks
ajstarks
4
21k
Go製CLIツールをnpmで配布するには
syumai
2
1.2k
Featured
See All Featured
Mobile First: as difficult as doing things right
swwweet
223
9.9k
Building Adaptive Systems
keathley
43
2.7k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
44
2.4k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
46
7.6k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
126
53k
Large-scale JavaScript Application Architecture
addyosmani
512
110k
A Modern Web Designer's Workflow
chriscoyier
695
190k
Designing Experiences People Love
moore
142
24k
The Illustrated Children's Guide to Kubernetes
chrisshort
48
50k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
7
810
The Art of Programming - Codeland 2020
erikaheidi
54
13k
Rebuilding a faster, lazier Slack
samanthasiow
83
9.1k
Transcript
Glue Studio Visual ETL実装時にハマったこと K.Tamura
自己紹介 田村 晃輝 虎ノ門のどこかのSIer企業ででエンジニアしています JAWS-UG 富山 / SRE支部メンバー @koki46926199 元
富山県民 エンジニア歴 2年 AWS歴は1年ほど 最近までAWSマルチアカウント管理の設計、構築業務を担当 今日のトピック: JAWS-UG 富山のTシャツ着忘れました
はじめに 普段ETL処理をスクリプトで実装している人が、GUIで実装することができる AWS Glue Visual Editor を触ってみたら大ハマりしたよってお話です…
質問 みなさん AWS Glue って使ったことありますか?? AWS Glue
AWS Glue ざっくり概要 ・ データの変換・統合(Jobs) ・ データの品質管理(Data Quality) ・ オーケストレーション(Workflow)
・ メタデータ管理(Data Catalog, Connections) https://docs.aws.amazon.com/ja_jp/glue/latest/dg/components-key-concepts.html
AWS Glue ざっくり概要 ・ データの変換・統合(Jobs) ・ データの品質管理(Data Quality) ・ オーケストレーション(Workflow)
・ メタデータ管理(Data Catalog, Connections) https://docs.aws.amazon.com/ja_jp/glue/latest/dg/components-key-concepts.html
データの変換・統合(Jobs)の種類 ・ Script Editor(Python Shell, Spark, Ray) ・ Notebook ・
Visual ETL(Spark)
用語解説 各処理を表すボックスのことを ノード と呼びます
ハマったこと一覧 ・ Visual作成時はScriptタブで編集しない ・ 列の型推測について ・ Decimal型の取り扱い ・ Unionするときのテーブルの列順について ・
カスタムコードの実装 ・ (おまけ)DynamicFrame で発生するエラーの追い方
Visual作成時はScriptタブで編集しない スクリプトを編集してジョブを保存するとGUIでの編集が出来なくなります(Visualタブも消失) よって、Visualを編集する場合は、Visual上のみで編集を行いましょう。 https://docs.aws.amazon.com/ja_jp/glue/latest/dg/edit-nodes-script.html Edit scriptクリックすると注意書きを表示してくれます
列の型推測について Visual EditorでDBなどのソースからデータ取り込み時、推測して型変換してくれます 検証時、Unionしたタイミングで型推測して勝手にすべてStringに変換される事象が発生 これに気付かずに集計後テーブルにマージしてしまったので、型の不整合でエラーになりました…
データ型の修正 各ノードのOutput Schemaでも修正は可能ですが、次ノードで再度型推測される場合があります なので、DBに登録行う直前か結合後に Change Schemaで明示的に型変換するのが確実
Decimal型の取り扱い Change Schemaでも桁数指定ができないので SQLで明示的に型変換(CAST)する形で修正していました decimal(15,0)で定義しているデータが、なぜか小数点2桁で表示されてしまう データ型を確認したところdecimal(10,2)に自動的に型変換されていました
Unionするときのテーブルの列順について 列順を完璧に合わせてからUnionしましょう 列が各テーブルで合ってない(列数、命名)はエラーになってはくれますが 列順違ってもそのまま実行されて、データにNullが入ってきます さらにデータも想定した列に入っていないことから、使い物にならなくなるので注意しましょう
カスタムコードの実装 データフレームを使って変換するときに使う Custom Transform は 実施後にそのまま後続のノードを設定すると 変換したデータが反映されていません
カスタムコードを実装した場合に必要になること Custom Transform 後に Select From Collection を挟みましょう この中の 0
にCustom Transformで変換したデータが入ってます
(おまけ)エラーの追い方 「o404.py WriteDynamicFrameの呼び出し中にエラー」 といった、読んでも分からないエラーが出てきます この場合Cloudwatch logs を確認してみると詳細が書いてありますので、見てみましょう
(おまけ)エラーの追い方 ここまで追っていくことで、ようやくエラーの詳細が判明しました 今回は、factory_cd カラムに対して NULL を挿入しようと したことが原因で、エラーが発生しているようです
まとめ ・ Visual作成時はScriptタブで編集しない ・ データ型を各ノードで確認しながら実装しよう ・ カスタムコードの実装後は、 Select From Collection
ノードでデータを取得しよう ・ DynamicFrame で発生するエラーは、 Cloudwatch logs を確認しよう
最後に JAWS-UG 富山 の宣伝 2025/05/10(土) Amazon Bedrock ハンズオン2本立てでやります! お時間ある方は、ぜひ一緒にハンズオンやりましょう タイムテーブル