0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

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

Posted at

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

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

僕は元々ソフトウェアエンジニアで、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という相棒と一緒に頑張っていこうと思います!

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?