[Power BI] セマンティックモデルを覗き見る（Japan Power Platform Conference 2023で発表した内容を抜粋）

# Japan Power Platform Conference 2023 で登壇させていただきました。

Japan Power Platform Conference 2023 （通称：JPPC2023）にて、ありがたいことに登壇する機会をいただきました😘昨年のJPPC2022でも登壇させていただいたので、2年連続です。ありがたい限りです。

現時点（2023.12.16）ではまだ動画が公開されていませんが、いずれ下記のチャンネルにアップされるはず。

https://www.youtube.com/@JapanPowerPlatformUserGroup/featured

４日間イベントの運営をしていた方々には感謝しかありません。動画編集も、イベント終了後に運営メンバーが行ってくれていました。ありがとうございます。

# セマンティックモデルを覗き見る

ということで、JPPC2023で発表した内容を紹介！登壇のタイトルは **「セマンティックモデルを覗き見る」！**

![スライド1.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/80467/176da28a-8725-c78c-d8cb-6427888cc5ed.jpeg)

# スポンサーにも感謝！

**スポンサー各社にも感謝！** 会場に来た方々は特にわかると思いますが、お昼にお弁当でましたよね。ドリンクも席に置いてありましたよね。入場するときにネックストラップもらいましたよね。ノベルティもいっぱいもらいましたよね。配信だって、なんだって、コミュニティイベントとはいえすべてコストがかかっています。**スポンサー各社のロゴを目に焼き付けましょう。**

![スライド2.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/80467/9e3f27e1-9ba5-5a64-fd3f-25eca8d2b754.jpeg)

# 本題

**セマンティックモデルは少し前までデータセットと呼ばれていました。**

名称がセマンティックモデルに変わっただけで、今までのデータセットとなにも変わりません。以前までは、「Power BI データセットは、Power BI におけるセマンティックモデルです」という表現でドキュメントに記載があり、たしかによくわからない言い回しだったので、名称変更は大賛成です。

![スライド9.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/80467/9cbad303-4c44-9a8c-f063-3dcb25927301.jpeg)

![スライド10.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/80467/79da2048-0755-d708-5121-98fb941aa71d.jpeg)

**提供される豊富な機能？🤔**

これ、何個か言えますか？いえなければ、聞く価値があります。

![スライド11.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/80467/84de1520-73d3-f2cb-0cbb-1217ac1dc82e.jpeg)

![スライド12.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/80467/9f9ac237-2b8c-c7b4-affe-bb34c6017c98.jpeg)

## まず…

Power BI Desktopでレポートを作成し、Power BI ServiceにUPすると、レポートとセマンティックモデルという2つのアイテムが生成されます。最初はここで戸惑ったりしたものです。

![スライド13.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/80467/520af2f8-d887-d1c7-3160-1f3e6b45f2db.jpeg)

レポートはビジュアル部分を格納しています。内部のコードは現在公開されておらず、コードで管理することはできません。Power BI DesktopやPower BI Serviceで編集する必要があります。

一方、セマンティックモデルは、Tabular Editorなどを用いると、コードを見ることができます。しかし、Json形式で書かれており、一見すると難しそうだし、なにより外部ツールを利用することにそもそもハードルがある方もいるでしょう。

**Tabular Editor 2**

https://github.com/TabularEditor/TabularEditor/releases/tag/2.21.1

**Tabular Editor 3**

https://tabulareditor.com/

![スライド14.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/80467/74290132-7ff9-1842-c13c-2f9798d8d846.jpeg)

![スライド16.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/80467/a86a36c2-990b-04d8-7110-61d49a76c6cf.jpeg)

## Power BI Desktop でセマンティックモデルの一部を見ることができるようになった！

2023年10月頃、モデルエクスプローラーがプレビュー機能の仲間入りをしました。これで、すべてではないですが、Power BI Desktopを利用して、セマンティックモデルを覗き見ることが可能になりました。

:::note
プレビュー機能のため、オプションからプレビュー機能のONをしてください！（JPPCで言い忘れた😂）
:::

![スライド17.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/80467/5b69c115-a4e6-9717-ce60-953dbaa988d0.jpeg)

ここからいきます。モデルビューから、ですね。

![スライド18.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/80467/e07c375e-d9f8-3a2b-e5ef-638b2c1d8ded.jpeg)

![スライド19.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/80467/ac015441-1850-b490-5032-bfd3364529a6.jpeg)

# カルチャ

カルチャはセマンティックモデルを多言語対応させるためのメタデータです。

`ja-jp` とか、 `en-us` とか。

こちらの機能を理解し、実装できれば、多言語を使う人用のレポートを、一つのセマンティックモデルで表現することができます。

ただこのテーマ、ドキュメントの項目だけでも20項目近くある、重たいテーマです。登壇の内容はあくまでも多言語対応の一部を紹介したまでです。

https://learn.microsoft.com/ja-jp/power-bi/guidance/multiple-language-translation

![スライド21.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/80467/18185b25-40d0-48b9-4624-9ad0e55dbec7.jpeg)

外部ツールを使って進めます。こちらを使うと多言語化のタスクがスムーズに行えます。

https://github.com/PowerBiDevCamp/TranslationsBuilder/blob/main/Docs/Installation%20Guide.md

![スライド22.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/80467/4d73a6f8-d793-2a87-0065-aa21947d88b7.jpeg)

外部ツールで言語を追加し保存をすると、Power BI Desktopからカルチャが増えているのが確認できます。

![スライド23.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/80467/5710ec5c-fa38-e3f5-9ba5-44f55c1132f3.jpeg)

