Lock in $30 Savings on PRO—Offer Ends Soon! ⏳

ディメンショナルモデリングを支えるData Vaultについて

Avatar for 10xinc 10xinc
December 10, 2025

ディメンショナルモデリングを支えるData Vaultについて

https://connpass.com/event/375524/
での発表内容です

Avatar for 10xinc

10xinc

December 10, 2025
Tweet

More Decks by 10xinc

Other Decks in Technology

Transcript

  1. 10X, Inc. ALL RIGHTS RESERVED 自己紹介 • 吉田 康久 ◦

    Xやはてなidは@syou6162 / id:syou6162 • 株式会社10Xでデータエンジニア ◦ 2022/09に入社 ◦ プロダクト本部 データ基盤チームに所属 ◦ データマネジメント / データガバナンスの仕事をしてます • 京都から働いてます • これまでの職歴としては研究者(NLP & ML) => Webアプリケーションエンジニア, MLエンジニア => データエンジニ ア, Analytics Engineer • データ系のコミュニティが主戦場です ◦ datatech-jpの運営の一人です、Slackをベースに1900人以上が参加 ◦ dbt Community spotlight & Google Developer Expertに選出されました ◦ Data Engineering Studyのアドバイザに就任しました 2
  2. 10X, Inc. ALL RIGHTS RESERVED アジェンダ • 背景: 10XとStailerについて •

    アジャイルデータモデリング本のよかったところ • 自社のディメンショナルモデリングの継続的な運用で見えた課題 • ディメンショナルモデリングを支えるData Vault • まとめ 3
  3. 10X, Inc. ALL RIGHTS RESERVED アジェンダ • 背景: 10XとStailerについて •

    アジャイルデータモデリング本のよかったところ • 自社のディメンショナルモデリングの継続的な運用で見えた課題 • ディメンショナルモデリングを支えるData Vault • まとめ 4
  4. 10X, Inc. ALL RIGHTS RESERVED • ネットスーパーの運営に必要なすべての機能を提供してい る、国内トップクラスのネットスーパープラットフォーム • 様々な業態・規模・地域のネットスーパー事業を支えてい

    ます 5 Stailer ネットスーパー概要 ※2025/06/16時点でレビュー件数が100件以上、複数のアプリを提供している場合はレビュー数の加重平均で比較 導入企業
  5. 10X, Inc. ALL RIGHTS RESERVED ネットスーパー運営に必要な全ての要素を提供しています 6 Stailer ネットスーパー事業 -

    提供プロダクト 小売事業者向けアプリ ミスが少なく効率的な 業務オペレーションを実現 配達スタッフ向けアプリ スタッフ用アプリと完全連動し、 効率的なルーティングを実施 ネットスーパーアプリ 数万点のSKUからスムーズに お買い物ができる
  6. 10X, Inc. ALL RIGHTS RESERVED AI需要予測型アルゴリズムと、誰でも簡単に使える発注要モバ イルアプリを提供 • AI需要予測型アルゴリズム ◦

    最適な発注方式の選択 ◦ 客数予測 ◦ 需要予測型による発注勧告数の推定 • 発注アプリ ◦ 片手で発注ができるモバイルアプリ • AIにより、単品毎に商品特性に応じた最適な発注方式を選 択 7 Stailer AI発注概要
  7. 10X, Inc. ALL RIGHTS RESERVED アジェンダ • 背景: 10XとStailerについて •

    アジャイルデータモデリング本のよかったところ • 自社のディメンショナルモデリングの継続的な運用で見えた課題 • ディメンショナルモデリングを支えるData Vault • まとめ 8
  8. 10X, Inc. ALL RIGHTS RESERVED アジャイルデータモデリング本 & 読書会、よかったですね! • ビジネスイベントの型の言語化

    • BEAM*でのヒアリングの組み立て方 • BEAM*からイベントマトリックスへ • 典型的なディメンションとよくある課題感の言語化 9
  9. 10X, Inc. ALL RIGHTS RESERVED BEAM*でのヒアリングの組み立て方 11 図2-13 「イベントの文書化」より引用 7Wをどういう順序で

    ヒアリングすればよいか迷 わないで済む! どういう風にすれば うまくヒアリングできるかの型が あるのはありがたい!
  10. 10X, Inc. ALL RIGHTS RESERVED 余談: Kimball GroupのDimensional Modeling Techniques

    12 https://www.kimballgroup.com/data-warehouse-business-intelligence-resources/kimball-techniques/dimensional-modeling-techniques/ より引用 当初はこれを使っていた。 コンパクトにまとまっているものの、抽象 的で、慣れていない人が実践するには難 しい側面があった
  11. 10X, Inc. ALL RIGHTS RESERVED BEAM*からイベントマトリックスへ 13 図4-6 「イベントマトリックス」より引用 複数のイベントや

    ディメンションがあった場合に どういう順序で作っていけばいいか迷 わなくて済む!
  12. 10X, Inc. ALL RIGHTS RESERVED 典型的なディメンションとよくある課題感の言語化 • 特に6章の人と組織(Who)、製品とサービス(What)の章は私のお気に入り ◦ モンスターディメンションである顧客ディメンション

    ▪ スノーフレーク化 / ミニディメンション化 ◦ 従業員ディメンション ▪ 顧客よりは数が少ないが、配属(例: 兼務)やその履歴の扱いの難しさ ◦ 製品やサービス ▪ 6.3章「ステークホルダーたちは、顧客について常に理解不足な一方、自分たちの製品やサービスにつ いてはあまりにも多くのことを知っています!」 ▪ カテゴリ、階層構造 ◦ 個人や法人、製品やサービスなどのスワップ可能ディメンションについて • 典型的なパターンが議論ポイントが網羅されていたので、読書会でも特に盛り上がったパート 14
  13. 10X, Inc. ALL RIGHTS RESERVED 総じてよかったところ: 迷うポイントが減った • ステイクホルダー(特に活用者側)とのコミュニケーション、説明スタイル ◦

    単純なヒアリングだけでなく、ヒアリングの中でディメンショナルモデリングに必要な要素をどう収集するか • どういうもの(イベント / ディメンション)をどういう順序で作るか • 特に新規で作るときにはいい型になる 15
  14. 10X, Inc. ALL RIGHTS RESERVED アジェンダ • 背景: 10XとStailerについて •

    アジャイルデータモデリング本のよかったところ • 自社のディメンショナルモデリングの継続的な運用で見えた課題 • ディメンショナルモデリングを支えるData Vault • まとめ 16 スタンスとしては、以下の形で発表します! • ディメンショナルモデリング自体は読書会より前から運用していた • チームメンバー全員がアジャイルデータモデリング本を読んだわけではない • 本の内容を取り込んだら、こういうところがうまくいきそう / それでも難しそう、をまと めていく
  15. 10X, Inc. ALL RIGHTS RESERVED アジャイルデータモデリング本だけで全てがうまくいく...とは限らない • 課題その1: 当時のケイパビリティの不足 •

    課題その2: 成果物としてのドキュメントの運用の難しさ • 課題その3: ビジネスロジックの実装の難しさ 17
  16. 10X, Inc. ALL RIGHTS RESERVED 継続的な運用で見えた課題その1: 当時のケイパビリティの不足 • 表層だけのディメンショナルモデリング: ◦

    fact_hogeやdim_fugaのような一見ディメンショナルモデリングっぽく見えるが、実は見た目だけ ◦ 粒度がなんとなく決まっているだけで、活用しようとすると重複カウントが起きる ◦ ビジネスキーの設計が適当で、うまくJOINできない(ドリルアクロスなどの分析もしにくい/できない) • キーの命名規則がバラバラ: ◦ しかし実際は命名規則が統一されておらず、キーの役割も曖昧だった • 大福帳化: ◦ 新しいマートにロジックが必要になった際、ファクトやディメンションに安易にカラムを追加 ◦ 「その汎用的なディメンション/ファクトに実装すべき内容なのか?」の判断ができていなかった ◦ 活用者側の要求を早く解決するため、渋々大福帳化させて実装していた側面も 20 アジャイルデータモデリングの内容を 分かっていなかった / 実践できていなかった
  17. 10X, Inc. ALL RIGHTS RESERVED 継続的な運用で見えた課題その2: 成果物としてのドキュメントの運用の難しさ • ドキュメント(仕様書)と実装の乖離: ◦

    BEAM*やイベントマトリックスなどはドキュメントやシートなどを成果物としていることが多い ◦ 本書内でもドキュメントの継続的な重要性は何度も記述されていた ▪ 4.5章「イベントマトリックスは常に最新状態を保ってください。イベントマトリックスは、初期計画 の手段や一度限りのモデリング手法ではありません。データウェアハウスの設計を継続的に記述するた めに使います。モデルストーミングを行うときはいつでも参照し、更新してください」 ◦ 10Xの場合、Notionで仕様書を管理していた • なぜ乖離が起きたのか? ◦ 新規設計時はやりやすいことが多いが、インクリメンタルな変更時に意識が働きにくい ▪ 既存テーブルへのカラム追加時など ◦ チーム全員が完全に理解 / 適用するのは難しい ▪ 特に途中参加メンバーや業務委託の方 21 ドキュメントベースである設計書を 継続的に運用するのが難しかった
  18. 10X, Inc. ALL RIGHTS RESERVED 継続的な運用で見えた課題その3: ビジネスロジックの実装の難しさ • もちろん、書籍には実装面についても記載があった ◦

    が、どちらかというとdim / factが備えているべきインターフェイスやその実装についてが多かった印象 ◦ より詳細なビジネスロジックが必要とされる場合、どう実装するか、どこにビジネスルールを置くか明示的な ガイダンスは多くはなかった • 運用していて難しかった点 ◦ ロジックが散在し、SSoT(Single Source of Truth)が崩壊 ▪ 例: GMVらしき計算が複数のSQLファイルに存在 ◦ その中でもSSoTを守ろうとした結果、クエリが複雑になり過ぎる ▪ 例: 初回配送日のカラムの計算でdim_userがfact_orderを参照してしまっている ▪ 例: dim_userやfact_orderは数百行のクエリでメンテナンスが厳しい ◦ ビジネスロジックの種類は多岐にわたり、配置の判断基準がない 22
  19. 10X, Inc. ALL RIGHTS RESERVED ビジネスロジックをより整理すると? • A: カラムのrename ◦

    CamelCaseをsnake_case化、予約語の単語のケア • B: テスト用ユーザーなどの除外 • C: キーの変換 ◦ ビジネスキーをサロゲートキーに変換 • D: ビジネス判定 / 分類 ◦ ユーザーのセグメンテーション(初回 / 継続 / 復帰 / 休眠など) • E: 集計 / KPI定義 ◦ GVM / CTR / RecencyなどのKPI定義 23
  20. 10X, Inc. ALL RIGHTS RESERVED 継続的な運用で見えた課題まとめ • 課題その1: 当時のケイパビリティの不足 ◦

    実装者によらず、モデリングや命名規則が徹底されるようにしたい...! • 課題その2: 成果物としてのドキュメントの運用の難しさ ◦ コードベースに紐付いて継続的にメンテナンスされるようにしたい...! • 課題その3: ビジネスロジックの実装の難しさ ◦ SSoTで運用しやすい形にしたい...! 24 とはいえ、活用者が使いやすいディメンショナル モデリングはそのままにしたい!
  21. 10X, Inc. ALL RIGHTS RESERVED アジェンダ • 背景: 10XとStailerについて •

    アジャイルデータモデリング本のよかったところ • 自社のディメンショナルモデリングの継続的な運用で見えた課題 • ディメンショナルモデリングを支えるData Vault • まとめ 25
  22. 10X, Inc. ALL RIGHTS RESERVED アジャイルデータモデリング本のよいところはそのままに 26 データレイク intermidiate Fact

    / Dim ディメンショナルモデリングの ここは使いやすい! BEAM*やイベントマトリックスは変 わらず有用!
  23. 10X, Inc. ALL RIGHTS RESERVED ここがしんどい 27 データレイク intermidiate Fact

    / Dim 実装者によってバラバラ うまくモデリングされていない実装 が混じってしまうことも intermediateがうまくいってない悪影 響がFact / Dimにも出てしまう
  24. 10X, Inc. ALL RIGHTS RESERVED 復習: ビジネスロジックをより整理すると? • A: カラムのrename

    ◦ CamelCaseをsnake_case化、予約語の単語のケア • B: テスト用ユーザーなどの除外 • C: キーの変換 ◦ ビジネスキーをサロゲートキーに変換 • D: ビジネス判定 / 分類 ◦ ユーザーのセグメンテーション(初回 / 継続 / 復帰 / 休眠など) • E: 集計 / KPI定義 ◦ GVM / CTR / RecencyなどのKPI定義 29
  25. 10X, Inc. ALL RIGHTS RESERVED Data Vaultでデータモデリングを強制 30 データレイク Staging

    Raw Vault Business Vault Fact / Dim Raw Stage A: カラムのrename、CamelCaseをsnake_case化、予約語の単語のケア B: テスト用ユーザーなどの除外
  26. 10X, Inc. ALL RIGHTS RESERVED StagingからRaw Vaultがモデル化の中心 31 データレイク Staging

    Raw Vault Business Vault Fact / Dim Raw Stage C: キーの変換 ビジネスキーをサロゲートキーに変換 Hub: エンティティの定義 Link: エンティティ同士の接続 Satellite: エンティティの属性の履歴管理 詳しくはこちらを参照してください! BEAM*やイベントマトリックスなどヒアリングのアウトプットに基づいて、ビ ジネスイベント(Link)やビジネスディメンション(Satellite)の定義がスムー ズにできる。 Hubも必須のため、適合ディメンションも意識しやすい!
  27. 10X, Inc. ALL RIGHTS RESERVED Data Vaultでデータモデリングを強制 32 データレイク Staging

    Raw Vault Business Vault Fact / Dim Raw Stage • D: ビジネス判定 / 分類 ◦ ユーザーのセグメンテーション(初回 / 継続 / 復帰 / 休眠など) • E: 集計 / KPI定義 ◦ GVM / CTR / RecencyなどのKPI定義
  28. 10X, Inc. ALL RIGHTS RESERVED Data Vaultでデータモデリングを強制 33 データレイク Staging

    Raw Vault Business Vault Fact / Dim Raw Stage 最終的な出力はディメンショナルモ デリングのまま!
  29. 10X, Inc. ALL RIGHTS RESERVED 継続的な運用で見えた課題がData Vaultでどう解決したか? • 課題その1: 当時のケイパビリティの不足

    ◦ 求められるケイパはむしろ増したかもしれないが、何を行なう必要があるかがより明確になった ◦ 実装者によらず、モデリングや命名規則が徹底される仕組みになってきた • 課題その2: 成果物としてのドキュメントの運用の難しさ ◦ コードベースに紐付いて継続的にメンテナンスされるように • 課題その3: ビジネスロジックの実装の難しさ ◦ 各種ビジネスロジックをどこでどう実装するかが明確になり、SSoTで運用しやすくなった 35
  30. 10X, Inc. ALL RIGHTS RESERVED まとめ • アジャイルデータモデリング本はイイゾ! ◦ ディメンショナルモデリングを念頭においたヒアリングの仕方が分かる

    ◦ どういう順序でイベントやディメンションを作っていけばいいか整理しやすい • とはいえ、書籍だけだと足りない部分もありそう ◦ ドキュメントの運用の難しさ / ビジネスロジックの実装の難しさ • その解決策の一つとしてData Vaultがあり得る ◦ Data Vaultを3年以上運用して得た学びでも詳しく書いてます • 懇親会でも話しましょう! 36