データモデリングにもUnit Testみたいのないの?🤔 AIとMCPで安心感を手に入れた話

データモデリングにもUnit Testみたいのないの?🤔 AIとMCPで安心感を手に入れた話

2025年11月4日の「Data Engineering Summit 前夜祭」で、このタイトルについてお話しさせていただきました。

データモデリングにもUnit Testみたいのないの?

😇 データモデリング、不安じゃないですか?

僕は元々ソフトウェアエンジニアで、GitやUnit Testの導入なんかもやっていました。 そんな僕がデータモデリング(特にディメンショナルモデリング)を始めた時、ものすごい不安に襲われたんåです。

「SOURCE層からWAREHOUSE層 (Dim + Fact) にしてるけど... これで合ってる? 🤔」

具体的には、こんな不安でいっぱいでした。

  • ❌ Dim/Factの整合性は取れてる?
  • ❌ NULL/空文字の考慮漏れない?
  • ❌ ビジネスロジックの解釈は正しい?
  • ❌ データの欠損に気づけてる?
  • ❌ 他の人のモデルをレビューできる?(自信ない...)

😱 元バックエンドエンジニアの叫び

もうね、心の中はこれです。

「データモデリングにも自動のUnit Testみたいのないの?🤔」 「UTみたいに、即座にフィードバックくれるものが欲しい...!」

僕がUT(ユニットテスト)に感じていたのは「絶対的な安心感」でした。

  • 即座のフィードバック: 変更の影響をすぐ確認できる
  • リファクタの安心感: 「ここ直しても壊してない」って常に検証できる
  • 設計の改善: 「なんかテスト書きにくいな...」って時は、だいたい設計が悪いっていうサイン

この「実装 → 検証 → 改善」のサイクルを、データモデリングでも実現したかったんです。

💡 結論:「AI AgentとMCPでUTと同じような相棒に!」

そこで僕らがたどり着いたのが、これです。

AI Agent(Claude Code)Snowflake MCP を組み合わせて、 Unit Testみたいな「相棒」にしちゃおう!

🛠️ やったこと:技術スタックと開発サイクル

  • 🔧 環境: Airflow × ❄️ Snowflake
  • 🤖 AI: Claude Code
  • 🔌 連携: Snowflake MCP
    • (もともと分析用で導入してたのを、開発にも転用しました)

これを導入して、こんな開発サイクルを回せるようにしました。

  1. (僕ら): DAGを実装する
  2. (手動): AirflowでDAGを実行
  3. (自動): Snowflake MCPが実行結果をキャッチ
  4. (相棒🤖): Claude Codeが結果を分析して、フィードバックをくれる**
  5. (僕ら): 「なるほど!」ってなって実装を直す
  6. (1. に戻る)

まさに、UTと同じ感覚で「くるくる回せる」開発体験です!

🤖 AI(相棒)が教えてくれること

じゃあ、具体的にどんなフィードバックをくれるのか? いくつか実例を紹介します。

実例1. モデリングの基本チェック(アサーションみたい!)

AIがUTのアサーションチェックみたいに、基本的なミスを教えてくれます。

  • 参照整合性エラー:

    🤖「Factテーブルの◯◯件でdim_customerのkeyが存在しません。原因は空文字が1,234件NULLが567件です。Dimへの未登録顧客レコード追加を推奨します」

  • データ欠損の指摘:

    🤖「GA4のRawデータを確認しました。この定義だと意図したセッションデータの約23%が欠損します。session_startイベントが含まれていません」

いやー、これ手動で気づくの大変ですよね...!助かる...!

実例2. コードレビュー・Linter

AIがLinterみたいに、ローカルルールもチェックしてくれます。

  • コーディング規約:

    🤖「CLAUDE.md(ローカルルール)に基づきチェックしました。日付カラムの接尾辞が「_date」ではなく「_dt」になっています」

これでレビューの認知負荷も下がります。

実例3. 元データの探索・分析

これが本当に強力で、Raw/Source層までしっかり見に行って、ロジックの不備を指摘してくれます。

↑これは、僕があまり詳しくないGA4のドメインをレビューしてた時。「なんか変だな...?」という違和感をAIに投げたら、一緒にRawデータ(session_engagedの値が0とか1になってる)を見ながら「これ、こういうことじゃないですか?」って違和感の正体にたどり着けた瞬間です。

「おのれぇえGA4!!!!!!!!wwwwww」ってなりました。

さいごに

というわけで、「データモデリングにもUnit Testみたいな相棒が欲しい!」という悩みから、AI AgentとMCPを導入した話でした。

この「相棒」のおかげで、

  • ディメンショナルモデリングの基本的な違反の指摘
  • コードレビュー・Lint
  • 元データ確認とロジック不備の指摘

あたりを自動でやってもらえるようになり、あの頃の不安が「安心感」に変わってきました。

データモデリング、まだまだ勉強中ですが、AIという相棒と一緒に頑張っていこうと思います!