共用方式為


教學課程:從 Jupyter Notebook 擷取和計算 Power BI 量值

本教學課程說明如何使用 SemPy(預覽)來計算語意模型中的量值(Power BI 數據集)。

在本教學課程中,您會了解如何:

  • 透過語意連結 Python 連結庫 (SemPy) 的 Python 介面,以程式設計方式評估 Power BI 量值。
  • 熟悉 SemPy 的元件,有助於彌合 AI 與 BI 之間的差距。 這些元件包括:
    • FabricDataFrame - 使用其他語意信息增強的 pandas 類似結構。
    • 可讓您擷取語意模型的實用函式,包括原始數據、組態和量值。

必要條件

  • 從左側瀏覽窗格中選取 [工作區 ],以尋找並選取您的工作區。 此工作區會變成您目前的工作區。

  • 下載零售分析範例 PBIX.pbix 語意模型,並將其上傳至您的工作區。

在筆記本中跟著

powerbi_measures_tutorial.ipynb 筆記本會伴隨本教學課程。

若要開啟本教學課程隨附的筆記本,請遵循準備系統以進行數據科學教學課程中的指示,將筆記本匯入您的工作區。

如果您想要複製並貼上此頁面中的程式碼,您可以 建立新的筆記本

開始執行程序代碼之前,請務必將 Lakehouse 附加至筆記本

設定筆記本

在本節中,您會使用必要的模組和數據來設定筆記本環境。

  1. 使用%pip筆記本內的內嵌安裝功能從 PyPI 安裝SemPy

    %pip install semantic-link
    
  2. 執行稍後所需模組的必要匯入:

    import sempy.fabric as fabric
    
  3. 您可以連線到 Power BI 工作區。 列出工作區中的語意模型:

    fabric.list_datasets()
    
  4. 載入語意模型。 在本教學課程中,您會使用 零售分析範例 PBIX 語意模型:

    dataset = "Retail Analysis Sample PBIX"
    

列出工作區量值

使用 SemPy 的 函式列出語意模型中的 list_measures 量值,如下所示:

fabric.list_measures(dataset)

評估量值

在本節中,您會使用 SemPy 的 函式,以各種方式評估量值 evaluate_measure

評估原始量值

在下列程式代碼中,使用 SemPy 的 函 evaluate_measure 式來計算稱為「平均銷售區域大小」的預先設定量值。 您可以在上一個儲存格的輸出中看到此量值的基礎公式。

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]"])

在上一個程式代碼中,您會依語意模型中的數據Chain行和DistrictNameStore數據表分組。

使用篩選評估量值

您也可以使用 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函式可讓您提供多個量值的識別碼,並輸出相同 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所支援。 如果使用此用戶端執行查詢時發生任何問題,可以使用 將後端切換至 Power BI 的 XMLA 介面 use_xmla=True。 使用 XMLA 進行量值計算時,SemPy 參數會維持不變。

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 的其他教學課程: