データエンジニア必見!3層モデリングと実務を学ぶ「データ基盤構築ロープレ研修」

はじめに

キーウォーカーでは今年初めて『データ基盤構築ロープレ研修』を実施しました。4月に入社した新卒社員に対して、技術を習得するだけでなく「顧客の課題を解決できるプロフェッショナル」へと引き上げるためのカリキュラムです。

本記事では、Snowflakeを活用した3層データモデリングから、要件定義、課題整理といった実務さながらのプロジェクト管理まで、ロールプレイとして行った研修の概要や成果物、新卒社員の成長の過程をご紹介します。
こんな人におすすめ
  • これからデータエンジニアとして実務に入る人
  • 研修や育成を考えている人

研修の概要

今回の研修では、下記の課題を用意しました。データはTableauサンプルスーパーストアを一部加工したものを利用しています。ロールプレイとして2人1組をチームとし、顧客役、相談役を先輩社員が務めます。顧客は架空の小売事業者。現在、取引データを含めた全業務データを1つの巨大なテーブル(大福帳)で管理している。
そのため
  • 顧客属性が更新された際に過去の全レコードを更新しなければならない
  • 分析に関係ない製品詳細データまで読み込むため、利用しているTableauダッシュボードの動作が重い。
などの課題がある。
顧客が利用しているダッシュボードの一例
顧客が利用しているダッシュボードの一例
モデリングしたデータをダッシュボードで利用することを今回のユースケースとした。

課題解決のため、Snowflakeを用いた3層構造のデータモデリングの実装、ドキュメントの納品をメインゴールとしています。

ロールプレイとして、顧客の課題把握から設計、実装、テスト、納品報告までの一連のプロセスを疑似体験することで、データ基盤構築の作業工程や顧客・チームメンバーとの適切なコミュニケーション方法を会得することが目的です。

【データモデリング編】

今回の研修では、RAW、DWH、MARTの3層のデータモデリングを体験してもらいました。

顧客側から提供したものは下記の2点です。
  • 1つの巨大なテーブルの業務データ
  • それを利用しているTableauのダッシュボード3枚
実際の大福帳の一部
実際の大福帳の一部
Tableauが提供する「サンプルスーパーストア」を加工したものを使用した。
ロールプレイでは、提供されたデータをSnowflake上でSQLを用いて加工します。SQLの基本を学びながら、相談役の先輩社員と協力してデータモデリングの肝となる
  • ディメンショナルモデリングによるDWH層の設計
  • ユースケースに対して最適なMART層の設計
を学習します。
その上で、提供されたデータに仕掛けられたトラップがいくつか存在します。
  • 必要なデータが大福帳に含まれていない
  • データに不整合がある
こうした課題を適切に整理して解決していくことも今回のロールプレイの目標です。
こだわったポイント by 新卒社員
  • 顧客の要望を効率的に深堀り、そして具現化・構造化した
  • DWH各階層の役割と関連性を正しく理解し、一意性を意識して実装した
  • 拡張性を考慮し、新たなユースケースに対応できる構成とした
  • データの不整合や欠損部分をいち早く発見し、修正案を提出した

【ドキュメント編】

データ基盤の構築では、実際の構築だけではなく納品するドキュメントも重要となります。顧客との認識の不一致や属人化を防ぐ、今後拡張をしやすくするなど、システムの「設計図」として極めて重要です。

今回の研修では下記の5つのドキュメントを作成しました。

  • データマート定義書    :MART層における各カラムの定義の明示
  • ER図           :データの構造と関係性の可視化
  • データパイプライン設計書 :各層の処理内容の明示
  • バスマトリクス      :利用するデータの洗い出し
  • テスト結果報告書     :数値の正確性の確認
