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.8k
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
KubeCon + CloudNativeCon NA 2024 Overviewat Kubernetes Meetup Tokyo #68 / amsy810_k8sjp68
masayaaoyama
0
250
Mermaid x AST x 生成AI = コードとドキュメントの完全同期への道
shibuyamizuho
0
160
layerx_20241129.pdf
kyoheig3
2
290
Jakarta EE meets AI
ivargrimstad
0
230
Zoneless Testing
rainerhahnekamp
0
120
testcontainers のススメ
sgash708
1
120
今からはじめるAndroidアプリ開発 2024 / DevFest 2024
star_zero
0
1k
Haze - Real time background blurring
chrisbanes
1
500
Security_for_introducing_eBPF
kentatada
0
110
RWC 2024 DICOM & ISO/IEC 2022
m_seki
0
200
Effective Signals in Angular 19+: Rules and Helpers @ngbe2024
manfredsteyer
PRO
0
130
Symfony Mapper Component
soyuka
2
730
Featured
See All Featured
A Tale of Four Properties
chriscoyier
157
23k
Building Applications with DynamoDB
mza
91
6.1k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
229
52k
Writing Fast Ruby
sferik
628
61k
Fashionably flexible responsive web design (full day workshop)
malarkey
405
65k
Fireside Chat
paigeccino
34
3.1k
Building Better People: How to give real-time feedback that sticks.
wjessup
365
19k
Imperfection Machines: The Place of Print at Facebook
scottboms
266
13k
Adopting Sorbet at Scale
ufuk
73
9.1k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
44
6.9k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
226
22k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
191
16k
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