2023/03/27_『アナリティクスエンジニア』のリアル~リクルートのデータマネジメント、試行錯誤の最前線~での、森田の講演資料になります
© Recruit Co., Ltd. All Rights Reserved品質・スピード・ガバナンスどれも諦めない欲張りな dbt 運用を目指して株式会社リクルート データ推進室 D3M 部森田 順也2023/03/27
View Slide
© Recruit Co., Ltd. All Rights Reserved自己紹介森田 順也 (もりた じゅんや) @jjjjj_knデータ推進室 データテクノロジーユニット D3M 部 アナリティクスエンジニアSIerにてデータ異常検知の研究開発に携わった後、2019年にリクルートへ入社。アナリティクスエンジニアとして分析基盤の開発に従事。 datasaber。Podcasthttps://open.spotify.com/show/6Xc6jNS2p1UqjnPppwO80V?si=WXCP2O58RrePvsjTMomtIwZennhttps://zenn.dev/mjunya10302#recruitdata
© Recruit Co., Ltd. All Rights Reserved本日お話しすることカーセンサーでは、2020年にdbtの検証を始め、導入して2年以上が経っています。長期間運用する中で、モデリングがうまくいかなかったり、分析のスピード感が合わなかったり、データの品質に悩んだりしながら、試行錯誤を重ねてきました。本日はこの試行錯誤をお伝えしたいと思います。最適解ではない部分もありますが、泥臭いリアルな部分を楽しんでもらえたら嬉しいです。3#recruitdata
© Recruit Co., Ltd. All Rights Reserved4ご存知でしょうかカーセンサー実は、単なる中古車情報サイトではないんです
© Recruit Co., Ltd. All Rights ReservedCASE: 自動車業界は100年に一度の大変革時台5ConnectedAutonomousShared & ServicesElectrificationコネクティッド自動化シェアリング電動化#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 Reserveddbt によるデータ変換処理を軸とした分析基盤8Data LakeCloud StorageData MartBigQueryData WarehouseBigQuery手動入力マスタディーラー様向けアプリ・基盤カスタマー向けアプリ・基盤マーケティング向け営業向け企画向け監視・モニタリングCloud Monitoringモデリング/テストdbt CoreODS取り込みCloud Functionsデータ抽出・ロードCloud ComposerTransformExtract LoadTest Modeling Document Version Control DeployVisualize#recruitdata
© Recruit Co., Ltd. All Rights Reserved分析基盤はビジネスの進化と共に走ってきた9効率化・品質向上 分析サイクルの多様化データを武器にしたビジネスへディメンショナルモデリングとSingle Source of Truthアドホック分析とデプロイフローOperational Data Sourceの管理取り組みテーマ技術テーマ前期 中期 後期前・中・後期の取り組みを、泥臭い部分も含めてご紹介します本日のメインテーマ!#recruitdata
© Recruit Co., Ltd. All Rights Reserved前期: ディメンショナルモデリングとSSoT10#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 QueryGoogle App ScriptAccessCustom SQLCustom Dimension分析要件を問わず頻繁に登場する処理をCTEレベルで解析半年に渡り既存ツールのデバッグ・改修を並行しながら解析し、SSoTを導出泥臭いところ#recruitdata
© Recruit Co., Ltd. All Rights Reserved中期: アドホック分析とデプロイフロー15#recruitdata
© Recruit Co., Ltd. All Rights Reserved分析サイクルのスピードはビジネスによってさまざま16分析サイクル課題設定→ログ設計→データ収集→分析→行動...ref. adobeSLOW: 集客効果のモニタリング月次、年次で統一されたKPIを定常的に振り返るFAST: 新機能の初速分析毎週のように課題発見、打ち手実施を行い、NorthStar となる指標を変えながら振り返るサイクルの早い分析にどう対応するか?ビジネス背景#recruitdata
© Recruit Co., Ltd. All Rights Reservedadhoc レイヤーの導入17生成されるモデルが全て view であり、更新jobが不要 で、レイヤーを無視でき、通常の開発フローから切り出してリリースできるレイヤSource Staging Mart ReportingAdhocスマートなところ#recruitdata
© Recruit Co., Ltd. All Rights Reserved開発着手Pull RequrestMain MergeTagadhoc レイヤーの導入18生成されるモデルが全て view であり、更新jobが不要 で、レイヤーを無視でき、通常の開発フローから切り出してリリースできるレイヤnon-adhoc adhocdbt SQL設計・実装 dbt SQL設計・実装dbt JOB設計・実装開発環境デプロイ開発環境デプロイ開発JOBの実行・テーブル生成開発デプロイ前レビュー本番デプロイ前レビュー開発環境データテスト開発環境データテスト本番デプロイ前レビュー本番環境デプロイ本番環境デプロイ本番JOBの実行・テーブル生成本番環境データテスト/Doc生成本番環境データテスト/Doc生成開発フロー● テスト● ドキュメンテーション● レビュー上記全て行いつつリリースまでの工程を短縮ガバナンスはどう守るか?スマートなところ#recruitdata
© Recruit Co., Ltd. All Rights Reservedadhoc レイヤの運用・管理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既存の手入力データを分析基盤に直接取り込み23Data LakeCloud StorageData MartBigQueryData WarehouseBigQuery商談記録監視・モニタリングCloud Monitoringモデリング/テストdbt CoreODS取り込みCloud Functionsデータ抽出・ロードCloud Composer組織目標カーディーラー様在庫状況個人目標業務変更を小さくするため、既存の Excel/GoogleSheetsを前提に運用構築既存業務の変更を小さくしたことで、企画から半期で運用開始スマートなところ#recruitdata
© Recruit Co., Ltd. All Rights Reserved年度またぎのスキーマ変更を吸収するゲートレイヤー24年度ごとに参照する sourceを切り替え下流テーブルへの影響を最小化Data LakeCloud Storage個人目標(2023年度)Data LakeCloud StorageData MartBigQueryGate Mart ReportingSourceSource個人目標(2024年度)スマートなところ#recruitdata
© Recruit Co., Ltd. All Rights Reservedツールとパイプラインの両テストで不具合を検知・アラートData LakeCloud Storage個人目標(2023年度)Data LakeCloud StorageData MartBigQueryGate Mart ReportingSourceSource個人目標(2024年度)取り込み時テストCloud Functions入力チェックGoogle App Scriptsource testdbt Coremodel testdbt CoreCSVはBigQueryに正しく取り込めるか入力された桁数、形式は正しいかnot_null,unique,relation は正しいか生成されたテーブルは期待通りか取り込み時入力時 毎時 モデル生成時テスト観点実施タイミング泥臭いところ#recruitdata
© Recruit Co., Ltd. All Rights ReservedCloud 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