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
2.7k
Dataformとdbtで楽するデータモデリング
Data Engineering Study #13 - ELT・データモデリングツール特集回
na0
April 06, 2022
Tweet
Share
More Decks by na0
See All by na0
BigQuery リリースノート - 2023年上半期 #bq_sushi
na0
3
380
2023 年の BigQuery 権限管理
na0
5
3k
Other Decks in Programming
See All in Programming
CSC509 Lecture 12
javiergs
PRO
0
160
What’s New in Compose Multiplatform - A Live Tour (droidcon London 2024)
zsmb
1
480
Creating a Free Video Ad Network on the Edge
mizoguchicoji
0
120
Enabling DevOps and Team Topologies Through Architecture: Architecting for Fast Flow
cer
PRO
0
340
受け取る人から提供する人になるということ
little_rubyist
0
250
Streams APIとTCPフロー制御 / Web Streams API and TCP flow control
tasshi
2
350
Realtime API 入門
riofujimon
0
150
[Do iOS '24] Ship your app on a Friday...and enjoy your weekend!
polpielladev
0
110
C++でシェーダを書く
fadis
6
4.1k
2024/11/8 関西Kaggler会 2024 #3 / Kaggle Kernel で Gemma 2 × vLLM を動かす。
kohecchi
5
930
イベント駆動で成長して委員会
happymana
1
330
リアーキテクチャxDDD 1年間の取り組みと進化
hsawaji
1
220
Featured
See All Featured
Become a Pro
speakerdeck
PRO
25
5k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
356
29k
Making the Leap to Tech Lead
cromwellryan
133
8.9k
Put a Button on it: Removing Barriers to Going Fast.
kastner
59
3.5k
GitHub's CSS Performance
jonrohan
1030
460k
Why You Should Never Use an ORM
jnunemaker
PRO
54
9.1k
Typedesign – Prime Four
hannesfritz
40
2.4k
Side Projects
sachag
452
42k
Automating Front-end Workflow
addyosmani
1366
200k
Done Done
chrislema
181
16k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
38
1.8k
Documentation Writing (for coders)
carmenintech
65
4.4k
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