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
DynamoDBからS3(Icebergテーブル)へのZeroETLを行う
Search
afooooil
October 30, 2025
0
51
DynamoDBからS3(Icebergテーブル)へのZeroETLを行う
【AWS】AWS10分LT会 - vol.7 (
https://aws-likers.connpass.com/event/370773/
) で発表させていただいた内容です
afooooil
October 30, 2025
Tweet
Share
More Decks by afooooil
See All by afooooil
AWSで始めるサーバーレスなデータ分析基盤
afooooil
0
220
退屈なことはAI_Agentにやらせよう
afooooil
0
170
Amazon Qとのより良い付き合い方を考える
afooooil
0
190
ZeroETLで始めるDynamoDBとS3の連携
afooooil
0
230
Featured
See All Featured
Become a Pro
speakerdeck
PRO
29
5.6k
Scaling GitHub
holman
463
140k
A Tale of Four Properties
chriscoyier
161
23k
RailsConf 2023
tenderlove
30
1.3k
It's Worth the Effort
3n
187
28k
Mobile First: as difficult as doing things right
swwweet
225
10k
Intergalactic Javascript Robots from Outer Space
tanoku
273
27k
Reflections from 52 weeks, 52 projects
jeffersonlam
355
21k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
31
9.7k
Fantastic passwords and where to find them - at NoRuKo
philnash
52
3.5k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
49
3.1k
Context Engineering - Making Every Token Count
addyosmani
8
330
Transcript
DynamoDBからS3(Icebergテーブル)への ZeroETLを行う 株式会社モリサワ 岡田 晃 AWS10分LT会 - vol.7
自己紹介 岡田 晃 / @afooooil 所属: 株式会社モリサワ ポジション: データエンジニア /
データサイエンティスト 好きなAWSサービス: CloudFormation / Athena
• データの抽出(Extract) • データの変換(Transform) • データの格納(Load) を行う一連のデータパイプライン。マグロの出荷に例えると... ETLとは? 収集 加工
格納
具体的にETLとは? DynamoDBの半構造化データを抽出(Extract)し、扱いやすい表形式へと変換 (Transform)しS3へと配置(Load)する。このような一連の操作をETLという。 ETL
なぜETLを行う必要? - 本番DBに直接、重たい分析クエリは投げられない - DynamoDBはテーブルのJoinなど分析に必要な操作が容易で ない - 他のデータソース(ログ)などと突き合わせて分析したい - 表形式のデータにSQLを用いて簡単にアクセスしたい
本番環境から分離し、データを変換して、分析用DBに格納する
これまでのDynamoDBからのS3へのETL • DynamoDBのPITRをLambdaでS3へコピー • RAWデータをGlue/Athenaなどを用いて変換して加工 後のデータをS3へ格納する
これまでのETLのパイプラインの課題 • DBのスキーマ更新に合わせてパイプラインも改修が必要だった • 差分更新のためには、工夫が必要だった • データを処理するためのロジックを書く必要があった
ZeroETLとは? ZeroETLとは、ETLを行うためのデータパイプラインをユー ザー側で構築を行わずに、マネージドなパイプラインを用いて ETLを行うこと サーバーレスと似たような概念だと思えばわかりやすい? - サーバーの管理をユーザーが行わなくてよいのがサーバーレス - ETLのパイプラインの管理を行わなくて良いのがZeroETL 2024/12にDynamoDBからSageMaker
Lakehouse(S3上へ のIcebergテーブル)へのZeroETLが可能になった。
ZeroETLを用いた場合 • DynamoDBからS3(Icebergテーブル)までのパイプラインの全てがマネー ジドに • マネコン or CLIから設定するだけ(CFnは未対応) パイプラインの構築、保守が不要に!
Icebergテーブルへの連携 • DynamoDBのデータはIcebergテーブルに連携されてAthenaでアクセス 可能 • 半構造データから表形式に変換された形でデータ連携される
ZeroETLのログもIcebergテーブルに ZeroETLを設定すると自動で zetl_integration_table_state というテーブル ができる。 ここではステータスや、実行履歴、レコードの変更数なども管理される。
Apache Icebergとは? Apache IcebergとはOpen Table Formatのひとつ。 - 個々のファイルの集合をあたかも一つのテーブルのように扱える。 - 従来のデータレイクにある課題を解決する次世代のフォーマットとして注目されてい
る。 ZeroETLの観点からの、嬉しい特徴として以下の2つがある - レコードの追加、更新、削除を容易に効率的に行う - スキーマの変更が容易 ここでは紹介しませんが、Icebergには他にも様々な魅力的な機能があります。
Icebergで何が嬉しい? レコードの追加、更新、削除を容易に効率的に行う - レコードの差分更新(Insert, Update, Delete)が容易 - ZeroETLでは15分間隔でDynamoDBのデータの連携が可能になる スキーマの変更が容易 -
カラムの追加など(alter table change column…)が容易 - ZeroETLではDynamoDBに新しいAttributeが追加されると、自動 的にIcebergに新しいカラムが追加される
まとめ • データを抽出、変換、格納して扱いやすい形にすることを ETLという • ZeroETLを用いることで従来必要であったパイプライン構 築や保守のコストが低減される • データの連携先はS3のIcebergテーブルであり、15分間 隔での連携および自動的なスキーマ追従が可能