ER図の一例
ER図の一例
DWH層におけるテーブル同士の関係性を把握するために作成。
こだわったポイント by 新卒社員
  • ドキュメントの完成形の共通認識をチーム内で持ち、要件を明確にした
  • データマート定義書は、MART層で実装した各カラムについて「定義・算出ロジック・元データの参照元」を明記し、第三者にも説明できる状態にした
  • ER図は、DWH層のどのテーブルをどう結合してMARTを作ったか追えるようにし、レビュー・引き継ぎで迷子にならない構成とした
  • データパイプライン設計書は、RAW → DWH → MARTの処理を整理し、トラブル時にバグを追跡しやすいようにした
  • バスマトリクスは、3つのユースケース(地域分析 / 返品分析 / 製品分析)で「何を(ファクト)」「どの切り口で(ディメンション)」見るかを先に固め、DWH全体の整合性を意識して設計した
  • テスト結果報告書は、ユースケースに応じて元データとデータマートを突合し、数値の不一致をなくすだけでなく、逆算過程を明記することで検証ロジックを明確にした

【コミュニケーション編】

プロジェクトを管理することもロールプレイの一環です。顧客役、チームメンバー、相談役とコミュニケーションをとり、課題を管理、解決していくことがポイントとなります。

実案件では、様々な場面で適切にコミュニケーションをとることが求められます。

  • 顧客へのヒアリング、仕様のすり合わせ
    • 顧客の要望を理解し「なぜ必要か」を深堀りして本当に必要な要件を把握する
    • 難解な表現を避け、相手が理解しやすい説明と対話を重ねて確実な合意形成を図る
  • チームメンバーとのすり合わせ、タスク分担
    • 発生した課題を漏れなく共有し、タスクを管理する
  • 相談役への技術、進行相談
    • 状況を整理し、仮説をもって相談する
こだわったポイント by 新卒社員
  • 顧客への質問は、まず「仮説」と「確認したいこと」をセットで投げ、SlackでもMTGでも短時間で意思決定できる形にした
  • 相談役へのエスカレーションは、「いま困っていること」だけでなく「自分が試したことや次に取りたい選択肢」まで共有し、相談の質を向上させた
  • 進捗共有は、RAW → DWH → MARTのどこまで完了しているかを整理し、作業の見通し、処理ロジックの妥当性をすり合わせた
  • 課題はデータの不整合 / データ不足 / 仕様解釈違いのように分類し、影響範囲や優先度まで書いて管理した
  • 納品を意識し、第三者が再現できるドキュメントに落とし込んだ

まとめ

ロールプレイを実践して
  • 本番案件でも悩みそうなこと:終盤近くで、データの不整合を発見し、それが原因で一部の数値テストが不可能となりました。このことから、データレビューの段階でテストを意識することが重要だとわかりました。
  • 学んだこと:設計図の合意から、DWHとMART層の実装・テストまで、様々なタスクを実施するにあたっては、終始チームワークが不可欠とわかりました。今後はSnowflakeの共有スペースも利用したい。これによってクロスチェックを導入でき、納品物のクォリティーを上げられると考えている。
顧客役・相談役から見て
  • 様々なトラップに対応しながら、分かりやすくコミュニケーションをとってもらいました。こちらからの「どうしてその仕様なのか」などの質問にも適切に回答できており顧客役として不安感がなく進めることができました。
  • わからない部分をそのままにせず、本質的な疑問をいくつもぶつけてくれたのが印象的でした。新卒社員にとっては初めてのことばかりで慣れない部分も多かったはずですが、課題に対して主体的に向き合う姿に成長を感じました。現場で一緒に活躍してくれる日が今から楽しみです!

本記事では、研修で取り組んだデータモデリング(RAW/DWH/MARTの3層設計)と、納品を想定して作成したドキュメント、そしてロールプレイ形式だからこそ学べたプロジェクト管理のポイントを紹介しました。

キーウォーカーでは、データ基盤の構築から、実際のビジネスに即した活用支援まで、トータルでサポートしております。「自社のデータで、どのような分析が可能なのか」「まずはスモールスタートで試してみたい」といったご相談も大歓迎です。データ活用でお困りの際は、ぜひお気軽に弊社までお問い合わせください。

ShtockData

お問い合わせフォーム

お問い合わせ項目を選択してください