Power BI-forbindelse med semantisk link
Power BI-forbindelse er kernen i et semantisk link i Microsoft Fabric. I denne artikel beskrives de måder, som semantiske links giver forbindelse til semantiske modeller for brugere af Python pandas og Apache Spark-økosystemer.
En semantisk model repræsenterer normalt en høj datastandard, der er resultatet af upstream-databehandling og -afgrænsning. Forretningsanalytikere kan:
- Kod domænekendskab og forretningslogik i Power BI-målinger.
- Opret Power BI-rapporter ved hjælp af semantiske modeller.
- Brug disse rapporter til at styre forretningsbeslutninger.
Når datateknikere, der arbejder med de samme semantiske modeller, forsøger at duplikere forretningslogik i forskellige kodemiljøer eller sprog, kan kritiske fejl medføre. Semantisk link bygger bro mellem semantiske modeller og Synapse Data Science i Microsoft Fabric for at gøre det muligt for forretningsanalytikere og dataforskere at samarbejde problemfrit og reducere uoverensstemmelse mellem data.
Semantisk link giver mulighed for at oprette forbindelse til:
- Python pandas-økosystemet via SemPy Python-biblioteket.
- Semantiske modeller via den oprindelige Spark-connector , der understøtter PySpark, Spark SQL, R og Scala.
Dataforbindelse via SemPy Python-bibliotek til pandas-brugere
SemPy Python-biblioteket er en del af den semantiske linkfunktion og betjener pandas-brugere. SemPy-funktionalitet omfatter datahentning fra tabeller, beregning af målinger og udførelse af DAX-forespørgsler (Data Analysis Expressions) og metadata.
For Spark 3.4 og nyere er semantisk link tilgængeligt i standardkørslen, når du bruger Fabric, og det er ikke nødvendigt at installere det.
Kør følgende kommando for Spark 3.3 eller nedenfor eller for at opdatere til den nyeste version af semantisk link:
%pip install -U semantic-link
SemPy udvider også pandas DataFrames med tilføjede metadata, der er overført fra Power BI-datakilden. Disse metadata omfatter:
- Power BI-datakategorier:
- Geografisk: Adresse, sted, by
- URL-adresse: URL-adresse til websted, URL-adresse til billede
- Stregkode
- Relationer mellem tabeller
- Hierarkier
Dataforbindelse via den oprindelige Spark-connector til semantisk link
Med det oprindelige semantiske link spark-connector kan Spark-brugere få adgang til Power BI-tabeller og -målinger. Connectoren er sprogagnostisk og understøtter PySpark, Spark SQL, R og Scala.
Hvis du vil bruge den oprindelige Spark-connector, skal du repræsentere semantiske modeller som Spark-navneområder og på en gennemsigtig måde vise Power BI-tabeller som Spark-tabeller.
Følgende kommando konfigurerer Spark til at bruge den oprindelige Power BI Spark-connector til 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 model med navnet Sales Dataset
:
%%sql
SHOW TABLES FROM pbi.`Sales Dataset`
Følgende kommando viser data fra tabellen Customer
i den semantiske model Sales Dataset
:
%%sql
SELECT * FROM pbi.`Sales Dataset`.Customer
Power BI-målinger er tilgængelige via den virtuelle _Metrics
tabel for at bygge bro mellem relationelle Spark SQL og flerdimensionelle Power BI. I følgende eksempel er og Revenue Budget
målinger defineret Total Revenue
i den Sales Dataset
semantiske model, og de andre kolonner er dimensioner. Sammenlægningsfunktioner som AVG
ignoreres for målinger og findes kun for at sikre overensstemmelse med SQL.
Connectoren understøtter prædikat push-down af beregninger som Customer[State] in ('CA', 'WA')
fra Spark-udtryk til Power BI-programmet for at aktivere brugen af det optimerede Power BI-program.
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]`
Datafornyelse med Power BI-målinger
Handlingen add_measure
er en effektiv funktion i semantisk link, der giver dig mulighed for at øge data med målinger fra semantiske modeller. Denne handling er kun tilgængelig i SemPy Python-biblioteket og understøttes ikke i den oprindelige Spark-connector. Du kan få flere oplysninger om metoden i add_measure
add_measure i dokumentationen til FabricDataFrame
klassen.
Hvis du vil bruge SemPy Python-biblioteket, skal du installere det i din notesbogkerne ved at køre følgende kode i en notesbogcelle:
# %pip and import only needs to be done once per notebook
%pip install semantic-link
from sempy.fabric import FabricDataFrame
I følgende kodeeksempel antages det, at du har en eksisterende FabricDataFrame med data, som du vil forstærke med målinger fra en semantisk model.
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
udfører følgende trin:
- Fortolker kolonnenavne i FabricDataFrame til Power BI-dimensioner. Handlingen ignorerer alle kolonnenavne, der ikke kan fortolkes i den angivne semantiske model. Du kan få flere oplysninger i den understøttede DAX-syntaks.
- Definerer
group by
kolonner ved hjælp af de fortolkede kolonnenavne. - Beregner en eller flere målinger på
group by
niveauet. - Filtrerer resultatet efter de eksisterende rækker i FabricDataFrame.