Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
©10X, Inc. All Rights Reserved. dbtを使ったELTデータパイプライン構築と運 用事例 DataEngineeringStudy#13 株式会社10X 瀧本晋也
Slide 2
Slide 2 text
登壇者 - 瀧本晋也( @takimo ) - 株式会社10X所属のアナリティクスエンジニア - 前職ではプロダクトエンジニア、Webマーケ ティング、リテールマーケティング等々を担当 - dbt Slackコミュニティのtokyoチャンネルの チャンピオン(コミュニティオーガナイザー)
Slide 3
Slide 3 text
今日お話することのまとめ - dbtは小さいチームでも高度なデータモデリングとチームでの開 発体制を整えられる良いツール - データ変換のツールなのでDWHを作るのはもちろん、DWHを作 るだけじゃない形で使うこともできる - コミュニティが盛んなので気軽にJOIN
Slide 4
Slide 4 text
©10X, Inc. All Rights Reserved. 10Xが取り組むStailerの紹介をさせてください Stailerの紹介
Slide 5
Slide 5 text
No content
Slide 6
Slide 6 text
No content
Slide 7
Slide 7 text
No content
Slide 8
Slide 8 text
No content
Slide 9
Slide 9 text
©10X, Inc. All Rights Reserved. 問題と課題に対してのアプローチ事例 dbtが解決するものは何か?
Slide 10
Slide 10 text
こんな課題ありませんか?
Slide 11
Slide 11 text
その1: 影響範囲がわからない改修が難しいクエリ - BigQueryのコンソールから作れた秘 伝のViewテーブルの依存関係 - なぜこのロジックになっているのか わからない処理 - テーブルが扱うデータの正常系が わからない
Slide 12
Slide 12 text
- データパイプラインツールのOPSまで含めた 運用ができるデータエンジニアの採用が市場 全体でも難易度が上がっている - 事業やプロジェクトのフェーズが変わることで データ分析への要求が変化していくが、大元 のDWHやソースデータの処理部分の修正は 別のチームに依頼しなければならず社内でも リソースの確保が難しい その2: データ基盤開発メンバーの長期的な確保や採用の難しさ
Slide 13
Slide 13 text
- Github等のコード管理をしてくれるようなツー ルを導入しながら、事前に修正差分を確認 し、動作に問題が無いことをチェックして反映 をするといったCI/CDを導入するにはワーク フローツールの知識や運用経験、またGithub を使った開発フローの知識が必要 - データテストのための統一された仕組みは少 なく、導入にも知識が必要 その3: チームで品質を担保しながら開発&デプロイの体制作り
Slide 14
Slide 14 text
課題のまとめとdbtを使った解決のアプローチ
Slide 15
Slide 15 text
まずdbtとはなんなのか? - 正式名称は「data build tool」 - dbt Labs社とdbtコミュニティが開発するOSS - 拡張されたSQLを使い、ソフトウェアエンジニア リングのベストプラクティスを取り入れられる開 発ツールであり、データモデリングを信頼性高 く、高速に、楽しくしてくれるもの - ELTにおけるT(データ変換)を担当する
Slide 16
Slide 16 text
ELTとdbtの関係 - ELTとは、Extract(抽出)、 Load(読み込み)、 Transform(変換)の略 - 高速でかつ安価で運用がで きるデータ基盤が台頭し、 データ変換をロードしてから 行うアプローチ - データエンジニアリングの領 域からアナリストの領域に データの管理や処理が染み 出す
Slide 17
Slide 17 text
©10X, Inc. All Rights Reserved. 10Xでどのように使われているのか 10Xでのdbt導入事例
Slide 18
Slide 18 text
10Xでのdbt導入事例 10Xでは2系統でdbtを導入しています 1. DWHやデータマート構築のデータパイプライン 2. 前述のStailerのサービスが処理する外部データのデータ変 換処理のデータパイプライン
Slide 19
Slide 19 text
10X事例:DWHやデータマート構築用のパイプライン
Slide 20
Slide 20 text
10X事例:Stailerが処理する外部データのデータ変換
Slide 21
Slide 21 text
©10X, Inc. All Rights Reserved. 10Xでdbtが10xしてくれた事例
Slide 22
Slide 22 text
SQLさえ分かればアナリストでもデータモデリング開発に参加で きる環境が作れた SELECT文で作る モデル処理 refを使いテーブル間の依存を自動 で解釈する 結果16人がdbtの モデリングをしている
Slide 23
Slide 23 text
dbt runとコマンドするだけでデータパイプラインが自動で組み上 がる安心感 dbt runだけで依存関係を考慮した デプロイが可能 データがおかしくなった、作り直し たくなっても安心!
Slide 24
Slide 24 text
JinjaによるSQLの拡張とオープンソースなライブラリ Jinjaテンプレート機能を使い、SQLの コピペを防ぐ マクロを使って処理を コンポーネント化する 外部で提供されている ライブラリも利用可能
Slide 25
Slide 25 text
ドキュメントをデータリネージと合わせて確認できるドキュメント が作れる yamlで定義するだけでドキュメント が定義可能 デプロイされたモデルに紐づくド キュメントをホスティングしてくれる
Slide 26
Slide 26 text
クエリをGithubで管理し、レビューを通ったものだけデプロイでき るCI/CD環境を簡単に構築できる dbt Cloudを使うと dbtが動くIDE環境でGithub フローでコード管理もできる プルリクエストを作ると自動で デプロイを試行&データテストがクリ アされるかのCIが導入可能
Slide 27
Slide 27 text
モデル処理のSSOT化がしやすい materializedに ephemeralを指定した モデルを定義する ephemeralのモデルを参 照するモデルの処理を実 装する eph_datas.sql コンパイルされて実際に 実行されるSQL モデルはウェアハウスに保存する際の形式として「view」「table(実テーブル)」「ephemeral (一時処理)」を定義可能
Slide 28
Slide 28 text
データの品質を自動でチェックしてくれる YAMLでモデルに対する テストを定義する dbt testで実行できる テストの実行結果が 見れる ※CI/CDも可能 ※スケジュール実行も可能
Slide 29
Slide 29 text
データモデリング人材の採用がしやすくなった SQLがベースのスキルセットなの で、その他にGithubの利用経験が あればワークできる データマネージメントのスキル の向上意欲が高い人が多い
Slide 30
Slide 30 text
ただし困っていることも
Slide 31
Slide 31 text
dbtを運用していて困っている点や課題 - 自由度の高さ、敷居の低さから無法地帯になりかねないので コーディングガイドライン、レビュー、リントチェック等の導入を推 奨 - dbt Cloud IDEは標準的なGithubフローでしかブランチ戦略を取 れない
Slide 32
Slide 32 text
©10X, Inc. All Rights Reserved. まとめ
Slide 33
Slide 33 text
今日のまとめ - dbtは小さいチームでも高度なデータモデリングとチームでの開 発体制を整えられる良いツール - データ変換のツールなのでDWHを作るのはもちろん、DWHを作 るだけじゃない形で使うこともできる - コミュニティが盛んなので気軽にJOIN
Slide 34
Slide 34 text
No content
Slide 35
Slide 35 text
dbt tokyoの紹介 日本のdbtコミュニティがあります。是非気軽に参加してみてくださ い 日本語のドキュメントをまとめ たりしています dbt Slackコミュニティ内に日本 語で話せるチャンネル dbt tokyo Meetupを開催、 GW開けに#3予定
Slide 36
Slide 36 text
Special Thanks - dbtコミュニティのメンバー - 10Xのメンバー - ゆずたそさん、小林さん