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
Dataformとdbtで楽するデータモデリング
Search
na0
April 06, 2022
Programming
1
3.2k
Dataformとdbtで楽するデータモデリング
Data Engineering Study #13 - ELT・データモデリングツール特集回
na0
April 06, 2022
Tweet
Share
More Decks by na0
See All by na0
データ分析エージェント Socrates の育て方
na0
8
4.2k
AI エージェントと考え直すデータ基盤
na0
25
10k
メルカリにおけるデータアナリティクス AI エージェント「Socrates」と ADK 活用事例
na0
27
26k
BigQuery リリースノート - 2023年上半期 #bq_sushi
na0
3
450
2023 年の BigQuery 権限管理
na0
5
3.3k
Other Decks in Programming
See All in Programming
AIで開発生産性を上げる個人とチームの取り組み
taniigo
0
120
Repenser les filtres API Platform: une nouvelle syntaxe
vinceamstoutz
2
150
CSC509 Lecture 01
javiergs
PRO
1
430
Web Components で実現する Hotwire とフロントエンドフレームワークの橋渡し / Bridging with Web Components
da1chi
2
1.2k
Let's Write a Train Tracking Algorithm
twocentstudios
0
220
LLMとPlaywright/reg-suitを活用した jQueryリファクタリングの実際
kinocoboy2
4
640
パフォーマンスチューニングで Web 技術を深掘り直す
progfay
18
4.8k
Back to the Future: Let me tell you about the ACP protocol
terhechte
0
120
Advance Your Career with Open Source
ivargrimstad
0
170
高度なUI/UXこそHotwireで作ろう Kaigi on Rails 2025
naofumi
4
2.3k
CSC509 Lecture 03
javiergs
PRO
0
320
Reactをクライアントで使わない
yusukebe
7
6.2k
Featured
See All Featured
Code Reviewing Like a Champion
maltzj
525
40k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
162
15k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
507
140k
Testing 201, or: Great Expectations
jmmastey
45
7.7k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
18
1.2k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
33
2.4k
Agile that works and the tools we love
rasmusluckow
330
21k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
4k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
16k
Designing for humans not robots
tammielis
254
25k
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.5k
Git: the NoSQL Database
bkeepers
PRO
431
66k
Transcript
Dataformとdbtで楽するデータモデリング Data Engineering Study #13 - ELT・データモデリングツール特集回 na0
自己紹介 na0 Naofumi Yamada @na0fu3y データアーキテクト bqfun.jp 管理人 Dataformとdbtで楽するデータモデリング 2
まとめ よりよい意思決定を助けるため、データモデリングを回そう Dataformやdbt Cloudを使うことで、データモデリングの余裕が生まれる はじまる前に Dataformは新規登録停止中、Dataform CLIは利用可能(2022-04-06現在) Dataformとdbtで楽するデータモデリング 3
はじめに 様々なビジネスシーンで、様々な品質のデータが利用されている 高品質なデータによる恩恵 問題の早期検知 より確からしい仮説 施策の定量的な評価 低品質なデータによるリスク 間違った意思決定 (MLモデルを通じた)顧客体験の悪化 Dataformとdbtで楽するデータモデリング
4
低品質なデータの例 項目 どんなデータ? リスク 完全性 欠損などで事実を表現していない 友達紹介料の付与が漏れた 正確性 計測方法や入力に誤りがある メール拒否の顧客にメールを送った
一意性 重複がある データ上の売上が倍になり、 誤った意思決定した 適時性 更新頻度が不足している プレスリリースが1週間遅れた その他 古くなったメタデータ 非推奨のデータとロジックで 過剰にクーポンを配布した データの品質はニーズと照らして定まり、ニーズに合わないなら低品質である Dataformとdbtで楽するデータモデリング 5
ニーズから高品質なデータを定義する 項目 ニーズ どんなデータ? 正確性 DM拒否の顧客を把握する アンケート返答が正しく永続化される 完全性 一意性 正しい売上が計算できる
欠損や重複なく購入ログが記録される 適時性 売上目標達成の翌日に記事を出す 12時間以内の遅延で売上が計算される Lineage データの出どころが検証できる 生成元までの経路が メタデータとして記録される データ活用のためにニーズとデータをくっつけるプロセスが重要 Dataformとdbtで楽するデータモデリング 6
データのモデリング データに対するニーズを整理し、データを洗練し続ける ニーズを満たすことで、次のニーズが明らかになる データの品質保証 ニーズに合ったデータを提供していることを確認し続ける 1. ルールやプロファイリングを、データが満たすか検証する 2. 品質の低いデータが、後続のデータを汚染しないようにパイプラインを停止する Dataformとdbtで楽するデータモデリング
7
Dataformやdbt Cloudでできること データの品質保証に関する関心事を減らし、データモデリングの余裕をつくる スケジュールやログ、通知はDataformやdbt Cloudにおまかせ 事前に定義したルールに基づいてデータがニーズに合っているか検証する Dataformとdbtで楽するデータモデリング 8
Dataform DWH上のデータをSQLで使いやす くTransformするWebサービス 無料 新規登録停止中(2022-04-06現 在) Dataformとdbtで楽するデータモデリング https://docs.dataform.co/introduction より画像を引用 9
Dataformとdbtで楽するデータモデリング https://docs.dataform.co/introduction/dataform-in-5-minutes より画像を引用 10
Dataform CLI DataformのCLIツール、登録不要で利用可能(2022-04-06現在) 実行環境を用意する必要はあるが、Dataformに比べて柔軟に構成できる Dataformと比べて不足する機能 Git統合、データリネージドキュメント 定期実行、Slack通知、ログ $ dataform run
Compiling... Compiled successfully. Running... Dataset created: dataform.example [view] Dataformとdbtで楽するデータモデリング 11
Dataform導入のモチベーション 関心事を減らしたい DWH上でSQLを使ってデータを捏ねたいだけ Apache Airflowは多機能で関心事が増え過ぎる Dataformとdbtで楽するデータモデリング 12
Dataform導入のモチベーション 関心事を減らしたい 定期実行、通知、ログがほしい Dataformとdbtで楽するデータモデリング https://docs.dataform.co/introduction/dataform-in-5-minutes より画像を引用 13
Dataform導入のモチベーション 関心事を減らしたい 定期実行、通知、ログがほしい データの依存順に実行したい 依存関係も見たい Dataformとdbtで楽するデータモデリング https://github.com/dataform-co/dataform より画像を引用 14
Dataform導入の効果 データモデリングに専念できる データ品質が定義、監視できる その他の意識面の改善 Dataformとdbtで楽するデータモデリング 15
データモデリングに専念できる Apache Airflowに比べて運用が楽 データリネージを見て達成感がある SQLを知っていれば、新データの定義ができる ニーズ テスト データ定義 売上目標達成の 翌日に記事を出す
CURRENT_TIMESTAMP() - MAX(created_at) <= INTERVAL 12 HOUR SELECT ... 売上が正しく計算できる uniqueKey: ["id"], nonNull: ["price"] SELECT ... Dataformとdbtで楽するデータモデリング 16
データ品質が定義、監視できる 簡単にテストが書ける テストを満たさないデータは下流に流れないCuircuit Breakerパターン config { type: "table", assertions: {
uniqueKey: ["user_id"], nonNull: ["user_id", "customer_id"], rowConditions: [ 'signup_date is null or signup_date > "2019-01-01"', 'email like "%@%.%"' ] } } select ... Dataformとdbtで楽するデータモデリング 17
その他の意識面の改善 プルリクエストレビューで、ニーズとデータ定義の関係を浸透させる 社内統一言語としてユビキタス言語をつくって、KPIとデータ定義を一致させる データでニーズに応え続ける ニーズを満たすことで、次のニーズが明らかになる 同じようなデータでも、ニーズが異なるなら別テーブルを用意する Dataformとdbtで楽するデータモデリング 18
dbt DWH上のデータをSQLで使いやす くTransformするCLIツール 主要な機能はDataformと同様 (本資料では説明省略) Dataformとdbtで楽するデータモデリング https://www.getdbt.com/ より画像を引用 19
dbt Cloud dbtのWebサービス プランによって有料 Dataformとdbtで楽するデータモデリング https://docs.getdbt.com/docs/dbt-cloud/cloud-ide/the-dbt-ide より画像を引用 20
Dataform / Dataform CLI と dbt Cloud / dbt 主要な機能はいずれも備えるが何を使うべきか
Dataformとdbtで楽するデータモデリング 21
Dataform / Dataform CLIの推し エンジニア不在でも使いやすい Webサービスが無料 カスタマイズせずに使いやすい DWHのSQL構文のリリースに対応しやすい機能を備える Google Cloud統合で便利になるかも?(買収後の情報がない)
欠点 Webサービスは新規登録停止中(2022-04-06現在) CLIツールでドキュメントが生成できない APIはあるものの、Modern Data Stackな製品との連携は控えめ Dataformとdbtで楽するデータモデリング 22
dbt Cloud / dbtの推し エンジニアがいれば、カスタマイズで自由度が高い CLIツールだけでドキュメントが生成できる デプロイ対象の選択自由度が高い スクリプトで動作を調整できる Airbyteから呼び出せる 欠点
ファイル名がプロジェクトユニークで長くなりがち 標準と異なることを実現する場合はSQLの外側のスクリプトと戦う Dataformとdbtで楽するデータモデリング 23
どちらを選ぶか Dataformもdbt Cloudもある程度の要求に応えられる データニーズを考える余裕は生まれるかが重要 やりたいこと、エンジニアリングリソースを勘案 2022-04-06時点、すぐに余裕を作りたいならdbt Cloudがおすすめ Dataformが新規登録可能になったら再度評価しても良いのでは? Dataformとdbtで楽するデータモデリング 24
まとめ よりよい意思決定を助けるため、データモデリングを回そう Dataformやdbt Cloudを使うことで、データモデリングの余裕が生まれる Dataformとdbtで楽するデータモデリング 25
今日話しきれなかったこと お話ししましょう https://meety.net/matches/qXCTVClfZ QtD Dataformとdbtで楽するデータモデリング 26