Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Dataformとdbtで楽するデータモデリング
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
na0
April 06, 2022
Programming
3.6k
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Dataformとdbtで楽するデータモデリング
Data Engineering Study #13 - ELT・データモデリングツール特集回
na0
April 06, 2022
More Decks by na0
See All by na0
AI Agent 最前線: Agent Development Kit (ADK) から見る AI Agent に必要なインフラ
na0
1
1.3k
データエージェントのためのナレッジカタログ
na0
4
4k
データ活用 3.0 with Socrates
na0
2
2.3k
AI 時代のデータ戦略
na0
8
6.7k
adk-samples に学ぶデータ分析 LLM エージェント開発
na0
3
1.9k
BigQuery でできること、人間がやるべきこと
na0
0
1.4k
データ分析エージェント Socrates の育て方
na0
10
7.3k
AI エージェントと考え直すデータ基盤
na0
26
13k
メルカリにおけるデータアナリティクス AI エージェント「Socrates」と ADK 活用事例
na0
29
37k
Other Decks in Programming
See All in Programming
テストを司るデーモンに会いに行く 〜隔離した仮想マシンでテストを通すまで〜
h1d3mun3
1
500
手動確認はもう限界 〜XCUITestでCustom URL Schemeの遷移を起動種別ごとに自動テストする〜 / Testing Custom URL Schemes with XCUITest
otouto
0
310
SONY CISC-NEWS NWS-1750 + NWB-225 フレームバッファの NetBSD/news68k ドライバ実装 / OSC2026Hiroshima
tsutsui
0
120
Intent as Code
shoppingjaws
6
1k
一人だけ、Kiroが静止する日
hideg
0
120
Go × SIMDで高速化するベクトル検索 ~ルーフラインモデルでSIMDが効く境界を探れ! ~
po3rin
1
2k
選挙速報を多くのユーザーへ 届ける Live Activities 設計
hamayokokuririn
0
150
Augmenting AI with the Power of Jakarta EE
ivargrimstad
0
220
新卒PdEのリアル
ryu1013
1
500
標準パッケージに uuid が追加された 背景から見る Go らしい意思決定 / go_127_uuid_decision
convto
5
7.5k
ゲームコントローラやキーボードのファームウェアをSwiftで書く
kishikawakatsumi
1
250
Augmenting AI with the Power of Jakarta EE
ivargrimstad
0
210
Featured
See All Featured
Become a Pro
speakerdeck
PRO
31
6.3k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
659
62k
BBQ
matthewcrist
89
10k
Technical Leadership for Architectural Decision Making
baasie
3
570
Digital Ethics as a Driver of Design Innovation
axbom
PRO
1
430
Data-driven link building: lessons from a $708K investment (BrightonSEO talk)
szymonslowik
1
1.3k
Art, The Web, and Tiny UX
lynnandtonic
304
22k
Statistics for Hackers
jakevdp
799
230k
Accessibility Awareness
sabderemane
1
210
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
32
4.9k
KATA
mclloyd
PRO
35
15k
Kristin Tynski - Automating Marketing Tasks With AI
techseoconnect
PRO
0
520
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