使用語意連結的Power BI連線能力
Power BI 連線能力是 Microsoft Fabric 中語意連結的核心。 本文說明語意連結為 Python pandas 和 Apache Spark 生態系統的使用者提供語意模型連線的方式。
語意模型通常代表高數據標準,這是上游數據處理和精簡的結果。 商務分析師可以:
- 將定義域知識和商業規則編碼為Power BI量值。
- 使用語意模型建立 Power BI 報表。
- 使用這些報告來推動商務決策。
當使用相同語意模型的數據科學家嘗試在不同的程式碼環境或語言中複製商業規則時,可能會產生重大錯誤。 語意連結可橋接語意模型與 Microsoft Fabric 體驗中 Synapse 資料科學 之間的差距,為商務分析師和數據科學家提供順暢地共同作業並減少數據不符的方式。
語意連結提供與:
- 透過 SemPy Python 連結庫的 Python pandas 生態系統。
- 透過支援 PySpark、Spark SQL、R 和 Scala 的 Spark 原生連接器 建立語意模型。
透過適用於 pandas 使用者的 SemPy Python 連結庫進行數據連線
SemPy Python 連結庫是語意連結功能的一部分,並提供 pandas 使用者。 SemPy 功能包括從數據表擷取數據、量值計算,以及執行數據分析表示式 (DAX) 查詢和元數據。
針對 Spark 3.4 和更新版本,使用 Fabric 時,預設運行時間提供語意連結,而且不需要安裝它。
針對 Spark 3.3 或更新至最新版本的語意連結,請執行下列命令:
%pip install -U semantic-link
SemPy 也會擴充 pandas DataFrame,並新增從 Power BI 數據源傳播的元數據。 此元資料包括:
- Power BI 資料類別:
- 地理:位址、地點、城市
- URL:Web URL、影像 URL
- 條碼
- 數據表之間的關聯性
- 階層
透過語意連結 Spark 原生連接器的數據連線
語意連結 Spark 原生連接器可讓 Spark 使用者存取 Power BI 資料表和量值。 連接器與語言無關,並支援 PySpark、Spark SQL、R 和 Scala。
若要使用 Spark 原生連接器,您可以將語意模型表示為 Spark 命名空間,並以透明方式將 Power BI 數據表公開為 Spark 數據表。
下列命令會將 Spark 設定為使用適用於 Spark SQL 的 Power BI Spark 原生連接器:
spark.conf.set("spark.sql.catalog.pbi", "com.microsoft.azure.synapse.ml.powerbi.PowerBICatalog")
# Optionally, configure the workspace using its ID
# Resolve workspace name to ID using fabric.resolve_workspace_id("My workspace")
# Replace 00000000-0000-0000-0000-000000000000 with your own workspace ID
# spark.conf.set("spark.sql.catalog.pbi.workspace, "00000000-0000-0000-0000-000000000000")
下列命令會列出語意模型中名為 Sales Dataset
的所有資料表:
%%sql
SHOW TABLES FROM pbi.`Sales Dataset`
下列命令會顯示語意模型中Sales Dataset
資料表的數據Customer
:
%%sql
SELECT * FROM pbi.`Sales Dataset`.Customer
Power BI 量值可透過虛擬 _Metrics
資料表存取,以透過多維度 Power BI 橋接關係型 Spark SQL。 在下列範例中Sales Dataset
,Total Revenue
和 Revenue Budget
是在語意模型中定義的量值,而其他數據行則為維度。 等 AVG
匯總函式會針對量值忽略,而且只會提供與 SQL 的一致性。
連接器支援從 Spark 運算式向下推入 Power BI 引擎等計算 Customer[State] in ('CA', 'WA')
的述詞,以啟用使用 Power BI 優化引擎。
SELECT
`Customer[Country/Region]`,
`Industry[Industry]`,
AVG(`Total Revenue`),
AVG(`Revenue Budget`)
FROM
pbi.`Sales Dataset`.`_Metrics`
WHERE
`Customer[State]` in ('CA', 'WA')
GROUP BY
`Customer[Country/Region]`,
`Industry[Industry]`
使用 Power BI 量值擴充數據
此 add_measure
作業是語意連結的強大功能,可讓您使用語意模型中的量值來增強數據。 這項作業僅適用於 SemPy Python 連結庫,且 Spark 原生連接器不支援。 如需 方法的詳細資訊add_measure
,請參閱類別檔中FabricDataFrame
add_measure。
若要使用 SemPy Python 連結庫,請在 Notebook 數據格中執行下列程式代碼,將其安裝在筆記本核心中:
# %pip and import only needs to be done once per notebook
%pip install semantic-link
from sempy.fabric import FabricDataFrame
下列程式代碼範例假設您有現有的 FabricDataFrame,其中包含您想要使用語意模型量值來增強的數據。
df = FabricDataFrame({
"Sales Agent": ["Agent 1", "Agent 1", "Agent 2"],
"Customer[Country/Region]": ["US", "GB", "US"],
"Industry[Industry]": ["Services", "CPG", "Manufacturing"],
}
)
joined_df = df.add_measure(["Total Revenue", "Total Budget"], dataset="Sales Dataset")
方法 add_measure
會執行下列步驟:
- 將 FabricDataFrame 中的數據行名稱解析為 Power BI 維度。 作業會忽略指定語意模型內無法解析的任何數據行名稱。 如需詳細資訊,請參閱支援的 DAX語法。
group by
使用解析的數據行名稱定義數據行。- 計算層級的
group by
一或多個量值。 - 篩選 FabricDataFrame 中現有數據列的結果。
相關內容
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應