Lock in $30 Savings on PRO—Offer Ends Soon! ⏳
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
dbtで家計簿アプリ作ってみた
Search
ゲンシュン
January 20, 2025
Technology
1
210
dbtで家計簿アプリ作ってみた
2025/01/20に開催された「datatech-jp Casual Talks #6」の登壇資料です
https://datatech-jp.connpass.com/event/337374/
ゲンシュン
January 20, 2025
Tweet
Share
More Decks by ゲンシュン
See All by ゲンシュン
みん強のこれまでとこれから
genshun9
1
680
本が全く読めなかった過去の自分へ
genshun9
0
1.3k
再現性のある成果を出すデータエンジニアになりたい
genshun9
0
28
2023年のしくじりと学び
genshun9
0
20
データ基盤 今に至るまで
genshun9
0
21
Other Decks in Technology
See All in Technology
Database イノベーショントークを振り返る/reinvent-2025-database-innovation-talk-recap
emiki
0
200
AI-DLCを現場にインストールしてみた:プロトタイプ開発で分かったこと・やめたこと
recruitengineers
PRO
2
150
エンジニアリングマネージャー はじめての目標設定と評価
halkt
0
290
Snowflakeでデータ基盤を もう一度作り直すなら / rebuilding-data-platform-with-snowflake
pei0804
6
1.6k
Gemini でコードレビュー知見を見える化
zozotech
PRO
1
260
Reinforcement Fine-tuning 基礎〜実践まで
ch6noota
0
190
WordPress は終わったのか ~今のWordPress の制作手法ってなにがあんねん?~ / Is WordPress Over? How We Build with WordPress Today
tbshiki
1
780
文字列の並び順 / Unicode Collation
tmtms
3
590
「Managed Instances」と「durable functions」で広がるAWS Lambdaのユースケース
lamaglama39
0
320
新 Security HubがついにGA!仕組みや料金を深堀り #AWSreInvent #regrowth / AWS Security Hub Advanced GA
masahirokawahara
1
2.1k
AIと二人三脚で育てた、個人開発アプリグロース術
zozotech
PRO
1
730
MLflowで始めるプロンプト管理、評価、最適化
databricksjapan
1
250
Featured
See All Featured
A better future with KSS
kneath
240
18k
Stop Working from a Prison Cell
hatefulcrawdad
273
21k
Designing for Performance
lara
610
69k
Product Roadmaps are Hard
iamctodd
PRO
55
12k
Unsuck your backbone
ammeep
671
58k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
12
1.3k
Rails Girls Zürich Keynote
gr2m
95
14k
Building Adaptive Systems
keathley
44
2.9k
The Art of Programming - Codeland 2020
erikaheidi
56
14k
Documentation Writing (for coders)
carmenintech
76
5.2k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
34
2.6k
How GitHub (no longer) Works
holman
316
140k
Transcript
©︎ 2025 gen_shun dbtで家計簿アプリ作ってみた ゲンシュン 1
©︎ 2025 gen_shun ⚫自己紹介 ⚫データエンジニアリングの上げ方 ⚫家計簿アプリについて ⚫学び/感想 お品書き 2
©︎ 2025 gen_shun 3 自己紹介
©︎ 2025 gen_shun データエンジニアやってます、ゲンシュンです。昨年9月に現職へ転職 自己紹介 4
©︎ 2025 gen_shun 全てのアウトプットgen_shunでやってるので、よかったらフォロー! 自己紹介 5
©︎ 2025 gen_shun みん強の企画・運営・司会やってます〜来週開催です! 自己紹介 6
皆さんは普段どうやって データエンジニアリング力を 高めてますか!? 7
©︎ 2025 gen_shun ⚫普段の業務 ⚫書籍を読む ⚫勉強会 / コミュニティでの活動 ⚫OSS活動 ⚫アプリ自作
皆さんはどうやって高めてますか? データエンジニアリングの上げ方 8
©︎ 2025 gen_shun ⚫普段の業務 ◼当たり前。課題を技術で解決出来るとキレイですよね〜 ⚫書籍を読む ⚫勉強会 / コミュニティでの活動 ⚫OSS活動
⚫アプリ自作 皆さんはどうやって高めてますか? データエンジニアリングの上げ方 9
©︎ 2025 gen_shun ⚫普段の業務 ⚫書籍を読む ◼社内/社外で輪読会を色々実施したが、具体例を交えた議論が出来て良き ⚫勉強会 / コミュニティでの活動 ⚫OSS活動
⚫アプリ自作 皆さんはどうやって高めてますか? データエンジニアリングの上げ方 10
©︎ 2025 gen_shun ⚫普段の業務 ⚫書籍を読む ⚫勉強会 / コミュニティでの活動 ◼今回のような場への登壇や、イベント参加で話を聞いたり現地で喋ったり ⚫OSS活動
⚫アプリ自作 皆さんはどうやって高めてますか? データエンジニアリングの上げ方 11
©︎ 2025 gen_shun ⚫普段の業務 ⚫書籍を読む ⚫勉強会 / コミュニティでの活動 ⚫OSS活動 ◼やったことない!今年やりたい
⚫アプリ自作 ◼データ周りでアプリ作ったことないな 皆さんはどうやって高めてますか? データエンジニアリングの上げ方 12
©︎ 2025 gen_shun ⚫前職データ基盤安定後は、プロダクト戦略や事業企画業務が中心 だったので、技術にあまり触れられなかった ⚫データモデリングしたいし、久しぶりにdbtゴリゴリ触りたい〜 ⚫一方現在転職直後だし、現職dbt使っていないしdimensional modeling導入は当分先かな〜 ⚫自分で触るしかねぇ!! ⚫でも、データ周りの自作アプリってあんまり記事見ないな・・?
⚫じゃ自分で作ってみるしかねぇ!! 今の自分の状況 データエンジニアリングの上げ方 13
©︎ 2025 gen_shun 14 てことで、家計簿アプリ作ってみた
©︎ 2025 gen_shun ⚫目的 ⚫データ抽出 ⚫インフラ基盤 ⚫dbtでモデリング ⚫MLする ⚫looker studioで可視化
こんな感じで話します 家計簿アプリを作ってみた 15
©︎ 2025 gen_shun ⚫俺の出費の可視化と妻アラートの導入。 ◼家計簿アプリを見れば済むとか言わない ⚫自分が触ったことない技術を、なるべくたくさん触ってみる ⚫基盤プロジェクト立ち上げのテンプレコード確立できたら良いな 今回の目的はこれ! 家計簿アプリを作ってみた 16
©︎ 2025 gen_shun ⚫妻が管理してきた家計簿アプリから、直近5年のデータをcsv出力。 ◼普段自分見てません、ごめぇん! ◼てか丁寧に管理されたおかげでデータが整ってる!あたたけぇ! ◼このcsvエクスポート機能のためだけに、今回課金した ⚫API周りが結構面倒だったので、ここは手動での出力で妥協 データ抽出について 家計簿アプリを作ってみた
17
©︎ 2025 gen_shun ⚫インフラリソースはterraformで全部管理 ◼データセット、サービスアカウント、role周り ⚫データ基盤はdbtで作り、データはBigQueryへ ⚫github actions経由で、terraform applyとdbt runを実行させる
◼github × WorkloadIdentity周りを対応 ◼mainブランチ取り込み時にterraform applyとdbt run発射させる インフラ基盤について 家計簿アプリを作ってみた 18
©︎ 2025 gen_shun インフラ基盤について。terraform周り(今回モジュールは細かい粒度で) ※諸事 情によ り今回 のアプ リ名c old_waveです
家計簿アプリを作ってみた 19
©︎ 2025 gen_shun インフラ基盤について。github actions周りの雰囲気だけ 家計簿アプリを作ってみた 20
©︎ 2025 gen_shun ⚫stg層:日付の変換や、税や利息などの面倒いデータ除去 ⚫int層:口座間のお金のやり取り(振替)や、各カテゴリの整理 ◼口座A(個人)→口座B(家計)に食費出す場合、全体的にはお金の動きは±0 なのに、単体口座で見ると謎の出費や収入に見える ⚫mart層:dim_categoryとfct_billing_xxxを作り、カテゴリごとの 出費をまとめる モデリングは一旦雑に作る
家計簿アプリを作ってみた 21
©︎ 2025 gen_shun 家計簿アプリを作ってみた 22
©︎ 2025 gen_shun モデリング。dbt docsのリネージはこんな感じ 家計簿アプリを作ってみた 23
©︎ 2025 gen_shun ⚫dbt-osmosisを使ってみた ◼ymlのドキュメント入力補完、結構良い! ⚫dbt exposuresを使ってみた ◼データ利用状況をdbt docsに追記できるやーつで便利! ⚫dbt_mlを使ってみた
◼後述 dbt周りの今回のチャレンジ 家計簿アプリを作ってみた 24
©︎ 2025 gen_shun ⚫リネージで繋がってるテーブルのドキュメントを補完 ⚫左の状態からコマンド実行で右の状態に!すげぇ! dbt-osmosis使ってみた 家計簿アプリを作ってみた 25
©︎ 2025 gen_shun ⚫業務でガッツリMLやったことないので、BQML触ってみる ◼まずは「やってみる」のはじめの一歩が大事! ⚫直近4年のデータを渡し、来月の自分の出費の予測出せばOK ◼精度とかそういうのは無視! ◼欲しいものがあれば買うので、多分ちゃんとした予想無理(笑 dbt_ml使ってみた 家計簿アプリを作ってみた
26
©︎ 2025 gen_shun ⚫ソースコードと来月の出費予想データ。 ◼BQMLサクッとできてすごい〜 dbt_ml使ってみた 家計簿アプリを作ってみた 27
©︎ 2025 gen_shun ⚫LookerStudioで可視化する ⚫データソースはdim_xxxとfct_xxxを参照、レポートを作成してご にょごにょ ⚫接続はサービスアカウント使う ビジュアライゼーション 家計簿アプリを作ってみた 28
©︎ 2025 gen_shun 29 完成したぞ!
©︎ 2025 gen_shun 直近数年の各カテゴリごとの出費。「その他」多すぎ・・ 家計簿アプリを作ってみた 30
©︎ 2025 gen_shun 「その他」を細かい粒度のカテゴリに分解してみたが、うーん。。。? 家計簿アプリを作ってみた 31
©︎ 2025 gen_shun 先月と先々月の出費カテゴリ割合。ほぼモバイルSuicaやんけ!! 家計簿アプリを作ってみた 32
©︎ 2025 gen_shun ヒートマップ的なテーブル作ってみた。こんな感じか〜 家計簿アプリを作ってみた 33
©︎ 2025 gen_shun BQMLによる来月の出費予想!ほぼモバイr(ry 家計簿アプリを作ってみた 34
©︎ 2025 gen_shun 今度は家計の推移を追ってみる。2021年の凹んでる部分はデータの欠損です恐らく 家計簿アプリを作ってみた 35
©︎ 2025 gen_shun ケータイ変更による「携帯電話代」がガクッと下がってるのがわかる!すごい〜 家計簿アプリを作ってみた 36 以前の ケータイ代 安くなってる!!
©︎ 2025 gen_shun 37 学び/感想
©︎ 2025 gen_shun ⚫WEBアプリは個人で作る際に色んな技術やライブラリを触るチャ ンスだが、データ周りはそういうイメージが個人的には無かった ◼デー周りも自作アプリでも全然いろんな技術触ることできる! ◼本で読んだモデリング、業務で試せないなら個人アプリで試すのはあり! ⚫terraform、dbt、開発フロー周りの開発テンプレみたいなの個人 的にできたので満足 ◼そのうちzenn.dev書きます
学び/感想 38
©︎ 2025 gen_shun ⚫気になってた技術とか個人的に一回触れられた! ◼ライブラリやdbtの機能 ◼BQML周りとか ⚫dbtやっぱり最高〜楽しい〜 ⚫ぶっちゃけお題ミス。家計簿アプリを見るで良k(ry 学び/感想 39
©︎ 2025 gen_shun 40 おわり ゲンシュン/genshun