次の方法で共有


Jupyter ノートブックから Power BI メジャーを抽出して計算する

このチュートリアルでは、SemPy (プレビュー) を使用して Power BI セマンティック モデルのメジャーを計算する方法について説明します。

このチュートリアルでは、次の作業を行う方法について説明します。

  • セマンティック リンク ライブラリ (SemPy) の Python インターフェイスを使用してプログラムで Power BI メジャーを評価する
  • AI と BI のブリッジに役立つ SemPy コンポーネントについて説明します。
    • FabricDataFrame - セマンティック情報で強化された pandas に似た構造
    • 生データ、構成、メジャーなど、セマンティック モデルを取得する関数

前提条件

  • ナビゲーション ウィンドウで [ ワークスペース] を選択し、ワークスペースを選択して現在のワークスペースとして設定します。

  • Retail Analysis Sample PBIX.pbix セマンティック モデルをダウンロードし、ワークスペースにアップロードします。

ノートブックで作業を進める

このチュートリアルには、powerbi_measures_tutorial.ipynb ノートブックが付属しています。

ノートブックを設定する

このセクションでは、ノートブック環境を設定します。

  1. ノートブックでインラインでSemPyを使用して、PyPI から%pipをインストールします。

    %pip install semantic-link-sempy
    
  2. 後で使用するモジュールをインポートします。

    import sempy.fabric as fabric
    
  3. Power BI ワークスペースに接続し、ワークスペース内のセマンティック モデルを一覧表示します。

    fabric.list_datasets()
    
  4. セマンティック モデルを読み込みます。 このチュートリアルでは、小売りの分析サンプル セマンティック モデルを使用します。

    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 のチュートリアルを参照してください。