Upgrade to Pro — share decks privately, control downloads, hide ads and more …

dbtを使ったELTデータパイプライン構築と運用事例 - DataEngineeringStudy #13

10xinc
April 06, 2022
3.7k

dbtを使ったELTデータパイプライン構築と運用事例 - DataEngineeringStudy #13

DataEngineeringStudy #13に10Xの瀧本が登壇した際の資料です。

10xinc

April 06, 2022
Tweet

Transcript

  1. ©10X, Inc. All Rights Reserved.
    dbtを使ったELTデータパイプライン構築と運
    用事例 

    DataEngineeringStudy#13 株式会社10X 瀧本晋也

    View Slide

  2. 登壇者

    - 瀧本晋也( @takimo )

    - 株式会社10X所属のアナリティクスエンジニア

    - 前職ではプロダクトエンジニア、Webマーケ
    ティング、リテールマーケティング等々を担当

    - dbt Slackコミュニティのtokyoチャンネルの
    チャンピオン(コミュニティオーガナイザー)


    View Slide

  3. 今日お話することのまとめ

    - dbtは小さいチームでも高度なデータモデリングとチームでの開
    発体制を整えられる良いツール

    - データ変換のツールなのでDWHを作るのはもちろん、DWHを作
    るだけじゃない形で使うこともできる

    - コミュニティが盛んなので気軽にJOIN


    View Slide

  4. ©10X, Inc. All Rights Reserved.
    10Xが取り組むStailerの紹介をさせてください
    Stailerの紹介


    View Slide

  5. View Slide

  6. View Slide

  7. View Slide

  8. View Slide

  9. ©10X, Inc. All Rights Reserved.
    問題と課題に対してのアプローチ事例
    dbtが解決するものは何か?


    View Slide

  10. こんな課題ありませんか?


    View Slide

  11. その1:

    影響範囲がわからない改修が難しいクエリ

    - BigQueryのコンソールから作れた秘
    伝のViewテーブルの依存関係

    - なぜこのロジックになっているのか
    わからない処理

    - テーブルが扱うデータの正常系が
    わからない


    View Slide

  12. - データパイプラインツールのOPSまで含めた
    運用ができるデータエンジニアの採用が市場
    全体でも難易度が上がっている

    - 事業やプロジェクトのフェーズが変わることで
    データ分析への要求が変化していくが、大元
    のDWHやソースデータの処理部分の修正は
    別のチームに依頼しなければならず社内でも
    リソースの確保が難しい

    その2:

    データ基盤開発メンバーの長期的な確保や採用の難しさ


    View Slide

  13. - Github等のコード管理をしてくれるようなツー
    ルを導入しながら、事前に修正差分を確認
    し、動作に問題が無いことをチェックして反映
    をするといったCI/CDを導入するにはワーク
    フローツールの知識や運用経験、またGithub
    を使った開発フローの知識が必要

    - データテストのための統一された仕組みは少
    なく、導入にも知識が必要

    その3:

    チームで品質を担保しながら開発&デプロイの体制作り


    View Slide

  14. 課題のまとめとdbtを使った解決のアプローチ


    View Slide

  15. まずdbtとはなんなのか?

    - 正式名称は「data build tool」

    - dbt Labs社とdbtコミュニティが開発するOSS

    - 拡張されたSQLを使い、ソフトウェアエンジニア
    リングのベストプラクティスを取り入れられる開
    発ツールであり、データモデリングを信頼性高
    く、高速に、楽しくしてくれるもの

    - ELTにおけるT(データ変換)を担当する


    View Slide

  16. ELTとdbtの関係

    - ELTとは、Extract(抽出)、
    Load(読み込み)、
    Transform(変換)の略

    - 高速でかつ安価で運用がで
    きるデータ基盤が台頭し、
    データ変換をロードしてから
    行うアプローチ

    - データエンジニアリングの領
    域からアナリストの領域に
    データの管理や処理が染み
    出す


    View Slide

  17. ©10X, Inc. All Rights Reserved.
    10Xでどのように使われているのか
    10Xでのdbt導入事例


    View Slide

  18. 10Xでのdbt導入事例

    10Xでは2系統でdbtを導入しています

    1. DWHやデータマート構築のデータパイプライン

    2. 前述のStailerのサービスが処理する外部データのデータ変
    換処理のデータパイプライン


    View Slide

  19. 10X事例:DWHやデータマート構築用のパイプライン


    View Slide

  20. 10X事例:Stailerが処理する外部データのデータ変換


    View Slide

  21. ©10X, Inc. All Rights Reserved.
    10Xでdbtが10xしてくれた事例


    View Slide

  22. SQLさえ分かればアナリストでもデータモデリング開発に参加で
    きる環境が作れた

    SELECT文で作る

    モデル処理

    refを使いテーブル間の依存を自動
    で解釈する

    結果16人がdbtの

    モデリングをしている


    View Slide

  23. dbt runとコマンドするだけでデータパイプラインが自動で組み上
    がる安心感

    dbt runだけで依存関係を考慮した
    デプロイが可能

    データがおかしくなった、作り直し
    たくなっても安心!


    View Slide

  24. JinjaによるSQLの拡張とオープンソースなライブラリ

    Jinjaテンプレート機能を使い、SQLの
    コピペを防ぐ

    マクロを使って処理を

    コンポーネント化する

    外部で提供されている

    ライブラリも利用可能


    View Slide

  25. ドキュメントをデータリネージと合わせて確認できるドキュメント
    が作れる

    yamlで定義するだけでドキュメント
    が定義可能

    デプロイされたモデルに紐づくド
    キュメントをホスティングしてくれる


    View Slide

  26. クエリをGithubで管理し、レビューを通ったものだけデプロイでき
    るCI/CD環境を簡単に構築できる

    dbt Cloudを使うと

    dbtが動くIDE環境でGithub

    フローでコード管理もできる

    プルリクエストを作ると自動で

    デプロイを試行&データテストがクリ
    アされるかのCIが導入可能


    View Slide

  27. モデル処理のSSOT化がしやすい

    materializedに

    ephemeralを指定した

    モデルを定義する

    ephemeralのモデルを参
    照するモデルの処理を実
    装する

    eph_datas.sql

    コンパイルされて実際に
    実行されるSQL

    モデルはウェアハウスに保存する際の形式として「view」「table(実テーブル)」「ephemeral
    (一時処理)」を定義可能


    View Slide

  28. データの品質を自動でチェックしてくれる

    YAMLでモデルに対する

    テストを定義する

    dbt testで実行できる
 テストの実行結果が

    見れる

    ※CI/CDも可能

    ※スケジュール実行も可能

    View Slide

  29. データモデリング人材の採用がしやすくなった

    SQLがベースのスキルセットなの
    で、その他にGithubの利用経験が
    あればワークできる

    データマネージメントのスキル

    の向上意欲が高い人が多い


    View Slide

  30. ただし困っていることも


    View Slide

  31. dbtを運用していて困っている点や課題

    - 自由度の高さ、敷居の低さから無法地帯になりかねないので
    コーディングガイドライン、レビュー、リントチェック等の導入を推
    奨

    - dbt Cloud IDEは標準的なGithubフローでしかブランチ戦略を取
    れない


    View Slide

  32. ©10X, Inc. All Rights Reserved.
    まとめ


    View Slide

  33. 今日のまとめ

    - dbtは小さいチームでも高度なデータモデリングとチームでの開
    発体制を整えられる良いツール

    - データ変換のツールなのでDWHを作るのはもちろん、DWHを作
    るだけじゃない形で使うこともできる

    - コミュニティが盛んなので気軽にJOIN


    View Slide

  34. View Slide

  35. dbt tokyoの紹介

    日本のdbtコミュニティがあります。是非気軽に参加してみてくださ
    い

    日本語のドキュメントをまとめ
    たりしています

    dbt Slackコミュニティ内に日本
    語で話せるチャンネル

    dbt tokyo Meetupを開催、
    GW開けに#3予定


    View Slide

  36. Special Thanks

    - dbtコミュニティのメンバー

    - 10Xのメンバー

    - ゆずたそさん、小林さん


    View Slide