理想的なメタデータ管理の仕組みとは何だろう
まずはどうあるのがいいか
実現できるかはさておき、どうあれば使いやすく、更新し続けられるメタデータができるのかを考えてみたい。ざっと考えてみると以下のようなことが思い浮かぶ。
- 全てのメタデータが含まれる
- 自動でページが追加される
- 自動でリンクが貼られる
- 各個人に合わせた表示ができる
- 検索が容易
- アラート機能
全てのメタデータが含まれる
メタデータというとテーブルやカラムの話が中心になりがちだが、その他も全部含まれて欲しい。
- コード(GitHub)
- アウトプット(BIツール・スプレッドシート)
- コミュニケーション(Slack・メール)
- 用語集
自動でページが追加される
メタデータを書く場所がシステムと連携されていないとテーブルやカラムが追加されてもメタデータ側には反映されない。なのでその都度手動で項目やページを追加していくことになるのだがこれが結構めんどくさい。
「ページを作るのが面倒だから書かない」というハードルは結構高いと感じておりここが自動化されると書いてくれる人が増えそう。あといつの間にかに増えたテーブルやカラムがキャッチしやすくなる副産物もある。
自動でリンクが貼られる
関連項目へのリンクは追加修正が頻繁に起きる。
例えばあるテーブルのメタデータに「このテーブルが使われているスプレッドシートのアウトプット」があるとしよう。このテーブルの項目を作った時点でのリンクはわかっても、その後どこでどう使われているかを追いかけるのは人力では大変だ。
たった1つのテーブルの特定のアウトプットを正確に追うのも苦労するのに、これが全てのテーブルで全てのメタデータを記録することを考えるととても人力では無理だ。
個人的にはここがメタデータの最大の課題だと思っている。
各個人に合わせた表示ができる
テーブルやカラムの一覧を作ることは簡単にできる。ところがよく使うものはほんの一部でしかない。でも全部同列に書くから必要な時に探すのに手間取る。なので各個人に合わせて表示ができるようになってほしい。
軸としては重要度と詳細度の2つの軸が考えられるだろう。
重要度
よく使うテーブルと言ってもどのテーブルを使うかは人による。重要度「高」にしたらその人がよく使うテーブルだけが表示されると楽。
詳細度
BIツールでデータを見る人には「このテーブルはいつ更新されるのか」といった基本的なメタデータで十分だが、データエンジニアやデータアーキテクトにはそうはいかない。
詳しい情報が大量にかかれるとまず必要な項目が埋まってしまうので詳細度「低」にすると全員が理解しておくべき項目が出てくる、みたいにできると嬉しい。
検索が容易
全てのメタデータが同じシステムにあればいいが、それが無理なら別のシステムにあっても検索だけは一括でできるようになってほしい。
アラート機能
「新しく項目が追加された」「最後に更新してから〇日経った」のようなアラートも設定できるといい。
ないはずのNULLが出てきた、設定した閾値を超えたみたいなエラーチェックの結果(これもまたメタデータ)とかも統合できるとなお良い。
あと何があるだろう
前から何となく想像したりメモしていたのをまとめてみた。じっくり考えたらもっといろいろ出てきそうなので思いついたら追記しよう。
あとは理想的な状態に対して既存のツールでできることや内製するとしたら何が問題になるかだろうか。