SQLも「コード」として管理する時代。
結論
「このSQL、誰がいつ変えた?」問題は、dbt + Git で解決できる。
よくある問題
問題1:誰が変えたか分からない
担当者A「このSQLいつの間にか変わってる...」
担当者B「俺じゃないよ」
担当者C「私も触ってない」
問題2:なぜ変えたか分からない
変更履歴がないから、意図が分からない。
「これ消していいのか…?」と誰も判断できない。
問題3:壊れたときに戻せない
「先週動いてたのに…」
バックアップがないから、元に戻せない。
解決策:dbt + Git
dbtとは
dbtは、SQLをコードとして管理するツールです。
- SQLファイルをGitで管理
- 変更履歴が残る
- PRベースでレビュー
具体的な流れ
1. SQLを修正
2. PRを作成
3. レビューを受ける
4. マージ
5. 自動で本番に反映
Before/After
Before
1. 本番のSQLを直接編集
2. 「動いたからOK」
3. 3ヶ月後「誰が変えた?」
4. 原因特定に半日
After
1. PRで変更内容を説明
2. レビューを受ける
3. マージ
4. 3ヶ月後「git logで確認」
5. 原因特定に5分
実装のポイント
ポイント1:コミットメッセージを書く
❌ fix
❌ update
❌ 修正
✅ 売上計算から返品を除外するよう修正
✅ 顧客セグメントの定義を追加
ポイント2:PRにはWhyを書く
## 変更内容
売上計算から返品を除外
## 理由
経理部からの依頼。返品を含めると実態と乖離するため。
## 影響範囲
- 月次売上レポート
- ダッシュボードの売上グラフ
ポイント3:小さく頻繁にコミット
1週間分の変更をまとめてコミットしない。
1つの変更 = 1つのコミット。
dbt導入のステップ
Step 1:既存SQLをdbtに移行
まずは既存のSQLファイルをdbtプロジェクトに移す。
Step 2:GitHubリポジトリを作成
コードを管理するリポジトリを作成。
Step 3:PRルールを決める
「本番への直接コミット禁止」をルール化。
まとめ
SQLも「コード」として管理する時代。
dbt + Gitで、「誰がいつ変えた?」問題から解放されましょう。