Łączność usługi Power BI z linkiem semantycznym
Łączność z usługą Power BI jest podstawą linku semantycznego w usłudze Microsoft Fabric. W tym artykule opisano sposoby, w jakie link semantyczny zapewnia łączność z semantycznymi modelami dla użytkowników ekosystemów bibliotek pandas języka Python i platformy Apache Spark.
Model semantyczny zwykle reprezentuje wysoki standard danych, który jest wynikiem nadrzędnego przetwarzania i uściślenia danych. Analitycy biznesowi mogą:
- Kodowanie wiedzy o domenie i logiki biznesowej do miar usługi Power BI.
- Tworzenie raportów usługi Power BI przy użyciu modeli semantycznych.
- Te raporty umożliwiają podejmowanie decyzji biznesowych.
Gdy analitycy danych pracujący z tymi samymi semantycznymi modelami próbują zduplikować logikę biznesową w różnych środowiskach kodu lub językach, błędy krytyczne mogą spowodować. Powiązania semantyczne łączą luki między semantycznymi modelami a usługą Synapse Nauka o danych w usłudze Microsoft Fabric, aby zapewnić analitykom biznesowym i analitykom danych bezproblemową współpracę i zmniejszenie niezgodności danych.
Link semantyczny oferuje łączność z:
- Ekosystem biblioteki Python pandas za pośrednictwem biblioteki języka Python SemPy.
- Modele semantyczne za pośrednictwem natywnego łącznika platformy Spark, który obsługuje oprogramowanie PySpark, Spark SQL, R i Scala.
Łączność danych za pośrednictwem biblioteki języka Python SemPy dla użytkowników biblioteki pandas
Biblioteka SemPy języka Python jest częścią funkcji linku semantycznego i obsługuje użytkowników biblioteki pandas. Funkcje SemPy obejmują pobieranie danych z tabel, obliczanie miar i wykonywanie zapytań i metadanych języka Data Analysis Expressions (DAX).
W przypadku platformy Spark w wersji 3.4 lub nowszej link semantyczny jest dostępny w domyślnym środowisku uruchomieniowym podczas korzystania z sieci szkieletowej i nie ma potrzeby jej instalowania.
W przypadku platformy Spark 3.3 lub nowszej albo zaktualizowania do najnowszej wersji linku semantycznego uruchom następujące polecenie:
%pip install -U semantic-link
Biblioteka SemPy rozszerza również ramki danych pandas z dodanymi metadanymi propagowanymi ze źródła danych usługi Power BI. Te metadane obejmują:
- Kategorie danych usługi Power BI:
- Geograficzne: Adres, miejsce, miasto
- Adres URL: internetowy adres URL, adres URL obrazu
- Kod kreskowy
- Relacje między tabelami
- Hierarchie
Łączność danych za pośrednictwem łącznika natywnego platformy Spark linku semantycznego
Link semantyczny łącznik natywny platformy Spark umożliwia użytkownikom platformy Spark dostęp do tabel i miar usługi Power BI. Łącznik jest niezależny od języka i obsługuje oprogramowanie PySpark, Spark SQL, R i Scala.
Aby użyć łącznika natywnego platformy Spark, reprezentujesz modele semantyczne jako przestrzenie nazw platformy Spark i przezroczystie uwidaczniasz tabele usługi Power BI jako tabele platformy Spark.
Następujące polecenie konfiguruje platformę Spark do używania natywnego łącznika platformy Power BI Spark dla usługi Spark SQL:
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")
Następujące polecenie wyświetla listę wszystkich tabel w modelu semantycznym o nazwie Sales Dataset
:
%%sql
SHOW TABLES FROM pbi.`Sales Dataset`
Następujące polecenie wyświetla dane z Customer
tabeli w modelu Sales Dataset
semantycznym :
%%sql
SELECT * FROM pbi.`Sales Dataset`.Customer
Miary usługi Power BI są dostępne za pośrednictwem tabeli wirtualnej _Metrics
, aby połączyć relacyjny język Spark SQL z wielowymiarową usługą Power BI. W poniższym przykładzie Total Revenue
i Revenue Budget
są miarami zdefiniowanymi w Sales Dataset
modelu semantycznym, a pozostałe kolumny są wymiarami. Funkcje agregacji, takie jak AVG
, są ignorowane dla miar i są obecne tylko w celu zapewnienia spójności z językiem SQL.
Łącznik obsługuje predykat wypychania obliczeń, takich jak Customer[State] in ('CA', 'WA')
z wyrażeń platformy Spark do aparatu usługi Power BI, aby umożliwić korzystanie z aparatu zoptymalizowanego pod kątem usługi 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]`
Rozszerzanie danych za pomocą miar usługi Power BI
Operacja add_measure
jest zaawansowaną funkcją linku semantycznego, która umożliwia rozszerzanie danych miarami z modeli semantycznych. Ta operacja jest dostępna tylko w bibliotece języka Python SemPy i nie jest obsługiwana w łączniku natywnym platformy Spark. Aby uzyskać więcej informacji na add_measure
temat metody, zobacz add_measure w FabricDataFrame
dokumentacji klasy.
Aby użyć biblioteki SemPy języka Python, zainstaluj ją w jądrze notesu, uruchamiając następujący kod w komórce notesu:
# %pip and import only needs to be done once per notebook
%pip install semantic-link
from sempy.fabric import FabricDataFrame
W poniższym przykładzie kodu przyjęto założenie, że masz istniejącą ramkę FabricDataFrame z danymi, które mają zostać rozszerzone o miary z modelu semantycznego.
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")
Metoda add_measure
wykonuje następujące czynności:
- Rozpoznaje nazwy kolumn w elemektorze FabricDataFrame na wymiary usługi Power BI. Operacja ignoruje wszystkie nazwy kolumn, których nie można rozpoznać w danym modelu semantycznym. Aby uzyskać więcej informacji, zobacz obsługiwaną składnię języka DAX.
- Definiuje
group by
kolumny przy użyciu rozpoznanych nazw kolumn. - Oblicza co najmniej jedną miarę na
group by
poziomie. - Filtruje wynik według istniejących wierszy w elemercie FabricDataFrame.