😺
Claude CodeでプロダクトDBのメタデータを自動生成
こんにちは。primeNumberでは、COMETA という分析支援のためのメタデータ管理プロダクトを開発しています。
この記事では、プロダクトDBのメタデータ整備を効率化するためにClaude Codeを活用した検証について紹介します。
背景:メタデータ管理の重要性
データ分析を推進する上で、 メタデータ(テーブルの意味や用途を説明する情報) は欠かせません。
分析者がDWHのデータを正しく理解し分析を行うためには、つぎの
- テーブルの概要、レコードの単位
- カラムの概要、データの性質
こうしたメタデータが整備されていないと、分析チームは「このテーブルって何だっけ?」から調査を始めることになり、分析スピードが大きく低下します。
COMETAでの課題:プロダクトDBのメタデータ整備
COMETAは、DWHにおけるデータ活用を促進するプロダクトです。
私たちは社内のプロダクトDBからDWHへデータを転送して分析基盤を構築していますが、ここで問題になるのがプロダクトDBのメタデータです。
よくある状況
- プロダクトDBを最も理解しているのはプロダクト開発者
- しかし、彼らは直接的な分析者ではないため、DWHのメタデータ拡充にはモチベーションが上がらない
- 結果として、DWH側に意味の分からないテーブルが多数存在してしまう
この問題の解決に、Claude Codeを利用しました。
Claude Codeを使ってメタデータを自動生成
Claude Codeは、コードリーディング能力に優れたLLMツールです。
これを活用して、プロダクトのコードベースから、テーブルの論理名・説明を生成することを試してみました。
今回は、プロダクト(TROCCO)に関して CSV形式のメタデータを自動生成し、COMETAに取り込むことをゴールとしました。
実施内容
使用したプロンプトの構成は以下の通りです。
## Claude Code用プロンプト
### 目的
`tables.csv`ファイルに記述されているservice DBで管理されているテーブルのメタデータ(論理名と説明)を埋めて、CSVとして出力する
### 入力ファイル
- `tables.csv` - プロダクト DBのテーブル一覧が記載されたCSVファイル。論理名、説明カラムが空。
### 実行タスク
1. **CSVファイルの確認**
- `tables.csv`の全レコードを確認
- プロダクト DBのテーブル一覧を把握
- **CSVのフォーマット(カラム構造、区切り文字、エンコーディング等)を厳密に保持**
2. **情報収集**
- Railsソースコードを解析して各テーブルに対応するモデル情報を抽出
- GitHub CLIを使用して関連するPRとIssueを検索
```bash
# PR検索
gh search prs [テーブル名/モデル名]
# Issue検索
gh search issues [テーブル名/モデル名]
```
- TROCCOヘルプドキュメント(https://documents.trocco.io/docs/trocco-tutorial)から関連情報を検索
3. **メタデータの生成**
- 各テーブルに対して以下を記入:
- 論理名(日本語での分かりやすい名称)
- 説明(テーブルの用途や格納データの詳細)
- **メタデータ記入ルール:**
- メタデータが不明な場合:空白のままにする
- テーブル物理名を単に繰り返すだけの説明(例:「CustomConnectorEndpoints,custom_connector_endpointsテーブルの機能」)は不要なので空文字のままにする
4. **出力と確認**
- メタデータを追加した完成版を`output.csv`として出力
- **必須確認項目:**
- [ ] 全てのレコードのメタデータ(論理名と説明)が埋まっていること
- [ ] レコード数が入力ファイルと同一であること
- [ ] CSVフォーマットが完全に保持されていること
### 参考リンク
- [GitHub PR検索ドキュメント](https://docs.github.com/en/search-github/searching-on-github/searching-issues-and-pull-requests)
- [TROCCOチュートリアル](https://documents.trocco.io/docs/trocco-tutorial)
実際にやってみて分かったこと
- 開発者の負担を大幅に軽減
手動で一つひとつテーブルを説明するよりも、圧倒的に楽。 - 十分な精度
Claude Codeはモデル・命名・コメントを読むのが得意なので、テーブルの用途をかなり正確に推測できる。 - メタデータ整備のきっかけに
自動生成結果をレビューするだけでも、チームでテーブル理解を共有できる。
テーブルのメタデータは、プロダクト開発チームにとっても認知コストを下げる一員になると思いますので、ぜひお試しください!
Discussion