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を使ったELTデータパイプライン構築と運用事例 - DataEngineering...
Search
10xinc
April 06, 2022
6
6.4k
dbtを使ったELTデータパイプライン構築と運用事例 - DataEngineeringStudy #13
DataEngineeringStudy #13に10Xの瀧本が登壇した際の資料です。
10xinc
April 06, 2022
Tweet
Share
More Decks by 10xinc
See All by 10xinc
スーパーマーケットのこれまでとこれから
10xinc
3
1.9k
データプロダクト開発の歩み
10xinc
5
640
10XにおけるData Contractの導入について: Data Contract事例共有会
10xinc
7
1.7k
10Xでのデータ基盤の変遷とこれから: データマネジメントのリアル 〜BtoB企業3社の歩みとこれから〜
10xinc
6
11k
10Xが掲げるオリジナルの品質特性について #nihonbashitesttalk / 10X quality characteristic
10xinc
2
1.1k
株式会社10X - Culture Deck
10xinc
86
1.4M
データマネジメントを支える武器としてのメタデータ管理
10xinc
7
36k
Elementaryを用いたデータ品質の可視化とデータ基盤の運用改善
10xinc
9
18k
テストの完了をゴールにしない! ~仮説検証を繰り返し、開発・QA・ユーザーが交流しながら開発することで見えてくる理想の姿~ - #RSGT2024 #DevSumi / Shift left and Shift right
10xinc
13
11k
Featured
See All Featured
How STYLIGHT went responsive
nonsquared
95
5.2k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
111
49k
Raft: Consensus for Rubyists
vanstee
137
6.7k
RailsConf 2023
tenderlove
29
940
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
169
50k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
29
2.3k
Rebuilding a faster, lazier Slack
samanthasiow
79
8.7k
Building an army of robots
kneath
302
44k
Fireside Chat
paigeccino
34
3.1k
Become a Pro
speakerdeck
PRO
26
5k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
2
170
BBQ
matthewcrist
85
9.4k
Transcript
©10X, Inc. All Rights Reserved. dbtを使ったELTデータパイプライン構築と運 用事例 DataEngineeringStudy#13 株式会社10X
瀧本晋也
登壇者 - 瀧本晋也( @takimo ) - 株式会社10X所属のアナリティクスエンジニア - 前職ではプロダクトエンジニア、Webマーケ ティング、リテールマーケティング等々を担当
- dbt Slackコミュニティのtokyoチャンネルの チャンピオン(コミュニティオーガナイザー)
今日お話することのまとめ - dbtは小さいチームでも高度なデータモデリングとチームでの開 発体制を整えられる良いツール - データ変換のツールなのでDWHを作るのはもちろん、DWHを作 るだけじゃない形で使うこともできる - コミュニティが盛んなので気軽にJOIN
©10X, Inc. All Rights Reserved. 10Xが取り組むStailerの紹介をさせてください Stailerの紹介
None
None
None
None
©10X, Inc. All Rights Reserved. 問題と課題に対してのアプローチ事例 dbtが解決するものは何か?
こんな課題ありませんか?
その1: 影響範囲がわからない改修が難しいクエリ - BigQueryのコンソールから作れた秘 伝のViewテーブルの依存関係 - なぜこのロジックになっているのか わからない処理 - テーブルが扱うデータの正常系が
わからない
- データパイプラインツールのOPSまで含めた 運用ができるデータエンジニアの採用が市場 全体でも難易度が上がっている - 事業やプロジェクトのフェーズが変わることで データ分析への要求が変化していくが、大元 のDWHやソースデータの処理部分の修正は 別のチームに依頼しなければならず社内でも リソースの確保が難しい
その2: データ基盤開発メンバーの長期的な確保や採用の難しさ
- Github等のコード管理をしてくれるようなツー ルを導入しながら、事前に修正差分を確認 し、動作に問題が無いことをチェックして反映 をするといったCI/CDを導入するにはワーク フローツールの知識や運用経験、またGithub を使った開発フローの知識が必要 - データテストのための統一された仕組みは少 なく、導入にも知識が必要
その3: チームで品質を担保しながら開発&デプロイの体制作り
課題のまとめとdbtを使った解決のアプローチ
まずdbtとはなんなのか? - 正式名称は「data build tool」 - dbt Labs社とdbtコミュニティが開発するOSS - 拡張されたSQLを使い、ソフトウェアエンジニア
リングのベストプラクティスを取り入れられる開 発ツールであり、データモデリングを信頼性高 く、高速に、楽しくしてくれるもの - ELTにおけるT(データ変換)を担当する
ELTとdbtの関係 - ELTとは、Extract(抽出)、 Load(読み込み)、 Transform(変換)の略 - 高速でかつ安価で運用がで きるデータ基盤が台頭し、 データ変換をロードしてから 行うアプローチ
- データエンジニアリングの領 域からアナリストの領域に データの管理や処理が染み 出す
©10X, Inc. All Rights Reserved. 10Xでどのように使われているのか 10Xでのdbt導入事例
10Xでのdbt導入事例 10Xでは2系統でdbtを導入しています 1. DWHやデータマート構築のデータパイプライン 2. 前述のStailerのサービスが処理する外部データのデータ変 換処理のデータパイプライン
10X事例:DWHやデータマート構築用のパイプライン
10X事例:Stailerが処理する外部データのデータ変換
©10X, Inc. All Rights Reserved. 10Xでdbtが10xしてくれた事例
SQLさえ分かればアナリストでもデータモデリング開発に参加で きる環境が作れた SELECT文で作る モデル処理 refを使いテーブル間の依存を自動 で解釈する 結果16人がdbtの モデリングをしている
dbt runとコマンドするだけでデータパイプラインが自動で組み上 がる安心感 dbt runだけで依存関係を考慮した デプロイが可能 データがおかしくなった、作り直し たくなっても安心!
JinjaによるSQLの拡張とオープンソースなライブラリ Jinjaテンプレート機能を使い、SQLの コピペを防ぐ マクロを使って処理を コンポーネント化する 外部で提供されている ライブラリも利用可能
ドキュメントをデータリネージと合わせて確認できるドキュメント が作れる yamlで定義するだけでドキュメント が定義可能 デプロイされたモデルに紐づくド キュメントをホスティングしてくれる
クエリをGithubで管理し、レビューを通ったものだけデプロイでき るCI/CD環境を簡単に構築できる dbt Cloudを使うと dbtが動くIDE環境でGithub フローでコード管理もできる プルリクエストを作ると自動で デプロイを試行&データテストがクリ アされるかのCIが導入可能
モデル処理のSSOT化がしやすい materializedに ephemeralを指定した モデルを定義する ephemeralのモデルを参 照するモデルの処理を実 装する eph_datas.sql コンパイルされて実際に 実行されるSQL
モデルはウェアハウスに保存する際の形式として「view」「table(実テーブル)」「ephemeral (一時処理)」を定義可能
データの品質を自動でチェックしてくれる YAMLでモデルに対する テストを定義する dbt testで実行できる テストの実行結果が 見れる ※CI/CDも可能 ※スケジュール実行も可能
データモデリング人材の採用がしやすくなった SQLがベースのスキルセットなの で、その他にGithubの利用経験が あればワークできる データマネージメントのスキル の向上意欲が高い人が多い
ただし困っていることも
dbtを運用していて困っている点や課題 - 自由度の高さ、敷居の低さから無法地帯になりかねないので コーディングガイドライン、レビュー、リントチェック等の導入を推 奨 - dbt Cloud IDEは標準的なGithubフローでしかブランチ戦略を取 れない
©10X, Inc. All Rights Reserved. まとめ
今日のまとめ - dbtは小さいチームでも高度なデータモデリングとチームでの開 発体制を整えられる良いツール - データ変換のツールなのでDWHを作るのはもちろん、DWHを作 るだけじゃない形で使うこともできる - コミュニティが盛んなので気軽にJOIN
None
dbt tokyoの紹介 日本のdbtコミュニティがあります。是非気軽に参加してみてくださ い 日本語のドキュメントをまとめ たりしています dbt Slackコミュニティ内に日本 語で話せるチャンネル dbt
tokyo Meetupを開催、 GW開けに#3予定
Special Thanks - dbtコミュニティのメンバー - 10Xのメンバー - ゆずたそさん、小林さん