ふくふくHukuhuku Inc.
EP.18Foundation 13分公開: 2026-09-01

メタデータ管理をどこまでやるか ── 埋まらないカタログを作らない

全テーブルに説明を書く。始めると必ず途中で止まり、半端に埋まったカタログが残ります。何を機械に任せ、何を人が書くかの線引きを扱います。

#データ基盤#メタデータ#運用#設計
執筆 / 監修
松尾 亮合同会社ふくふく 代表社員

データ基盤・データパイプライン構築 / BI / 生成 AI 活用支援を専門とするエンジニア (28 年)。 本記事は AI 利用ポリシーに基づき、生成 AI の補助で執筆 → 人間が監修・編集して公開しています。

プロフィール詳細
シェア

の導入は、多くの現場で試みられます。そして多くが、半端に埋まった状態で止まります

この回は、どこまでやるかの線引きを扱います。結論は、データ屋の道具箱 EP.23 と同じで、生成できるものは生成し、人は生成できないものだけを書くです。

1. なぜ埋まらないのか

失敗の形はほぼ決まっています。全部を埋めようとして、途中で止まる

  1. 1カタログを導入し、全テーブルの説明を書こうと決める
  2. 2最初の数十件は埋まる
  3. 3日常業務が戻ってきて止まる
  4. 4半端に埋まった状態が残る
  5. 5「埋まっていない」ことで信用されず、使われなくなる

5番目が最も損失です。中途半端なカタログは、無いより悪いことがあります。「調べても載っていない」という経験を数回すると、誰も見に行かなくなります

網羅を目指すと必ず止まる

表が数百あるなら、説明を書くだけで数週間かかります。そして表は増え続けます。追いつかない前提で設計しないと、始めた時点で失敗が決まっています

2. 機械に任せられるもの

まず、人が書かなくてよいものを分けます。ここを人が書いていると、それだけで力尽きます。

自動で取れるもの・取れないもの
情報自動で取れるか腐りやすさ
列の一覧と型取れる手書きだとすぐ腐る
依存関係取れる(定義を解析)手書きだと腐る
参照の頻度取れる(実行履歴)手書きは不可能
最終更新日時取れる手書きは不可能
主に使っている人取れる(実行履歴)手書きだと腐る
なぜこの表があるか取れない腐らない
扱いの注意点取れない腐らない

上5つは自動で取れます。しかも手で書くと必ず腐ります。ここを人が書く運用にしていると、維持できないうえに正確でもないという最悪の状態になります。

下2つだけが人の仕事です。そしてこれは腐りません。「なぜこの表を作ったか」は、その時点の判断として確定しているためです。

3. 対象を絞る

人が書く対象も、全部ではありません。参照されている表に絞ります。

説明を書くべき表を、参照の記録から絞る
SQL
-- 過去90日で参照された表を、参照者数の多い順に出すWITH refs AS (    SELECT        table_name,        COUNT(*)                AS 参照回数,        COUNT(DISTINCT user_id) AS 参照者数    FROM query_access_log    WHERE accessed_at >= DATEADD(day, -90, CURRENT_DATE())    GROUP BY table_name)SELECT    r.table_name                AS テーブル,    r.参照者数,    r.参照回数,    CASE        WHEN r.参照者数 >= 5 THEN '説明が必要'        WHEN r.参照者数 >= 2 THEN '書けるとよい'        ELSE '不要'    END                         AS 優先度FROM refs rORDER BY r.参照者数 DESC, r.参照回数 DESC;

参照者数で絞るのが要点です。回数が多くても1人しか使っていない表は、その人が分かっていれば足ります。複数人が使う表こそ、説明の価値が高い

この基準で絞ると、説明を書くべき表は思ったより少ないはずです。数百の表があっても、複数人が使っているのは数十ということが多い。それなら書けます。

4. 何を書くか

人が書く内容も絞ります。長い説明は書かれないし、読まれません

書くべき内容
項目分量なぜ必要か
この表は何か1行名前だけでは分からない
何を1行としているか1行粒度の誤解を防ぐ
注意点1〜3行知らないと誤る点
聞く相手1行詳細はここへ
使うべきでない場面1行誤用を防ぐ

2行目が最も価値があります。「1行が何を表すか」が分からないと、集計を誤ります。「1行 = 1注文」なのか「1行 = 1商品」なのか。これを間違えると件数も金額も狂います

3行目の注意点は、過去に誰かが誤った経験から書かれるのが理想です。「キャンセル分を含むので、除外が必要」「テストデータが混ざっている」。知らないと誤る点だけで十分です。誰かが1度誤ったなら、他の人も同じところで誤ります。その1行が、同じ失敗を何度も防ぎます。

「使うべきでない場面」が効く

5行目は見落とされがちですが有効です。「この表は速報値なので、確定値が必要なら別の表を見る」という一文があるだけで、誤用が防げます。何に使えるかより、何に使えないかのほうが、伝わる情報量が多いことがあります。

5. 埋まらない前提で設計する

説明がない表は必ず残ります。それを前提にした見せ方をします。

  • 説明の有無で表示を分けない — 未記入も自然に見せる
  • 自動で取れる情報は常に表示する — 説明が無くても価値がある
  • 「説明がない」ことを責める表示にしない — 書く動機を削ぐ
  • 参照者数の多い順に並べる — 重要なものが目立つ

2番目が重要です。説明が無くても、列の一覧・依存関係・参照の頻度が見えれば十分に役立ちます。「誰がよく使っているか」が分かれば、その人に聞ける。これだけでカタログの価値の半分は満たせます。

3番目も実務的です。未記入を赤く表示するような設計にすると、埋めるプレッシャーになり、内容の薄い説明が量産されます。「表の説明」という説明が並ぶ状態は、無いのと同じです。

6. 続ける仕組み

最後に、継続する形です。一斉に埋める運動ではなく、日常に組み込みます

  1. 1表を新しく作るときに書く — そのときが最も分かっている
  2. 2誰かに聞かれたときに書く聞かれた内容がそのまま説明になる
  3. 3誤用が起きたときに注意点を追記する — 再発防止
  4. 4四半期に一度、参照上位の未記入を確認 — 対象を絞って

2番目が最も効率的です。質問された内容は、他の人も知りたい内容です。答えるついでに1行書けば、次から聞かれません。これは エンジニアの引き継ぎ術 EP.07 で扱った「日常の副産物として溜める」と同じ発想です。

そして ── 誰にも参照されなくなった表 ── は、説明を書く対象ではなく、消す対象です。参照の記録を見て、書くか消すかを判断してください。書くべき対象が減れば、埋まる確率が上がります。

ここまでのまとめ

網羅を目指すと必ず止まり、半端なカタログは無いより悪い列の一覧・依存関係・参照頻度は自動で取れるので、人が書くのはなぜこの表があるか・注意点だけ。対象は参照者数で絞る(1人しか使っていない表は不要)。「1行が何を表すか」「使うべきでない場面」が特に効く。そして聞かれたときに書くのが、最も続きます。

シェア

この記事の感想を教えてください

あなたの 1 クリックで、本当にこの記事は更新されます。「もっと詳しく」「続編希望」が一定数集まった記事は、 ふくふくが 実際に内容を拡充したり続編記事を公開 します。 送信したリアクションはお使いのブラウザに記録され、再カウントされません。

シリーズの外も探す:

まずは、現状を聞かせてください。

要件が固まっていなくて大丈夫です。現状診断と方針提案までを無料でお手伝いします。

無料相談フォームへ hello [at] hukuhuku [dot] co [dot] jp