semantic-model-consumption について
semantic-model-consumption は、Power BI セマンティックモデルを調査し、DAX クエリを実行する読み取り専用スキルです。FabricIQ MCP ツールでモデルを発見し、INFO 関数でメタデータを段階的に調べます。
主な機能
- 01セマンティックモデルとスキーマの発見
- 02INFO 関数によるメタデータ調査
- 03読み取り専用 DAX クエリの実行
- 04オブジェクト依存関係とリレーションの確認
- 05必要なメタデータの絞り込みと射影
活用シーン
- 01モデル内のテーブル、列、メジャーの一覧化
- 02リレーションとフィルター動作の確認
- 03メジャーやオブジェクトの依存関係の追跡
- 04分析用のモデルデータのクエリ
MCP 対応
このスキルは FabricIQ MCP サーバーの DiscoverArtifacts、GetSemanticModelSchema、ExecuteQuery などを呼び出し、モデルの発見、スキーマの確認、DAX クエリの実行を行います。
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ microsoft/ skills-for-fabric --skill semantic-model-consumptionインストール後、Claude Code で/semantic-model-consumptionを入力して読み込まれたか確認します。
同梱ファイルreferences/discovery-queries.md
詳細
更新の確認 — セッションごとに 1 回(必須) このスキルをセッションで初めて使用する際は、先に check-updates スキルを実行してください。
- GitHub Copilot CLI / VS Code:
check-updatesスキルを呼び出します。- Claude Code / Cowork / Cursor / Windsurf / Codex:ローカルとリモートの package.json のバージョンを比較します。
- このセッションですでに確認済みの場合はスキップしてください。
重要な注意事項
- ワークスペース名から詳細(ID を含む)を見つけるには、すべてのワークスペースを一覧表示してから、JMESPath フィルタリングを使用します。
- ワークスペース ID、アイテムの種類、アイテム名からアイテムの詳細(ID を含む)を見つけるには、そのワークスペース内の該当する種類のアイテムをすべて一覧表示してから、JMESPath フィルタリングを使用します。
Power BI セマンティックモデルの利用
目次
| タスク | リファレンス | 備考 |
|---|---|---|
| Fabric のワークスペースとアイテムを検索する | COMMON-CLI.md § Fabric のワークスペースとアイテムを検索する | 必須 — 最初にリンクを読むこと [名前によるワークスペース ID の検索、または名前、アイテムの種類、ワークスペース ID によるアイテム ID の検索に必要です] |
| Fabric のトポロジと主要な概念 | COMMON-CORE.md § Fabric のトポロジと主要な概念 | 階層構造、Fabric 内の項目の検索 |
| 環境 URL | COMMON-CORE.md § 環境 URL | 本番環境(パブリッククラウド) |
| 認証とトークンの取得 | COMMON-CORE.md § 認証とトークンの取得 | オーディエンスが正しくないと 401 が発生します。トークンのオーディエンス、委任アクセス許可とアプリケーションアクセス許可、OAuth フロー、ID の種類、Entra アプリの登録について説明します |
| コア コントロール プレーン REST API | COMMON-CORE.md § コア コントロール プレーン REST API | ワークスペース/アイテムの CRUD、名前による解決、ページネーション、LRO のポーリング、レート制限のパターンを含みます |
| OneLake のデータアクセス | COMMON-CORE.md § OneLake のデータアクセス | Fabric トークンではなく、storage.azure.com トークンが必要です。URL 構造、ADLS Gen2 との同等性、ショートカットについて説明します |
| ジョブの実行 | COMMON-CORE.md § ジョブの実行 | オンデマンド ジョブの実行、ジョブの取得/キャンセル |
| キャパシティ管理 | COMMON-CORE.md § キャパシティ管理 | キャパシティの一覧表示、ワークスペースのキャパシティへの割り当て |
| 注意点、ベストプラクティス、トラブルシューティング | COMMON-CORE.md § 注意点、ベストプラクティス、トラブルシューティング | よくあるエラー、ベストプラクティス |
| ツール選定の根拠 | COMMON-CLI.md § ツール選定の根拠 | |
| 認証のレシピ | COMMON-CLI.md § 認証のレシピ | az login のフロー、環境の検出、トークンの取得、デバッグ |
az rest による Fabric コントロール プレーン API | COMMON-CLI.md § az rest による Fabric コントロール プレーン API | 必ず --resource を指定してください。ワークスペース/アイテムの操作、ページネーション、LRO のパターンを含みます |
curl による OneLake のデータアクセス | COMMON-CLI.md § curl による OneLake のデータアクセス | az rest ではなく curl を使用します(トークンのオーディエンスが異なるため)。ファイルの一覧表示/読み取り/アップロード/削除、ディレクトリの作成 |
| SQL/TDS データ プレーン アクセス | COMMON-CLI.md § SQL/TDS データ プレーン アクセス | sqlcmd(Go)による接続、クエリ、CSV エクスポート、サービス プリンシパル認証、接続パラメーターの特定 |
| ジョブの実行(CLI) | COMMON-CLI.md § ジョブの実行 | ノートブック/パイプラインの実行、セマンティック モデルの更新、ジョブの確認/キャンセル |
| OneLake ショートカット | COMMON-CLI.md § OneLake ショートカット | ショートカットの作成、ショートカットの一覧表示、ショートカットの削除 |
| キャパシティ管理(CLI) | COMMON-CLI.md § キャパシティ管理 | キャパシティの一覧表示、ワークスペースのキャパシティへの割り当て |
| 複合レシピ | COMMON-CLI.md § 複合レシピ | ワークスペース→レイクハウス→ファイル、SQL エンドポイント→クエリ、ノートブックの実行を一貫して行うレシピ |
| 注意点とトラブルシューティング(CLI 固有) | COMMON-CLI.md § 注意点とトラブルシューティング(CLI 固有) | |
| クイックリファレンス | COMMON-CLI.md § クイックリファレンス | az rest のテンプレート、トークンのオーディエンス ↔ CLI ツールの対応表 |
| 前提条件 | SKILL.md § 前提条件 | |
| 必須/推奨/回避 | SKILL.md § 必須/推奨/回避 | 読み取り専用のセマンティック モデル使用に関するガードレール。必須事項、推奨事項、回避事項 |
| メタデータの探索 | SKILL.md § メタデータの探索 | INFO.VIEW.* 関数と INFO.* 関数。 |
| 推奨される探索順序 | SKILL.md § 推奨される探索順序 | メタデータを調査する際の推奨順序 |
| よく使われる INFO 関数 | SKILL.md § よく使われる INFO 関数 | 初回探索で使用頻度の高い関数の一覧 |
| INFO 関数の全カタログ(動的) | discovery-queries.md § INFO 関数の全カタログ(動的) | |
| メタデータ オブジェクト → INFO 関数の対応表 | SKILL.md § メタデータ オブジェクト → INFO 関数の対応表 | オブジェクトを中心に探索するためのインライン対応表 |
| クエリの実行 | SKILL.md § クエリの実行 | ExecuteQuery の使用形式 |
| トラブルシューティング | SKILL.md § トラブルシューティング | よくある実行およびメタデータの問題の解決 |
| 例 | SKILL.md § 例 | メタデータ クエリの例、データ クエリの例 |
| スコープ推定クエリ | discovery-queries.md § スコープ推定クエリ | |
| INFO の出力列 | discovery-queries.md § INFO の出力列 | INFO.VIEW.(初回のメタデータ探索に推奨)、重要な INFO.(詳細なメタデータ/診断) |
| 結果の絞り込み(射影+フィルター処理) | discovery-queries.md § 結果の絞り込み(射影+フィルター処理) | |
| 詳細なメタデータ クエリ | discovery-queries.md § 詳細なメタデータ クエリ | |
| 依存関係の探索 | discovery-queries.md § 依存関係の探索 | DAX クエリの依存関係行セット、メジャーに限定した依存関係の行、逆方向の依存関係(メジャーを参照しているもの) |
前提条件
- COMMON-CORE.md — Fabric の概念、認証、コントロールプレーン API のコンテキスト。
- COMMON-CLI.md — CLI を使った検出、トークン/オーディエンスのパターン。
必須/推奨/回避
必ず行うこと
- 検出と実行には MCP ツールを呼び出します —
DiscoverArtifactsを使用してセマンティックモデルの GUID を見つけ、ExecuteQueryを使用して DAX クエリを実行します。これらは MCP ツールの呼び出しであり、シェルコマンドではありません。検出や呼び出しにaz rest、Get-Command、PowerShell スクリプトを使用しないでください。 - このスキルは読み取り専用にします。メタデータの検出と分析用 DAX クエリのみを行います。
- DAX データクエリと
INFO.VIEW.*は、セマンティックモデルへの読み取りアクセス権を持つすべてのユーザーが使用できるものとして扱います。ほかのINFO.*関数には、より高い権限が必要な場合があると想定してください。 - ワークスペースとセマンティックモデル項目の ID は動的に解決し、ID をハードコードしないでください。
- データクエリを作成する前に、メタデータの検出には DAX
INFO.VIEW.*/INFO.*を使用してください。
推奨事項
- クエリを反復的に改良する前に、セマンティックモデルのスコープ(
artifactId)を早い段階で検証します。 - セマンティックモデルのスキーマは段階的に検出します。スキーマ全体を最初に取得するのではなく、フィルターと列を指定した
INFO.VIEW.*/INFO.*呼び出し(例:SELECTCOLUMNS+FILTER)を使い、現在のタスクに直接関係する情報だけを取得します。discovery-queries.md § 結果を絞り込む(射影 + フィルタリング)を参照してください。 - ツールエンドポイントの移行リスクを低く抑えられるよう、特定のプロバイダーに依存しないガイダンスにします。
回避すること
- このスキルでのモデル変更操作。
推奨される検出順序
- 詳細な検出を始める前に、メタデータの範囲(テーブル、列、メジャー、リレーションシップの数)を見積もるため、discovery-queries.md § スコープ推定クエリを実行します。
- まず
INFO.VIEW.TABLES()を使って、テーブルの一覧をすばやく取得します。 INFO.VIEW.COLUMNS()とINFO.VIEW.MEASURES()を使って、セマンティックの詳細を確認します。INFO.VIEW.RELATIONSHIPS()を使って、結合とフィルターの動作を検証します。- より詳細なパターンについては、discovery-queries.md のクエリカタログ全体を使用します。
頻繁に使用する INFO 関数
INFO.VIEW.TABLESINFO.VIEW.MEASURESINFO.VIEW.COLUMNSINFO.VIEW.RELATIONSHIPSINFO.PARTITIONSINFO.MODELINFO.STORAGETABLECOLUMNSEGMENTSINFO.DEPENDENCIESINFO.EXPRESSIONSINFO.ROLESINFO.STORAGETABLECOLUMNSINFO.CALCULATIONGROUPSINFO.CALCULATIONITEMSINFO.CULTURESINFO.OBJECTTRANSLATIONSINFO.USERDEFINEDFUNCTIONSINFO.REFRESHPOLICIESINFO.ATTRIBUTEHIERARCHYSTORAGESINFO.COLUMNPARTITIONSTORAGESINFO.COLUMNSTORAGESINFO.DICTIONARYSTORAGESINFO.HIERARCHYSTORAGESINFO.PARTITIONSTORAGESINFO.RELATIONSHIPINDEXSTORAGESINFO.RELATIONSHIPSTORAGESINFO.SEGMENTMAPSTORAGESINFO.SEGMENTSTORAGESINFO.STORAGEFOLDERSINFO.STORAGEFILESINFO.TABLESTORAGESINFO.GENERALSEGMENTMAPSEGMENTMETADATASTORAGESINFO.DELTATABLEMETADATASTORAGESINFO.PARQUETFILESTORAGESINFO.STORAGETABLES
メタデータオブジェクト → INFO 関数マップ
| メタデータオブジェクト | 主な INFO 関数 |
|---|---|
| モデル | INFO.MODEL |
| テーブル | INFO.VIEW.TABLES |
| 列 | INFO.VIEW.COLUMNS, INFO.GROUPBYCOLUMNS, INFO.RELATEDCOLUMNDETAILS |
| メジャー | INFO.VIEW.MEASURES, INFO.FORMATSTRINGDEFINITIONS, INFO.DETAILROWSDEFINITIONS |
| リレーションシップ | INFO.VIEW.RELATIONSHIPS |
| パーティション | INFO.PARTITIONS, INFO.EXPRESSIONS, INFO.QUERYGROUPS, INFO.REFRESHPOLICIES, INFO.DATACOVERAGEDEFINITIONS |
| セキュリティロールとアクセス許可 | INFO.ROLES, INFO.TABLEPERMISSIONS, INFO.COLUMNPERMISSIONS |
| 階層 | INFO.HIERARCHIES, INFO.LEVELS, INFO.ATTRIBUTEHIERARCHIES, INFO.VARIATIONS |
| 計算グループ/項目 | INFO.CALCULATIONGROUPS, INFO.CALCULATIONITEMS, INFO.CALCULATIONEXPRESSIONS |
| パースペクティブ | INFO.PERSPECTIVES, INFO.PERSPECTIVETABLES, INFO.PERSPECTIVECOLUMNS, INFO.PERSPECTIVEHIERARCHIES, INFO.PERSPECTIVEMEASURES |
| カレンダー | INFO.CALENDARS, INFO.CALENDARCOLUMNGROUPS, INFO.CALENDARCOLUMNREFERENCES |
| カルチャ | INFO.CULTURES |
| オブジェクトの翻訳 | INFO.OBJECTTRANSLATIONS |
| 関数 | INFO.USERDEFINEDFUNCTIONS |
| 依存関係/リネージ | INFO.DEPENDENCIES, INFO.CHANGEDPROPERTIES, INFO.EXCLUDEDARTIFACTS |
| ストレージ内部情報/サイズ | INFO.STORAGEFOLDERS, INFO.STORAGEFILES, INFO.TABLESTORAGES, INFO.COLUMNSTORAGES, INFO.PARTITIONSTORAGES, INFO.SEGMENTMAPSTORAGES, INFO.DICTIONARYSTORAGES, INFO.COLUMNPARTITIONSTORAGES, INFO.SEGMENTSTORAGES, INFO.RELATIONSHIPSTORAGES, INFO.RELATIONSHIPINDEXSTORAGES, INFO.ATTRIBUTEHIERARCHYSTORAGES, INFO.HIERARCHYSTORAGES, INFO.GENERALSEGMENTMAPSEGMENTMETADATASTORAGES, INFO.DELTATABLEMETADATASTORAGES, INFO.PARQUETFILESTORAGES, INFO.STORAGETABLES, INFO.STORAGETABLECOLUMNS, INFO.STORAGETABLECOLUMNSEGMENTS |
クエリの実行
FabricIQ MCP server のツールを直接使用し、MCP ツールの呼び出しとして実行します。
| パラメーター | 説明 |
|---|---|
artifactId | 対象のセマンティックモデルの GUID |
daxQueries | 1~4 個の DAX クエリの配列(各クエリには単一の EVALUATE ステートメントを含める必要があります) |
maxRows | 任意。既定値は 250、クエリごとの最大行数は 1,000 です |
artifact ID の確認方法
- 推奨:
searchQueryにモデル名を、artifactTypes: ["SemanticModel"]に設定して、DiscoverArtifacts(MCP ツール)を呼び出します。 - MCP による検出を利用できない場合のみの代替手段:Fabric REST(
az rest)経由で解決します。ワークスペース内のSemanticModel型のアイテムを一覧表示し、displayNameで絞り込みます。
クエリの実行
ExecuteQuery MCP ツールを直接呼び出します。
ExecuteQuery(
artifactId = "<SEMANTIC_MODEL_GUID>",
daxQueries = ["EVALUATE SUMMARIZECOLUMNS(...)"]
)
最初にスキーマを取得する
DAX を記述する前に、GetSemanticModelSchema(artifactId = "<SEMANTIC_MODEL_GUID>") を呼び出して、テーブル、列、メジャーの定義を取得します。
トラブルシューティング
- MCP サーバーで ExecuteQuery 機能を利用できません
- 問題: アクティブなツール一覧に
ExecuteQueryがないため、クエリの実行を開始できません。 - 原因: FabricIQ MCP サーバーが登録されていない、読み込まれていない、または現在のクライアントセッションのツールメタデータが古くなっています。
- 解決策: アクティブな MCP サーバー/ツールの一覧を確認し、
ExecuteQueryが公開されていることを確かめてください。
- 問題: アクティブなツール一覧に
- 高度な INFO 関数で権限エラーが発生します
- 問題:
INFO.*に対するクエリが、認証または権限に関するエラーで失敗します。 - 原因: 多くの
INFO.*関数には、標準的な読み取りアクセス権を超えるセマンティックモデルの昇格されたアクセス許可が必要です。 - 解決策: 読み取り中心の探索には、まず
INFO.VIEW.*関数を使用してください。
- 問題:
- メタデータの出力量が多すぎて、目的を絞った分析ができません
- 問題: メタデータの全行セットを返すとプロパティが多すぎて、作業コンテキストが圧迫されます。
- 原因: 範囲を限定していない
INFO.VIEW.*およびINFO.*クエリは、現在のタスクには不要な場合が多い、広範なオブジェクト/プロパティの情報を返します。 - 解決策: discovery-queries.md § Scope Estimation Queries の範囲推定クエリを使用して範囲を推定し、出力スキーマを調べてから、discovery-queries.md § Narrowing Results (Projection + Filtering) の例に従って射影とフィルタリングで結果を絞り込んでください。
- ロールメンバーシップの取得に
INFODAX 関数を使用しないでください- 問題:
INFO.ROLEMEMBERSHIPS()が空の結果、または不完全な結果を返します。 - 原因: ロールメンバーはモデル定義ではなく、デプロイ後にサービスレベル(Entra ID)で割り当てられるため、DAX
INFO関数では確実に取得できません。 - 解決策: ロールメンバーシップ管理に関する最新のガイダンスは、ロールメンバーシップの管理に関するドキュメントを参照してください。
- 問題:
例
依存関係のパターンを含むクエリカタログ全体については、discovery-queries.md を参照してください。
メタデータクエリの例
EVALUATE
INFO.VIEW.TABLES()
ORDER BY [Name]
データクエリの例
DEFINE
MEASURE 'Sales'[Total Sales] = SUM('Sales'[Amount])
EVALUATE
SUMMARIZECOLUMNS(
'Customer'[Customer Name],
"Total Sales", [Total Sales]
)
ORDER BY [Total Sales] DESC
コメント
Markdown 対応