このチュートリアルでは、SemPy (プレビュー) を使用して Power BI セマンティック モデルのメジャーを計算する方法について説明します。
このチュートリアルでは、次の作業を行う方法について説明します。
- セマンティック リンク ライブラリ (SemPy) の Python インターフェイスを使用してプログラムで Power BI メジャーを評価する
- AI と BI のブリッジに役立つ SemPy コンポーネントについて説明します。
- FabricDataFrame - セマンティック情報で強化された pandas に似た構造
- 生データ、構成、メジャーなど、セマンティック モデルを取得する関数
前提条件
Microsoft Fabric サブスクリプションを取得します。 または、無料の Microsoft Fabric 試用版にサインアップします。
Microsoft Fabric にサインインします。
ホーム ページの左下にあるエクスペリエンス スイッチャーを使用して、Fabric に切り替えます。
ナビゲーション ウィンドウで [ ワークスペース] を選択し、ワークスペースを選択して現在のワークスペースとして設定します。
Retail Analysis Sample PBIX.pbix セマンティック モデルをダウンロードし、ワークスペースにアップロードします。
ノートブックで作業を進める
このチュートリアルには、powerbi_measures_tutorial.ipynb ノートブックが付属しています。
このチュートリアルの付属のノートブックを開くには、「データ サイエンス用にシステムを準備する」の手順に従って、ノートブックをワークスペースにインポート します。
このページからコードをコピーして貼り付ける場合は、[新しいノートブックを作成する] ことができます。
コードの実行を開始する前に、必ずレイクハウスをノートブックにアタッチしてください。
ノートブックを設定する
このセクションでは、ノートブック環境を設定します。
ノートブックでインラインで
SemPyを使用して、PyPI から%pipをインストールします。%pip install semantic-link-sempy後で使用するモジュールをインポートします。
import sempy.fabric as fabricPower BI ワークスペースに接続し、ワークスペース内のセマンティック モデルを一覧表示します。
fabric.list_datasets()セマンティック モデルを読み込みます。 このチュートリアルでは、小売りの分析サンプル セマンティック モデルを使用します。
dataset = "Retail Analysis Sample"dataset = "Retail Analysis Sample PBIX"
ワークスペースのメジャーを一覧表示する
SemPy の list_measures を使用して、セマンティック モデル内のメジャーを一覧表示します。
fabric.list_measures(dataset)
メジャーを評価する
SemPy の evaluate_measure 関数を使用して、さまざまな方法で測定基準を評価します。
生のメジャーを評価する
SemPy の evaluate_measure 関数を使用して、"Average Selling Area Size" という名前の構成済みメジャーを計算します。
fabric.evaluate_measure(dataset, measure="Average Selling Area Size")
groupby_columns を使用してメジャーを評価する
groupby_columns パラメーターを使用して、結果を列別にグループ化します。
fabric.evaluate_measure(dataset, measure="Average Selling Area Size", groupby_columns=["Store[Chain]", "Store[DistrictName]"])
このコードは、 Store[Chain] と Store[DistrictName]ごとにグループ化されます。
フィルターを使用してメジャーを評価する
filters パラメーターを使用して、結果を特定の列値に制限します。
fabric.evaluate_measure(dataset, \
measure="Total Units Last Year", \
groupby_columns=["Store[Territory]"], \
filters={"Store[Territory]": ["PA", "TN", "VA"], "Store[Chain]": ["Lindseys"]})
この例では、 Store はテーブル、 Territory は列、 PA は許容値です。
複数のテーブル間でメジャーを評価する
セマンティック モデル内の複数のテーブルの列でグループ化します。
fabric.evaluate_measure(dataset, measure="Total Units Last Year", groupby_columns=["Store[Territory]", "Sales[ItemID]"])
複数のメジャーを評価する
evaluate_measure関数を使用すると、複数のメジャー識別子を指定し、計算値を 1 つのDataFrameで返すことができます。
fabric.evaluate_measure(dataset, measure=["Average Selling Area Size", "Total Stores"], groupby_columns=["Store[Chain]", "Store[DistrictName]"])
Power BI XMLA コネクタを使用する
既定のセマンティック モデル クライアントでは、Power BI REST API が使用されます。 このクライアントでクエリが失敗した場合は、 use_xmla=True設定して Power BI XMLA エンドポイントに切り替えます。 SemPy パラメーターは、XMLA を使用したメジャー計算でも同じです。
fabric.evaluate_measure(dataset, \
measure=["Average Selling Area Size", "Total Stores"], \
groupby_columns=["Store[Chain]", "Store[DistrictName]"], \
filters={"Store[Territory]": ["PA", "TN", "VA"], "Store[Chain]": ["Lindseys"]}, \
use_xmla=True)
関連するコンテンツ
その他のセマンティック リンクと SemPy のチュートリアルを参照してください。