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

品質・スピード・ガバナンス どれも諦めない欲張りな dbt 運用を目指して

Recruit
March 27, 2023

品質・スピード・ガバナンス どれも諦めない欲張りな dbt 運用を目指して

2023/03/27_『アナリティクスエンジニア』のリアル~リクルートのデータマネジメント、試行錯誤の最前線~での、森田の講演資料になります

Recruit

March 27, 2023
Tweet

More Decks by Recruit

Other Decks in Business

Transcript

  1. © Recruit Co., Ltd. All Rights Reserved 品質・スピード・ガバナンス どれも諦めない欲張りな dbt

    運用を目指して 株式会社リクルート データ推進室 D3M 部 森田 順也 2023/03/27
  2. © Recruit Co., Ltd. All Rights Reserved 自己紹介 森田 順也

    (もりた じゅんや) @jjjjj_kn データ推進室 データテクノロジーユニット D3M 部 アナリティクスエン ジニア SIerにてデータ異常検知の研究開発に携わった後、2019年にリクルー トへ入社。アナリティクスエンジニアとして分析基盤の開発に従事。 data saber。 Podcast https://open.spotify.com/show/6Xc6jNS2p1UqjnPppwO80V?si=WXCP2O58RrePvsjTMomtIw Zenn https://zenn.dev/mjunya1030 2 #recruitdata
  3. © Recruit Co., Ltd. All Rights Reserved 本日お話しすること カーセンサーでは、2020年にdbtの検証を始め、導入して2年以上が経っていま す。長期間運用する中で、モデリングがうまくいかなかったり、分析のスピード感が合

    わなかったり、データの品質に悩んだりしながら、試行錯誤を重ねてきました。 本日はこの試行錯誤をお伝えしたいと思います。最適解ではない部分もありますが、 泥臭いリアルな部分を楽しんでもらえたら嬉しいです。 3 #recruitdata
  4. © Recruit Co., Ltd. All Rights Reserved 4 ご存知でしょうか カーセンサー

    実は、単なる中古車情報サイト ではないんです
  5. © Recruit Co., Ltd. All Rights Reserved CASE: 自動車業界は100年に一度の大変革時台 5

    Connected Autonomous Shared & Services Electrification コネクティッド 自動化 シェアリング 電動化 #recruitdata
  6. © Recruit Co., Ltd. All Rights Reserved クルマの利用シーンを包括的に支援するプラットフォームへ 6 新車

    買いたい 中古車 買いたい 新車 リースしたい 中古車 リースしたい 借りたい カスタマー クライアント Mission クライアントの商いを拡げ、 それによって、 ユーザーの選択肢を拡げる。 #recruitdata
  7. © Recruit Co., Ltd. All Rights Reserved 私たちのMission: あらゆる業務をデータで牽引すること 7

    カーディーラー様に 売れ筋の車種を提案したい! 新規事業で追うべき KPIを 見つけたい! 集客の効果・コストを モニタリングしたい! 営業 企画 マーケティング 提案にそのまま持っていける BIツールを提供 さまざまな軸でドリルダウンでき るデータソースを提供 数値定義を統一した KPIダッシュボードを提供 さまざまなニーズに対応できる柔軟なデータ基盤が必要 #recruitdata
  8. © Recruit Co., Ltd. All Rights Reserved dbt によるデータ変換処理を軸とした分析基盤 8

    Data Lake Cloud Storage Data Mart BigQuery Data Warehouse BigQuery 手動入力マスタ ディーラー様向け アプリ・基盤 カスタマー向け アプリ・基盤 マーケティング向け 営業向け 企画向け 監視・モニタリング Cloud Monitoring モデリング/テスト dbt Core ODS取り込み Cloud Functions データ抽出・ロード Cloud Composer Transform Extract Load Test Modeling Document Version Control Deploy Visualize #recruitdata
  9. © Recruit Co., Ltd. All Rights Reserved 分析基盤はビジネスの進化と共に走ってきた 9 効率化・品質向上

    分析サイクルの多様化 データを武器にした ビジネスへ ディメンショナルモデリングと Single Source of Truth アドホック分析と デプロイフロー Operational Data Source の管理 取り組みテーマ 技術テーマ 前期 中期 後期 前・中・後期の取り組みを、泥臭い部分も含めてご紹介します 本日のメインテーマ! #recruitdata
  10. © Recruit Co., Ltd. All Rights Reserved サイロ化した分析基盤・ツール 11 分析ツールの乱立

    クエリの重複 数値の定義ずれ アクセス解析基盤 営業支援基盤 管理されてない Access, Tableau 業務支援アプリ ログ分析基盤 広告配信基盤 広告配信効果の 振り返り ファネル分析 コホート分析 提案業務の支援 アドホック分析 ディーラー向け 分析ツール KPIモニタリング 統合できれば効率化・高品質化できるが、 全基盤のマイグレーションは難しい… ビジネス背景 #recruitdata
  11. © Recruit Co., Ltd. All Rights Reserved 汎化できる部分のみ SSoT 化し、集中的に保守

    12 初期は dbt の test 機能のみを オプトインして利用* アクセス解析基盤 営業支援基盤 ログ分析基盤 広告配信基盤 テストされ ドキュメントの揃った 単一の ディメンショナルモデル KPIモニタリング マート 営業提案ツール用 マート 広告効果振り返り用 マート 単純な集計処理で分析マートを作成し 品質・生産性向上 Test/Documentation *https://blog.recruit.co.jp/data/articles/data_test_with_dbt/ 汎化できない処理のみ 都度ロジックを書いて集計 スマートなところ #recruitdata
  12. © Recruit Co., Ltd. All Rights Reserved “最強のディメンショナルモデリング”は通用しない 13 ディメション

    ファクト スタースキーマを作るために、多数のサブシステムからテーブルを連携し揃えるのは非現実的... 今あるデータから将来書くクエリを最小化できる SSoT を作る 泥臭いところ #recruitdata
  13. © Recruit Co., Ltd. All Rights Reserved ヒントは既存ツールのクエリにあり 14 既存クエリを自動でCTEごとに図示するツールも活用

    Scheduled Query Google App Script Access Custom SQL Custom Dimension 分析要件を問わず 頻繁に登場する処理を CTEレベルで解析 半年に渡り既存ツールのデバッグ・改修を並行しながら解析し、SSoTを導出 泥臭いところ #recruitdata
  14. © Recruit Co., Ltd. All Rights Reserved 分析サイクルのスピードはビジネスによってさまざま 16 分析サイクル

    課題設定→ログ設計→データ収集→分析→行動... ref. adobe SLOW: 集客効果のモニタリング 月次、年次で統一されたKPIを定常的に振 り返る FAST: 新機能の初速分析 毎週のように課題発見、打ち手実施を行 い、NorthStar となる指標を変えながら 振り返る サイクルの早い分析に どう対応するか? ビジネス背景 #recruitdata
  15. © Recruit Co., Ltd. All Rights Reserved adhoc レイヤーの導入 17

    生成されるモデルが全て view であり、更新jobが不要 で、レイヤーを無視でき、通常の開発フ ローから切り出してリリースできるレイヤ Source Staging Mart Reporting Adhoc スマートなところ #recruitdata
  16. © Recruit Co., Ltd. All Rights Reserved 開発着手 Pull Requrest

    Main Merge Tag adhoc レイヤーの導入 18 生成されるモデルが全て view であり、更新jobが不要 で、レイヤーを無視でき、通常の開発フ ローから切り出してリリースできるレイヤ non-adhoc adhoc dbt SQL設計・実装 dbt SQL設計・実装 dbt JOB設計・実装 開発環境デプロイ 開発環境デプロイ 開発JOBの実行・テーブル生成 開発デプロイ前レビュー 本番デプロイ前レビュー 開発環境データテスト 開発環境データテスト 本番デプロイ前レビュー 本番環境デプロイ 本番環境デプロイ 本番JOBの実行・テーブル生成 本番環境データテスト /Doc生成 本番環境データテスト /Doc生成 開発フロー • テスト • ドキュメンテーション • レビュー 上記全て行いつつ リリースまでの工程を短縮 ガバナンスは どう守るか? スマートなところ #recruitdata
  17. © Recruit Co., Ltd. All Rights Reserved adhoc レイヤの運用・管理 19

    運用ルール(抜粋) • adhoc テーブルを参照するadhocテーブルを作ってはなりません • adhoc で作ったテーブルを、複数の案件で利用してはなりません ◦ adhoc : Tableau = 1:1 を維持してください • adhoc で作ったテーブルを、分析用データソースとして提供しないでください • adhoc でないテーブルなのに、adhoc という接頭辞をつけてはなりません • adhoc テーブルは全て adhoc という接頭辞をつけてください • adhoc で作ったテーブルが長期間運用される場合、リファクタリングをしてください クエリのサイロ化を防ぐため、アドホックレイヤーの運用ルールが必須 *リファクタリング推進について、3/28 dbt tokyo meetup * にてお話しする予定ですので、ぜひお越しください! https://www.meetup.com/tokyo-dbt-meetup/events/292138977/ 泥臭いところ #recruitdata
  18. © Recruit Co., Ltd. All Rights Reserved データを武器にしたビジネスへ 21 これまで

    集めたデータを、ビジネスに生かす これから データで価値創出するために、データ中心にビジネスを変える 販売実績 データ 仕入れ 車種提案 売れ筋 車種レ ポート 提案車種 データ 提案車種の 売れ行き レポート 販売促進 提案 販促 データ ビジネス 分析 データ データ ビジネス 分析 販売 実績 データ 仕入れ 車種 提案 売れ筋 車種 レポート ? ビジネス背景 #recruitdata
  19. © Recruit Co., Ltd. All Rights Reserved データを武器にしたビジネスへ 22 これまで

    集めたデータを、業務に生かす これから データで価値創出するために、データ中心にビジネスを変える 販売実績 データ 仕入れ 車種提案 売れ筋 車種レ ポート 提案内容 データ 提案車種の 売れ行き レポート 販売促進 提案 … ビジネス 分析 データ データ ビジネス 分析 販売 実績 データ 仕入れ 車種 提案 売れ筋 車種 レポート ? データ中心にしたくても、 業務変更は簡単ではない… • 既存の業務支援アプリを改修? • 新規のアプリを作成して業務を変更? 業務影響を最小限に 活きたデータを すぐに分析できる手段が必要 ビジネス背景 #recruitdata
  20. © Recruit Co., Ltd. All Rights Reserved 既存の手入力データを分析基盤に直接取り込み 23 Data

    Lake Cloud Storage Data Mart BigQuery Data Warehouse BigQuery 商談記録 監視・モニタリング Cloud Monitoring モデリング/テスト dbt Core ODS取り込み Cloud Functions データ抽出・ロード Cloud Composer 組織目標 カーディーラー様 在庫状況 個人目標 業務変更を小さくするため、 既存の Excel/GoogleSheets を前提に運用構築 既存業務の変更を小さくしたことで、企画から半期で運用開始 スマートなところ #recruitdata
  21. © Recruit Co., Ltd. All Rights Reserved 年度またぎのスキーマ変更を吸収するゲートレイヤー 24 年度ごとに参照する

    source を切り替え 下流テーブルへの 影響を最小化 Data Lake Cloud Storage 個人目標 (2023年度) Data Lake Cloud Storage Data Mart BigQuery Gate Mart Reporting Source Source 個人目標 (2024年度) スマートなところ #recruitdata
  22. © Recruit Co., Ltd. All Rights Reserved ツールとパイプラインの両テストで不具合を検知・アラート Data Lake

    Cloud Storage 個人目標 (2023年度) Data Lake Cloud Storage Data Mart BigQuery Gate Mart Reporting Source Source 個人目標 (2024年度) 取り込み時テスト Cloud Functions 入力チェック Google App Script source test dbt Core model test dbt Core CSVはBigQueryに 正しく取り込めるか 入力された桁数、形 式は正しいか not_null,unique, relation は正しいか 生成されたテーブルは期待通りか 取り込み時 入力時 毎時 モデル生成時 テスト観点 実施 タイミング 泥臭いところ #recruitdata
  23. © Recruit Co., Ltd. All Rights Reserved Cloud Monitoring 経由で

    slack 通知 泥臭いところ #recruitdata
  24. © Recruit Co., Ltd. All Rights Reserved 変更に対する強さが価値の厳選 28 柔軟な変更を行うには

    ソフトウェア開発のプラクティスが必要条件 • 変更前後でテストできること • リネージを把握し、変更による影響を調査できること • テーブルやマクロを切り出し、DRYにする/責務を分けること 効率化・品質向上 分析サイクルの多様化 データを武器にした ビジネスへ ディメンショナルモデリングと Single Source of Truth アドホック分析と デプロイフロー Operational Data Source の管理 取り組みテーマ 技術テーマ 前期 中期 後期 #recruitdata
  25. © Recruit Co., Ltd. All Rights Reserved カーセンサーには、モダンな分析環境、大規模 なデータ、チャレンジングな課題が揃っていま す。

    アナリティクスエンジニアリングを駆使して 一緒にビジネスを Drive して行く人を、 お待ちしています! 29
  26. © Recruit Co., Ltd. All Rights Reserved この後のセッション 30 講演資料などのハッシュタグ

    #recruitdata イベント終了後にアンケートのご案内もあ りますので、是非ご回答をお願いします! #recruitdata