Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Glue Studio Visual ETL実装時にハマったこと
Search
KOKI TAMURA
April 12, 2025
Programming
510
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Glue Studio Visual ETL実装時にハマったこと
KOKI TAMURA
April 12, 2025
More Decks by KOKI TAMURA
See All by KOKI TAMURA
SREとは何か、AWSでどう始めるか
kokitamura
4
2.7k
DLTをふんわり理解しよう
kokitamura
0
190
RCPと宣言型ポリシーについてのお話し
kokitamura
1
380
Amazon Nova のトークナイザについて調べてみた
kokitamura
0
220
Other Decks in Programming
See All in Programming
baseline으로 마이그레이션, 리팩토링 안전하게 맡기기
fornewid
1
960
作って学ぶSpring BootのAuto Configuration / JJUG Night Seminar 2026-10-19
rshindo
0
220
graphql-ruby を Spinel で速くしようとした話
mtsmfm
0
140
小さなアプリを作って公開するまで
onozaty
0
150
Будущее локальных LLM – Алексей Голобурдин, PythoNN
sobolevn
0
110
現場と育てるRailsモデリング 〜Spreadsheetから始めたモデル設計〜
siroemk
2
1.2k
Secure Your Coding Agent Like It’s Malware (v1.5) 🇬🇧 @Code.talks 2026
richargh
0
110
AIで開発が速くなった先で、開発チームは何を目指すか
shihochan
1
2k
Web3Dライブラリを作ってVue Custom Rendererの仕組みを理解しよう / lets learn vue custom renderer by making 3d library
drumath2237
1
130
自作Discord音声botをLambda MicroVMsに移行した話 / Migrating My Discord Voice Bot to Lambda MicroVMs
akihisaikeda
1
300
AI時代のFlutter品質設計 — アプリ品質を守るQuality Layers
omatty198
0
360
느린 네트워크와 저사양 디바이스 사용자를 위한 웹뷰 로딩 시간 개선기
kmkim
1
220
Featured
See All Featured
The Mindset for Success: Future Career Progression
greggifford
PRO
0
560
Designing for Performance
lara
612
70k
Leveraging LLMs for student feedback in introductory data science courses - posit::conf(2025)
minecr
1
470
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
35
3.9k
How to Talk to Developers About Accessibility
jct
2
620
What’s in a name? Adding method to the madness
productmarketing
PRO
24
4.2k
DevOps and Value Stream Thinking: Enabling flow, efficiency and business value
helenjbeal
2
440
SEOcharity - Dark patterns in SEO and UX: How to avoid them and build a more ethical web
sarafernandez
0
330
Building Experiences: Design Systems, User Experience, and Full Site Editing
marktimemedia
1
660
Optimising Largest Contentful Paint
csswizardry
37
4k
Why Your Marketing Sucks and What You Can Do About It - Sophie Logan
marketingsoph
0
470
世界の人気アプリ100個を分析して見えたペイウォール設計の心得
akihiro_kokubo
PRO
74
43k
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本立てでやります! お時間ある方は、ぜひ一緒にハンズオンやりましょう タイムテーブル