mcpField
S
semantic-model-builder

semantic-model-builder

github.com/nimrodfisherデータ・データベース504222 回インストール5 週間前に更新
リポジトリ

semantic-model-builder について

semantic-model-builderは、メトリクス、ディメンション、エンティティを構造化YAMLで定義するデータスキルです。データチームによる業務定義の標準化やメタデータの検証、セマンティックレイヤー向けの準備に役立ちます。

主な機能

  1. 01メトリクス、ディメンション、エンティティのYAMLを生成
  2. 02項目、型、参照を検証
  3. 03dbt Semantic Layerのガイドを参照
  4. 04定義ファイルと検証レポートを作成

活用シーン

  1. 01メトリクスの標準定義を確立
  2. 02dbt Semantic Layer用のYAMLを準備
  3. 03中核データモデルのメタデータを記録
  4. 04既存のセマンティックモデルYAMLを確認

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/nimrodfisher/data-analytics-skills --skill semantic-model-builder

インストール後、Claude Code で/semantic-model-builderを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

assets/
dimension_definition.yaml
entity_definition.yaml
metric_definition.yaml
references/
dbt_semantic_layer_guide.md
dimension_hierarchy_patterns.md
metric_definition_framework.md
scripts/
metric_template_generator.py
model_yaml_validator.py

詳細

使用する場面

  • 関係者から「[metric] はどのように計算されますか?」と尋ねられたが、正式な定義が存在しない
  • dbt Semantic Layer を設定しており、YAML によるメトリクス/ディメンション/エンティティの定義が必要
  • 複数のチームが同じメトリクスに異なる SQL クエリを使っており、唯一の正式な定義を明文化する必要がある
  • 中核モデルのデータカタログ項目を作成しており、構造化メタデータが必要

プロセス

  1. オブジェクトの種類を特定する — メトリクス、ディメンション、エンティティのどれを文書化するか決めます。メトリクスには references/metric_definition_framework.md、ディメンションには references/dimension_hierarchy_patterns.md のフレームワークを使用します。
  2. 定義に必要な情報を集める — 計算ロジック(SQL または数式)、ビジネス上の背景、データソース、粒度、エッジケース、既知の注意点を集めます。不明な点があれば、データのオーナーに確認します。
  3. YAML テンプレートを生成する — scripts/metric_template_generator.py を実行して、オブジェクトの種類に応じた YAML の初期構造を作成します。生成されたテンプレートに値を入力します。
  4. YAML を検証する — scripts/model_yaml_validator.py を実行して、必須フィールド、型の制約、参照の整合性(参照先のディメンションが同じファイル内に存在すること)を確認します。
  5. dbt のコンテキストを追加する — dbt Semantic Layer にデプロイする場合は、使用する dbt バージョンにおける正確なフィールド名と制約について、references/dbt_semantic_layer_guide.md を参照します。
  6. 最終定義を保存する — メトリクスは assets/metric_definition.yaml、ディメンションは assets/dimension_definition.yaml、エンティティは assets/entity_definition.yaml に保存します。

スキルに必要な入力

  • 必須:文書化するメトリクス名またはモデル名
  • 必須:計算ロジック — SQL スニペット、数式、または自然言語による手順
  • 必須:ビジネス上の背景 — 誰が使うのか、どのような意思決定に役立つのか、「良好な」値とはどのようなものか
  • 任意:データソースのテーブル名とカラム名
  • 任意:対象のセマンティックレイヤーのフレームワーク(dbt Semantic Layer、Cube.js、LookML など)
  • 任意:検証する既存の YAML

出力

  • assets/metric_definition.yaml — 入力済みのメトリクス YAML 定義
  • assets/dimension_definition.yaml — 入力済みのディメンション YAML 定義
  • assets/entity_definition.yaml — 入力済みのエンティティ YAML 定義
  • scripts/model_yaml_validator.py による検証レポート(インライン出力)

コメント