TMDL ビュー を使用すると、Power BI Desktop で 表形式モデル定義言語 (TMDL) を使用して、最新のコード エディターを使用してセマンティック モデル オブジェクトのスクリプト作成、変更、および変更を適用し、開発効率を向上させ、セマンティック モデル メタデータの完全な可視性と制御を提供できます。
TMDL ビュー は、モデル ビューなどのグラフィカル ユーザー インターフェイスではなく、コードを使用したセマンティック モデリングの代替エクスペリエンスを提供します。
TMDL ビューには、次の利点があります。
- 検索と置換、キーボード ショートカット、複数行の編集などを含む豊富なコード エディターを使用して、開発効率を向上。
- セマンティック モデル開発者間で TMDL スクリプトを簡単にスクリプト化、共有、再利用することで、再利用性の を向上させます。 たとえば、一元化された SharePoint サイトを使用して、予定表テーブルやタイム インテリジェンス計算グループなどの再利用可能なセマンティック モデル オブジェクトを簡単に共有できます。
- すべてのセマンティック モデル オブジェクトとプロパティを表示し、IsAvailableInMDX や DetailRowsDefinition など、Power BI Desktop ユーザー インターフェイスで使用できない項目を変更を可能にすることで、制御と透明性を高めます。
プレビュー機能を有効にする
TMDL ビュー
TMDL へのスクリプト
Power BI Desktop で、次の図に示すように、ウィンドウの左側にある TMDL ビュー アイコンを選択します。
TMDL ビューが開くと、コード エディターは最初は空になります。 テーブル、メジャー、列などのセマンティック モデル オブジェクトをスクリプト化するには、データ ペイン からオブジェクトを選択し、コード エディターにドラッグします。
TMDL ビューを使用して [データ] ウィンドウからオブジェクトをドラッグすると、次の図に示すように、Power BI はオブジェクト メタデータ全体を TMDL として現在のタブにスクリプト化します。または、選択したオブジェクトの createOrReplace TMDL スクリプトとして、現在のタブが空でない場合は新しいタブを開きます。
または、データ ビューでオブジェクトを右クリックし、次の図に示すように、新しいタブまたはクリップボード スクリプト TMDL を選択できます。
ヒント
オブジェクトを TMDL ビュー コード エディターにスクリプト化する前に Ctrl キーを押すと、複数選択がサポートされます。
コード エディター
セマンティック モデル オブジェクトをスクリプト化するか、TMDL スクリプトをコード エディターに貼り付けたら、TMDL ビュー コード エディターによって提供される包括的なコード エクスペリエンス機能を使用できます。 コード エクスペリエンス機能を使用すると、モデル メタデータを調べるか、セマンティック モデルに後で適用できる変更を行うことができます。
セマンティック強調表示
セマンティック強調表示はコード エディターに組み込まれており、意味に基づいてコードの一部に異なる色を適用することで読みやすさが向上します。 このような色分けにより、次の図に示すように、TMDL コードの構造と機能を理解しやすくなります。
次の図に示すように、TMDL スクリプトのセクションを展開または折りたたみることもできます。
オートコンプリート
オートコンプリートはコード エディターに組み込まれており、入力中にインテリジェントな提案が提供されます。 オートコンプリートを使用すると、カーソル位置を考慮して可能な値またはプロパティを動的に提案することで、ワークフローを高速化し、エラーの可能性を減らし、コード オプションを理解するのに役立ちます。
Ctrl + Spaceキーを押して、任意の場所でオートコンプリート機能
ツールヒント
コンテキストヒントはマウスホバー時に表示され、各 TMDL オブジェクトまたはプロパティに関する情報が提供されます。
コードアクション
カーソルが波線または選択されたテキスト上にある場合、TMDL ビューには、系列タグの生成やプロパティ名のスペルミスの修正など、使用可能なコード アクションを示す電球アイコンが表示されます。
コードの書式設定
Shift + Alt + F キーを押すか、リボンの [書式] オプションをクリックして、TMDL コードの書式を設定します。
コンテキスト メニューの [書式の選択] オプションを使用して、選択したテキストの書式を設定することもできます。
エラー診断
コード エディターの組み込みのエラー診断は、コード エディターで TMDL 言語エラーを強調表示し、問題の解決に関するガイダンスを提供する詳細なメッセージを示すことで、問題の特定と修正に役立ちます。 さらに、次の図に示すように、の [問題] ペインでエラーの概要を使用できるため、コード エディターでエラーの場所に簡単に移動できます。
セマンティック モデルに変更を適用する
準備ができたら、[ の適用] ボタンを選択してセマンティック モデルに対して TMDL スクリプトを実行し、TMDL コードの変更を適用できます。
成功すると、通知が表示され、モデリングの変更がセマンティック モデルに適用されます。
エラーが発生した場合、モデリングの変更がセマンティック モデルに適用されなかったことを示すエラー通知が表示されます。 通知の [詳細 表示] リンクを選択すると、エラーの詳細を表示できます。これにより、出力ペイン が展開され、エラーの詳細が表示されます。
手記
TMDL ビューは、データを更新したり、レポートに影響を与えたりすることなく、セマンティック モデルのメタデータのみを変更します。 PowerQuery 式や計算列式の変更など、変更にデータ更新が必要な場合は、変更を有効にするためにテーブルまたはモデルを手動で更新する必要があります。 さらに、TMDL ビューのフィールドの名前を変更すると、そのフィールドを使用するレポート内のビジュアルが破損する可能性があります。
セマンティック モデルの変更をプレビューする
TMDL ビューを使用すると、スクリプト実行の前後にセマンティック モデルのプレビューを表示し、TMDL コードの差分として表示することで、スクリプトの変更をプレビューできます。 スクリプトの変更のプレビューは、他のソースからスクリプトをコピーする場合に特に便利です。セマンティック モデルに対してスクリプトを実行する前に、スクリプトの影響を評価できます。
[プレビュー] ボタンを選択すると、開いているタブで TMDL スクリプトを実行する前と実行後に、セマンティック モデルの TMDL 差分が表示されます。
次の図に示すように、右側のウィンドウにサイド バイ サイド ウィンドウが表示されます。
赤と緑のボックスは変更を強調表示し、赤いボックスは削除または変更された行を示し、緑は新しい行を示します。
手記
比較は、現在表示されている TMDL スクリプトに対して直接ではなく、スクリプトの実行前と実行後の包括的なセマンティック モデル比較です。 そのため、一部のプロパティは、既定の TMDL プロパティ/オブジェクトの順序に従って、タブに表示されるプロパティとは異なる順序になる場合があります。
プレビューは読み取り専用ですが、スクリプトの編集を続けることができます。 変更後にプレビューを更新するには、次の図のバナーに示すように、[ プレビューの更新 ] ボタンを選択します。
プレビュー画面の右上隅には、すべてのコード差分のナビゲーションを有効にするツール バーがあり、 インライン または サイド バイ サイド の差分の切り替え、変更されていないリージョンの表示または非表示、プレビュー ビューの閉じなどを行えます。
セマンティック モデルの変更をプレビューする際には、いくつかの考慮事項に留意する必要があります。
- TMDL ビューは、プレビューの実行ごとにビュー構成を既定値にリセットします。
- プレビューは、有効な TMDL 変更でのみ実行されます。 無効な TMDL スクリプトはプレビューを実行せず、[出力] ウィンドウにエラーが表示されます。
TMDL スクリプト タブ
TMDL ビューでは、一度に複数のスクリプト タブを持つことができます。いずれのタブも名前を変更または削除できます。
TMDL ビュー タブの内容は、Power BI Desktop レポートを保存するときにレポート ファイルに保存されるため、次に Power BI Desktop レポート ファイルを開いたときに中断した場所に進むことができます。 Power BI Project (PBIP)に保存すると、次の図に示すように、各スクリプト タブは .tmdl ファイルとして \TMDLScripts フォルダーに保存されます。
ヒント
TMDL スクリプトは Visual Studio Code で開いて編集でき、Power BI Desktop を再起動した後に適切に再読み込みされます。
問題の と 出力 ペインには、現在選択および表示されているスクリプト タブに固有のエラーとメッセージが表示されます。 別の TMDL スクリプト タブに切り替えると、選択したタブと現在表示されているタブに固有の情報を使用して、両方のペインが更新されます。
[クリア] ボタンを選択すると、[出力] ウィンドウのメッセージを空にできます。
メッセージは Power BI Desktop セッションごとにのみ保持されるため、Power BI Desktop を再起動すると、すべてのスクリプト タブのすべての出力メッセージがクリアされます。
互換性レベルのアップグレード プロンプト
Power BI セマンティック モデルの 互換性レベル によって、アクセス可能な機能が決まります。 TMDL ビューを使用すると、現在の互換性レベルで使用できない場合でも、Analysis Services オブジェクトまたはプロパティを追加できます。 互換性レベルのアップグレードを必要とする変更を適用すると、TMDL ビューには、アップグレードが必要なオブジェクトを示すプロンプトが表示されます。
TMDL ビューを使用したオブジェクトの名前変更
TMDL ビュー内のオブジェクトの名前を変更するには、その親をスクリプト化する必要があります。 たとえば、列の名前を変更するにはテーブルのスクリプトを作成する必要があります。一方、テーブルの名前を変更するにはセマンティック モデル全体をスクリプト化する必要があります。 表形式オブジェクト モデル階層の詳細については、「表形式オブジェクト モデル階層」を参照してください。
TMDL ビューを使用すると、単純な検索および置換パターンを使用して一括名前変更を効率的に実行できます。 たとえば、次の手順に従って、すべてのテーブル列の名前を小文字に変更できます。
TMDL ビューを開き、変更するテーブルのスクリプトを作成します。
Ctrl キーを押しながら F キーを押して [検索と置換] ダイアログを開き、[正規表現] オプションが有効になっていることを確認します。
検索フィールドと置換フィールドに次のパターンを入力し、[すべて置換] を選択します。
アクション | パターン/置換 |
---|---|
検索 | (^\s+column\s+)(.+) |
取り替える | $1\L$2 |
TMDL スクリプトを実行して、すべてのテーブル列の名前をすぐに小文字に変更します。
列名が sourceColumn プロパティと異なる点に注意してください。
セマンティック モデル テーブルと Power Query クエリの間の同期は sourceColumn に依存し、名前は独立しています。 Power Query エディターを開くと、モデルの列名ではなく、sourceColumn に一致する列名が表示されます。 さらに、ユーザー インターフェイスで列の名前を変更すると、sourceColumn と列名が同じになるまで、名前の変更ステップはクエリに自動的に追加されません。
TMDL ビューと Power BI プロジェクト
作業を Power BI プロジェクト (PBIP) として保存すると、TMDL ファイル
両方のエクスペリエンスをシームレスに統合できます。 たとえば、Power BI Desktop を起動せずに迅速な変更のために PBIP の TMDL 定義を更新し、Power BI Desktop が既に開かれている場合は TMDL ビューを利用して、TMDL を使用してセマンティック モデルに対する一連の変更を効率的に実装できます。 どちらの方法でも、豊富で一貫性のある TMDL コーディング エクスペリエンスが提供されます。
TMDL ビューの一般的なユース ケース
シナリオ: 列、Power Query 式、構成による並べ替えおよびその他の要素を含む完全な定義で、セマンティック モデル テーブルを別のセマンティック モデルで再利用または共有する必要があります。
解決策: テーブルでセマンティック モデルを開き、TMDL ビューを使用してスクリプト化します。 スクリプトを他の Power BI Desktop ウィンドウにコピーし、[TMDL ビュー] タブを開き、スクリプトを適用します。
シナリオ: プレフィックス "dim_" または "fact_" を持つすべてのテーブルに名前を付けた。 100 を超える各テーブルを手動で更新せずに、これらのプレフィックスを削除したいと思います。
解決策: TMDL ビューを開き、セマンティック モデルをスクリプト化し、プレフィックスを検索して (正規表現がサポートされています)、空のテキストに置き換えます。
解決策: TMDL ビューを開き、新しい空のタブを作成し (または既存の観点からスクリプトを使用して)、TMDL を使用してパースペクティブを作成または編集します。 このメソッドは、翻訳、詳細行式など、グラフィカル インターフェイスがない他のセマンティック モデル メタデータにも適用されます。
createOrReplace
perspective SalesView
perspectiveTable Sales
perspectiveMeasure 'Sales Amount'
perspectiveMeasure 'Sales Qty'
perspectiveColumn Quantity
perspectiveColumn 'Amount'
シナリオ: 更新をトリガーせずに、テーブルの Power Query 式を変更する必要があります。
解決策: テーブルのスクリプトを作成し、Power Query 式を変更して、変更を適用します。 TMDL ビューでは、データを更新する必要はありません。
シナリオ: テーブルのストレージ モードを DirectQuery からインポートに切り替える必要がある、またはその逆
解決策: テーブルのスクリプト作成、パーティション モードの更新、変更の適用を行います。
シナリオ: 重要な変更を加える前にセマンティック モデル定義をバックアップし、必要に応じて以前の定義に簡単にロールバックする必要があります。
解決策: バックアップするセマンティック モデルまたは特定の部分をスクリプト化し、他のビューで変更を加え、必要に応じて TMDL ビューに戻り、保存されたスクリプトを実行して前のメタデータを復元します。
考慮事項と制限事項
TMDL ビューは現在プレビュー段階なので、次の制限事項に注意してください。
- TMDL ビューを使用して、セマンティック モデル内の任意のオブジェクトまたはプロパティを編集できます。 ただし、不完全または正しくない変更は、予期しない動作につながる可能性があります。 これらの操作の詳細については、 モデルの作成に関する記事を参照してください。
- コマンド パレット には、現在サポートされていないコマンドがいくつか表示されます。
- ワークスペースから初期 Git 統合を設定しても、発行されたセマンティック モデルに保存された TMDL ビュー スクリプトは含まれません。 詳細については、Fabric Git 統合 記事を参照してください。
- メジャーや列などのモデル エクスプローラー グループをスクリプト化することはできません。
関連コンテンツ
次の記事では、TMDL とその使用方法について詳しく説明します。