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.8k
品質・スピード・ガバナンス どれも諦めない欲張りな dbt 運用を目指して
2023/03/27_『アナリティクスエンジニア』のリアル~リクルートのデータマネジメント、試行錯誤の最前線~での、森田の講演資料になります
Recruit
PRO
March 27, 2023
Tweet
Share
More Decks by Recruit
See All by Recruit
Balancing Revenue Goals and Off-Policy Evaluation Performance in Coupon Allocation
recruitengineers
PRO
1
19
Flutterによる 効率的なAndroid・iOS・Webアプリケーション開発の事例
recruitengineers
PRO
0
120
VPC Traffic Mirroring とOSS を利⽤した ネットワークフォレンジック基盤の構築・運⽤
recruitengineers
PRO
1
46
スタサプ ForSCHOOLアプリのシンプルな設計
recruitengineers
PRO
3
1.1k
リクルート流データ基盤塾~鶴谷と学ぶ~
recruitengineers
PRO
5
250
『SUUMO』 スマホサイト デザインリニューアルへの挑戦
recruitengineers
PRO
5
340
『リクルートダイレクトスカウト』 のリニューアルから振り返る: ビジョンドリブンの可能性
recruitengineers
PRO
3
310
負債あるモノリスのオブザーバビリティに組織で向き合う
recruitengineers
PRO
9
400
あなたの知らないiOS開発の世界
recruitengineers
PRO
4
330
Other Decks in Business
See All in Business
株式会社Beer and Tech/HitoHana(ひとはな) 採用資料 2024.11
beerandtech_recruiter
1
620
サスメド株式会社 Culture Deck
susmed
0
37k
VANISH STANDARD Company Deck
vstandard
PRO
3
22k
We Are PdE!! 〜高価値なプロダクトを作れるようになるための勉強会〜
leveragestech
1
560
エンジニア向けオープンワーク会社紹介資料 / company profile
openwork
1
17k
メタバースを活用した観光PR
tokyo_metropolitan_gov_digital_hr
0
320
東京都ツキノワグマ目撃等情報マップ
tokyo_metropolitan_gov_digital_hr
0
290
Arches 会社説明資料/ HR Deck
arches0501
0
7.5k
G.U.Group 会社紹介資料
gugroup
0
290
kintoneを活用した緊急通行車両確認手続の迅速化
tokyo_metropolitan_gov_digital_hr
0
420
akippa株式会社 - 会社紹介資料
akippa
3
58k
採用資料
daichihayashi
0
270
Featured
See All Featured
Designing Dashboards & Data Visualisations in Web Apps
destraynor
229
52k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
169
50k
Become a Pro
speakerdeck
PRO
25
5k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
280
13k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
26
2.1k
It's Worth the Effort
3n
183
27k
Art, The Web, and Tiny UX
lynnandtonic
297
20k
Building Better People: How to give real-time feedback that sticks.
wjessup
364
19k
Git: the NoSQL Database
bkeepers
PRO
427
64k
4 Signs Your Business is Dying
shpigford
180
21k
Intergalactic Javascript Robots from Outer Space
tanoku
269
27k
The Language of Interfaces
destraynor
154
24k
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