Power BI Desktopで作成しているレポートの既定言語は英語(en-us)になっています。Power BI Serviceは日本語（ja-jp）になっています。レポートをアップロードすると、自動的に列名が日本語に変わります。

一つのセマンティックモデルで複数言語に対応できているのがわかると思います。

![スライド24.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/80467/ff2736be-a89a-3318-0a79-aaa4a1cb013e.jpeg)

https://azure.microsoft.com/ja-jp/pricing/details/cognitive-services/translator/

Azure AI 翻訳のリソースを作成し、キーを先ほどの外部ツールに入力すると、機械翻訳も利用することができます。

![スライド25.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/80467/344edb2d-a1b6-d821-ef6f-46e4eeda583c.jpeg)

**DEMO動画**

![2023-12-16_18-42-55.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/80467/e2ccb4be-d070-b625-e0aa-ca0d2cb7e9c8.gif)

# パースペクティブ

パースペクティブの英語の意味は「視野」です。Power BIの世界だと、パーソナライズド・ビジュアルの中で機能します。ユーザーがパーソナライズドビジュアル内で変更できる列やメジャーを定義します。

こちらもオプションからONにしないと使えない機能です。

https://learn.microsoft.com/ja-jp/power-bi/create-reports/power-bi-personalize-visuals?tabs=powerbi-desktop


![スライド28.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/80467/0b3cd842-856c-5be2-1baa-104f80dd326e.jpeg)

オプションでONにしたうえで、Power BI Serviceにアップすると、「視覚エフェクトのカスタマイズ」が出てきます。

![スライド29.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/80467/5b44b519-378e-e785-5afc-919c63eabd05.jpeg)

すると、普通では発行されたレポートを編集することはできないのですが、パーソナライズド・ビジュアルが設定されていれば、ユーザーが自由にグラフを編集することができます。

画像ではわかりにくいですが、すべての列、テーブル、メジャーが選べる状態です。
しかしこのままでは、自由度が高い一方、ユーザーとしては迷いが生まれることも多いはずです。
セキュリティ上、見せたくない列やテーブルがある場合もあるでしょう。

![スライド30.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/80467/4f4ae55b-ccff-20c9-976d-b456e2b1e350.jpeg)

そこでパースペクティブの登場です。

パースペクティブは、Power BI Desktopで設定値を見ることはできますが、設定にはTabular Editorが必要です。

![スライド31.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/80467/737ca560-1bee-9921-767b-5920c5023003.jpeg)

TEで設定したパースペクティブを、各テーブル、列、メジャーに割り当てます。

![スライド32.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/80467/0f52ac7c-64b7-ef6d-498f-5b5a14c17eaa.jpeg)

そのパースペクティブをPower BI Desktopでビジュアルに割り当てます。

![スライド33.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/80467/b1d5f799-0195-fa28-a46f-c53ccd607036.jpeg)

**パースペクティブ設定なし**

全ての列やテーブルが見えています。

![スライド34.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/80467/a7a84c6c-5dc7-2cb3-c148-677412dd2bfc.jpeg)

**パースペクティブ設定あり**

テーブルや列が制限されているのがわかるはずです。

![スライド35.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/80467/46ee5847-40a7-aca2-4176-051208b8a3ad.jpeg)

# ロール

ロールは以前からPower BI Desktopで設定することができました。行レベルセキュリティ（RLS）の設定時に使う機能です。

Tabular Editorを使うと、ビジュアルオブジェクトごとに閲覧を制限する、オブジェクトレベルセキュリティ（OLS）にも活用することができます。

ロールについては、以前からあった記事ですし、RLS関連の記事は比較的多いため、あまり触れません。

![スライド37.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/80467/0f642188-f74b-62c5-a1cf-3a2f58208c97.jpeg)

# 計算グループ

計算グループ（Caluculation Group）も、以前はTabular Editorがないと設定ができませんでした。今ではPower BI Desktopがあれば設定を終えることができます。

![スライド39.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/80467/1453e8ad-8ed0-a099-9b97-e411a6a40c64.jpeg)

計算グループを利用するメリットのひとつは、ベースメジャーを再利用（`SELECTEDMEASURE()`）し、例えばタイムインテリジェンス関数でメジャーを量産する必要がなくなることです。

![スライド40.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/80467/8b9aad93-5318-3930-0ce3-c73a6a5079f9.jpeg)

マトリックスビジュアルを使うとわかりやすいです。

![スライド41.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/80467/74478cb4-cecf-3b5a-2a7a-2829ca87bec7.jpeg)

そのほかにも、様々な利用例があります。以下ブログでたくさん紹介されているので参考にするといいでしょう。

- タイムインテリジェンス 
- スイッチメジャー
- ダイナミックなフォーマット文字列
- カスタムメジャーによるカテゴリ内訳の拡張
- 基本サマリー統計の表示
- アクティブなリレーションシップの変更
- 双方向フィルタの有効化
- チャートの棒、線、およびラベルの制御
- チャートの異なるデータ・サブセットのハイライト
- ピボット化を解除せずに複数の列をスライスする

https://apexinsights.net/blog/10-uses-for-calculation-groups

![スライド42.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/80467/bf6c2cb0-852b-c44b-8b92-927e9249d04b.jpeg)

# 続きがあります

ブログでは以上です！
登壇では、このあと、データ圧縮やセマンティックモデルを承認する話もしています。Copilotを活用していくためにも、セマンティックモデルのメタデータを充実させることは今後ますます重要になっていくと考えられます。組織でセマンティックモデルを育てましょう😊

# 動画は以下Youtubeチャンネルで公開されます。

続きを知りたければ、動画にてお楽しみください！

https://www.youtube.com/@JapanPowerPlatformUserGroup/featured