Power BI-tilkobling med semantisk kobling
Power BI-tilkobling er kjernen i semantisk kobling i Microsoft Fabric. Denne artikkelen beskriver hvordan semantisk kobling gir tilkobling til semantiske modeller for brukere av Python-pandaer og Apache Spark-økosystemer.
En semantisk modell representerer vanligvis en høy datastandard som er resultatet av oppstrøms databehandling og presisering. Forretningsanalytikere kan:
- Kode domenekunnskap og forretningslogikk i Power BI-mål.
- Opprett Power BI-rapporter ved hjelp av semantiske modeller.
- Bruk disse rapportene til å drive forretningsbeslutninger.
Når dataforskere som arbeider med de samme semantiske modellene prøver å duplisere forretningslogikk i ulike kodemiljøer eller språk, kan kritiske feil resultere. Semantisk kobling bygger bro mellom semantiske modeller og Synapse Data Science i Microsoft Fabric-opplevelsen for å gi forretningsanalytikere og dataforskere mulighet til å samarbeide sømløst og redusere datakonflikt.
Semantisk kobling tilbyr tilkobling til:
- Python pandas økosystemet via SemPy Python-biblioteket.
- Semantiske modeller gjennom spark-koblingen som støtter PySpark, Spark SQL, R og Scala.
Datatilkobling gjennom SemPy Python-bibliotek for pandas-brukere
SemPy Python-biblioteket er en del av semantisk koblingsfunksjon og serverer pandas-brukere. SemPy-funksjonalitet inkluderer datahenting fra tabeller, beregning av mål og kjøring av DAX-spørringer (Data Analysis Expressions ) og metadata.
For Spark 3.4 og nyere er semantisk kobling tilgjengelig i standard kjøretid når du bruker Fabric, og det er ikke nødvendig å installere den.
For Spark 3.3 eller under, eller hvis du vil oppdatere til den nyeste versjonen av semantisk kobling, kjører du følgende kommando:
%pip install -U semantic-link
SemPy utvider også pandas DataFrames med ekstra metadata overført fra Power BI-datakilden. Disse metadataene inkluderer:
- Power BI-datakategorier:
- Geografisk: Adresse, sted, poststed
- URL-adresse: NETTADRESSE, URL-adresse for bilde
- Strekkode
- Relasjoner mellom tabeller
- Hierarkier
Datatilkobling gjennom semantisk kobling Spark native-kobling
Den semantiske koblingen Spark native connector lar Spark-brukere få tilgang til Power BI-tabeller og -mål. Koblingen er språkagnostisk og støtter PySpark, Spark SQL, R og Scala.
Hvis du vil bruke spark-koblingen, representerer du semantiske modeller som Spark-navneområder og viser Power BI-tabeller gjennomsiktig som Spark-tabeller.
Følgende kommando konfigurerer Spark til å bruke den opprinnelige Power BI Spark-koblingen for 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")
Følgende kommando viser alle tabeller i en semantisk modell kalt Sales Dataset
:
%%sql
SHOW TABLES FROM pbi.`Sales Dataset`
Følgende kommando viser data fra Customer
tabellen i den semantiske modellen Sales Dataset
:
%%sql
SELECT * FROM pbi.`Sales Dataset`.Customer
Power BI-mål er tilgjengelige via den virtuelle _Metrics
tabellen for å bygge bro over relasjonelle Spark SQL med flerdimensjonal Power BI. I eksemplet nedenfor, Total Revenue
og Revenue Budget
er mål definert i den Sales Dataset
semantiske modellen, og de andre kolonnene er dimensjoner. Aggregasjonsfunksjoner som AVG
ignoreres for mål og finnes bare for å gi konsekvens med SQL.
Koblingen støtter predikat push down av beregninger som Customer[State] in ('CA', 'WA')
fra Spark-uttrykk til Power BI-motoren for å aktivere bruk av den Power BI-optimaliserte motoren.
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]`
Dataforstørrelse med Power BI-mål
Operasjonen add_measure
er en kraftig funksjon i semantisk kobling som lar deg utvide data med mål fra semantiske modeller. Denne operasjonen er bare tilgjengelig i SemPy Python-biblioteket og støttes ikke i spark-koblingen. Hvis du vil ha mer informasjon om add_measure
metoden, kan du se add_measure i FabricDataFrame
klassedokumentasjonen.
Hvis du vil bruke SemPy Python-biblioteket, installerer du det i notatblokkkjernen ved å kjøre følgende kode i en notatblokkcelle:
# %pip and import only needs to be done once per notebook
%pip install semantic-link
from sempy.fabric import FabricDataFrame
Følgende kodeeksempel forutsetter at du har en eksisterende FabricDataFrame med data som du vil utvide med mål fra en semantisk modell.
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")
Metoden add_measure
gjør følgende:
- Løser kolonnenavn i FabricDataFrame til Power BI-dimensjoner. Operasjonen ignorerer alle kolonnenavn som ikke kan løses i den angitte semantiske modellen. Hvis du vil ha mer informasjon, kan du se den støttede DAX-syntaksen.
- Definerer
group by
kolonner ved hjelp av de løste kolonnenavnene. - Beregner ett eller flere mål på
group by
nivået. - Filtrerer resultatet etter de eksisterende radene i FabricDataFrame.