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
dbtで家計簿アプリ作ってみた
Search
ゲンシュン
January 20, 2025
Technology
1
51
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
0
2
2023年のしくじりと学び
genshun9
0
2
データ基盤 今に至るまで
genshun9
0
3
Other Decks in Technology
See All in Technology
エンジニアの育成を支える爆速フィードバック文化
sansantech
PRO
3
1.1k
ローカルLLMを活用したコード生成と、ローコード開発ツールへの応用
kazuhitoyokoi
0
140
人はなぜISUCONに夢中になるのか
kakehashi
PRO
6
1.7k
ユーザーストーリーマッピングから始めるアジャイルチームと並走するQA / Starting QA with User Story Mapping
katawara
0
270
速くて安いWebサイトを作る
nishiharatsubasa
15
15k
Amazon S3 Tablesと外部分析基盤連携について / Amazon S3 Tables and External Data Analytics Platform
nttcom
0
150
ESXi で仮想化した ARM 環境で LLM を動作させてみるぞ
unnowataru
0
140
明日からできる!技術的負債の返済を加速するための実践ガイド~『ホットペッパービューティー』の事例をもとに~
recruitengineers
PRO
3
550
Cloud Spanner 導入で実現した快適な開発と運用について
colopl
1
940
短縮URLをお手軽に導入しよう
nakasho
0
120
OSS構成管理ツールCMDBuildを使ったAWSリソース管理の自動化
satorufunai
0
380
利用終了したドメイン名の最強終活〜観測環境を育てて、分析・供養している件〜 / The Ultimate End-of-Life Preparation for Discontinued Domain Names
nttcom
2
340
Featured
See All Featured
Building an army of robots
kneath
303
45k
VelocityConf: Rendering Performance Case Studies
addyosmani
328
24k
The Cost Of JavaScript in 2023
addyosmani
47
7.3k
Become a Pro
speakerdeck
PRO
26
5.1k
The Cult of Friendly URLs
andyhume
78
6.2k
The MySQL Ecosystem @ GitHub 2015
samlambert
250
12k
Build The Right Thing And Hit Your Dates
maggiecrowley
34
2.5k
Building Adaptive Systems
keathley
40
2.4k
Navigating Team Friction
lara
183
15k
Visualization
eitanlees
146
15k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
160
15k
Making Projects Easy
brettharned
116
6k
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