命名は「未来の自分へのメッセージ」。
結論
データ基盤で最も大事なのは、SQLでもツールでもなく「命名」。
なぜ命名が大事か
3ヶ月後の自分は「他人」
今日書いたコードを、3ヶ月後に見返す。
「これ何のテーブルだっけ…?」
あなたは今日の自分を覚えていない。
AIも命名で判断する
ChatGPTにSQLを書いてもらうとき、テーブル名が手がかりになります。
# 悪い例
SELECT * FROM tbl1
# 良い例
SELECT * FROM fact_sales
AIはfact_salesを見て「売上の事実テーブルだな」と判断できる。
悪い命名の例
❌ data1
❌ test
❌ backup_20240101
❌ 田中用_売上データ
❌ final_final_v2
こういうテーブルが、3ヶ月後に「誰も触れないゴミ」になる。
良い命名規則
基本ルール
{環境}_{レイヤー}_{ドメイン}_{内容}
例
| 命名 | 意味 |
|---|---|
prod_raw_salesforce_accounts | 本番・生データ・Salesforce・取引先 |
prod_stg_sales_orders | 本番・中間層・売上・注文 |
prod_mart_finance_monthly_revenue | 本番・データマート・財務・月次売上 |
レイヤーの定義
| レイヤー | 役割 |
|---|---|
raw | 生データ(ソースそのまま) |
stg | ステージング(クレンジング後) |
int | 中間(結合・変換) |
mart | データマート(分析用) |
実装のコツ
コツ1:チームで合意する
命名規則はチームで合意すること。1人で決めても守られない。
コツ2:ドキュメント化する
dbtなら、schema.ymlに定義を書く。
models:
- name: mart_finance_monthly_revenue
description: 月次売上のデータマート
columns:
- name: month
description: 対象月(YYYY-MM形式)
- name: revenue
description: 売上金額(税抜き、円)
コツ3:新人テストする
新しく来た人に「このテーブル何だと思う?」と聞く。
名前だけで分かれば、良い命名。
まとめ
命名は「未来の自分へのメッセージ」。
3ヶ月後の自分が「これ何?」とならない命名を心がけましょう。