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 運用を目指して
Search
Recruit
PRO
March 27, 2023
Business
3
2.9k
品質・スピード・ガバナンス どれも諦めない欲張りな dbt 運用を目指して
2023/03/27_『アナリティクスエンジニア』のリアル~リクルートのデータマネジメント、試行錯誤の最前線~での、森田の講演資料になります
Recruit
PRO
March 27, 2023
Tweet
Share
More Decks by Recruit
See All by Recruit
Curiosity & Persistence
recruitengineers
PRO
2
37
結果的にこうなった。から見える メカニズムのようなもの。
recruitengineers
PRO
1
110
成長実感と伸び悩みからふりかえる キャリアグラフ
recruitengineers
PRO
1
40
リクルートの オンプレ環境の未来を語る
recruitengineers
PRO
2
37
LLMのプロダクト装着と独自モデル開発
recruitengineers
PRO
0
44
新規検索基盤でマッチング精度向上に挑む! ~『ホットペッパーグルメ』の開発事例 ビジネス編
recruitengineers
PRO
1
25
新規検索基盤でマッチング精度向上に挑む! ~『ホットペッパーグルメ』の開発事例 技術編
recruitengineers
PRO
0
27
大規模プロダクトにおける フロントエンドモダナイズの取り組み紹介
recruitengineers
PRO
4
66
技術的ミスと深堀り
recruitengineers
PRO
3
52
Other Decks in Business
See All in Business
TORIHADA 採用候補者向け会社説明資料
torihada_inc
0
2.4k
How should you respond to feedback from reviews and tests
kitanosirokuma
3
200
unnameカルチャーブック 2025.02.21 update
unnameinc
6
17k
20250220_生成AIで実現する業務改革とは?活用事例とデモでご紹介!
suzakiyoshito
0
260
わわわ理念制作所 紹介資料
yuadachi
1
450
株式会社SAFELY 会社紹介 / Company
safely_pr
1
460
見積り、計画の考え方や手法についてビープラウドの場合を紹介します/ introduce-the-concept-and-method-of-estimation-and-planning-in-the-case-of-BeProud
haru860
6
2.4k
セーフィーにおけるMagicpod活用の歴史と改善の取り組み
jmorishige
0
160
27.02.2025 El mercado cuartohorario de electricidad
neuroenergia
PRO
0
120
Alp_CompanyDeck.pdf
alpinc
0
380
みんなのコード2020-2024
akikosuginohara
0
110
株式会社AbemaTV 会社説明資料
abematv
2
1.9k
Featured
See All Featured
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
134
33k
Product Roadmaps are Hard
iamctodd
PRO
51
11k
It's Worth the Effort
3n
184
28k
BBQ
matthewcrist
87
9.5k
How to Think Like a Performance Engineer
csswizardry
22
1.4k
The Cult of Friendly URLs
andyhume
78
6.2k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
100
18k
Being A Developer After 40
akosma
89
590k
StorybookのUI Testing Handbookを読んだ
zakiyama
28
5.5k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
33
2.1k
How to Ace a Technical Interview
jacobian
276
23k
Six Lessons from altMBA
skipperchong
27
3.6k
Transcript
© Recruit Co., Ltd. All Rights Reserved 品質・スピード・ガバナンス どれも諦めない欲張りな dbt
運用を目指して 株式会社リクルート データ推進室 D3M 部 森田 順也 2023/03/27
© 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
© Recruit Co., Ltd. All Rights Reserved 本日お話しすること カーセンサーでは、2020年にdbtの検証を始め、導入して2年以上が経っていま す。長期間運用する中で、モデリングがうまくいかなかったり、分析のスピード感が合
わなかったり、データの品質に悩んだりしながら、試行錯誤を重ねてきました。 本日はこの試行錯誤をお伝えしたいと思います。最適解ではない部分もありますが、 泥臭いリアルな部分を楽しんでもらえたら嬉しいです。 3 #recruitdata
© Recruit Co., Ltd. All Rights Reserved 4 ご存知でしょうか カーセンサー
実は、単なる中古車情報サイト ではないんです
© Recruit Co., Ltd. All Rights Reserved CASE: 自動車業界は100年に一度の大変革時台 5
Connected Autonomous Shared & Services Electrification コネクティッド 自動化 シェアリング 電動化 #recruitdata
© Recruit Co., Ltd. All Rights Reserved クルマの利用シーンを包括的に支援するプラットフォームへ 6 新車
買いたい 中古車 買いたい 新車 リースしたい 中古車 リースしたい 借りたい カスタマー クライアント Mission クライアントの商いを拡げ、 それによって、 ユーザーの選択肢を拡げる。 #recruitdata
© Recruit Co., Ltd. All Rights Reserved 私たちのMission: あらゆる業務をデータで牽引すること 7
カーディーラー様に 売れ筋の車種を提案したい! 新規事業で追うべき KPIを 見つけたい! 集客の効果・コストを モニタリングしたい! 営業 企画 マーケティング 提案にそのまま持っていける BIツールを提供 さまざまな軸でドリルダウンでき るデータソースを提供 数値定義を統一した KPIダッシュボードを提供 さまざまなニーズに対応できる柔軟なデータ基盤が必要 #recruitdata
© 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
© Recruit Co., Ltd. All Rights Reserved 分析基盤はビジネスの進化と共に走ってきた 9 効率化・品質向上
分析サイクルの多様化 データを武器にした ビジネスへ ディメンショナルモデリングと Single Source of Truth アドホック分析と デプロイフロー Operational Data Source の管理 取り組みテーマ 技術テーマ 前期 中期 後期 前・中・後期の取り組みを、泥臭い部分も含めてご紹介します 本日のメインテーマ! #recruitdata
© Recruit Co., Ltd. All Rights Reserved 前期: ディメンショナルモデリングとSSoT 10
#recruitdata
© Recruit Co., Ltd. All Rights Reserved サイロ化した分析基盤・ツール 11 分析ツールの乱立
クエリの重複 数値の定義ずれ アクセス解析基盤 営業支援基盤 管理されてない Access, Tableau 業務支援アプリ ログ分析基盤 広告配信基盤 広告配信効果の 振り返り ファネル分析 コホート分析 提案業務の支援 アドホック分析 ディーラー向け 分析ツール KPIモニタリング 統合できれば効率化・高品質化できるが、 全基盤のマイグレーションは難しい… ビジネス背景 #recruitdata
© 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
© Recruit Co., Ltd. All Rights Reserved “最強のディメンショナルモデリング”は通用しない 13 ディメション
ファクト スタースキーマを作るために、多数のサブシステムからテーブルを連携し揃えるのは非現実的... 今あるデータから将来書くクエリを最小化できる SSoT を作る 泥臭いところ #recruitdata
© Recruit Co., Ltd. All Rights Reserved ヒントは既存ツールのクエリにあり 14 既存クエリを自動でCTEごとに図示するツールも活用
Scheduled Query Google App Script Access Custom SQL Custom Dimension 分析要件を問わず 頻繁に登場する処理を CTEレベルで解析 半年に渡り既存ツールのデバッグ・改修を並行しながら解析し、SSoTを導出 泥臭いところ #recruitdata
© Recruit Co., Ltd. All Rights Reserved 中期: アドホック分析とデプロイフロー 15
#recruitdata
© Recruit Co., Ltd. All Rights Reserved 分析サイクルのスピードはビジネスによってさまざま 16 分析サイクル
課題設定→ログ設計→データ収集→分析→行動... ref. adobe SLOW: 集客効果のモニタリング 月次、年次で統一されたKPIを定常的に振 り返る FAST: 新機能の初速分析 毎週のように課題発見、打ち手実施を行 い、NorthStar となる指標を変えながら 振り返る サイクルの早い分析に どう対応するか? ビジネス背景 #recruitdata
© Recruit Co., Ltd. All Rights Reserved adhoc レイヤーの導入 17
生成されるモデルが全て view であり、更新jobが不要 で、レイヤーを無視でき、通常の開発フ ローから切り出してリリースできるレイヤ Source Staging Mart Reporting Adhoc スマートなところ #recruitdata
© 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
© 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
© Recruit Co., Ltd. All Rights Reserved 後期: データを武器にしたビジネスへ 20
#recruitdata
© Recruit Co., Ltd. All Rights Reserved データを武器にしたビジネスへ 21 これまで
集めたデータを、ビジネスに生かす これから データで価値創出するために、データ中心にビジネスを変える 販売実績 データ 仕入れ 車種提案 売れ筋 車種レ ポート 提案車種 データ 提案車種の 売れ行き レポート 販売促進 提案 販促 データ ビジネス 分析 データ データ ビジネス 分析 販売 実績 データ 仕入れ 車種 提案 売れ筋 車種 レポート ? ビジネス背景 #recruitdata
© Recruit Co., Ltd. All Rights Reserved データを武器にしたビジネスへ 22 これまで
集めたデータを、業務に生かす これから データで価値創出するために、データ中心にビジネスを変える 販売実績 データ 仕入れ 車種提案 売れ筋 車種レ ポート 提案内容 データ 提案車種の 売れ行き レポート 販売促進 提案 … ビジネス 分析 データ データ ビジネス 分析 販売 実績 データ 仕入れ 車種 提案 売れ筋 車種 レポート ? データ中心にしたくても、 業務変更は簡単ではない… • 既存の業務支援アプリを改修? • 新規のアプリを作成して業務を変更? 業務影響を最小限に 活きたデータを すぐに分析できる手段が必要 ビジネス背景 #recruitdata
© 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
© 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
© 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
© Recruit Co., Ltd. All Rights Reserved Cloud Monitoring 経由で
slack 通知 泥臭いところ #recruitdata
© Recruit Co., Ltd. All Rights Reserved カーセンサーにとって アナリティクスエンジニアリングとは 27
#recruitdata
© Recruit Co., Ltd. All Rights Reserved 変更に対する強さが価値の厳選 28 柔軟な変更を行うには
ソフトウェア開発のプラクティスが必要条件 • 変更前後でテストできること • リネージを把握し、変更による影響を調査できること • テーブルやマクロを切り出し、DRYにする/責務を分けること 効率化・品質向上 分析サイクルの多様化 データを武器にした ビジネスへ ディメンショナルモデリングと Single Source of Truth アドホック分析と デプロイフロー Operational Data Source の管理 取り組みテーマ 技術テーマ 前期 中期 後期 #recruitdata
© Recruit Co., Ltd. All Rights Reserved カーセンサーには、モダンな分析環境、大規模 なデータ、チャレンジングな課題が揃っていま す。
アナリティクスエンジニアリングを駆使して 一緒にビジネスを Drive して行く人を、 お待ちしています! 29
© Recruit Co., Ltd. All Rights Reserved この後のセッション 30 講演資料などのハッシュタグ
#recruitdata イベント終了後にアンケートのご案内もあ りますので、是非ご回答をお願いします! #recruitdata