Del via


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

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:

  1. 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.
  2. Definerer group by kolonner ved hjelp av de løste kolonnenavnene.
  3. Beregner ett eller flere mål på group by nivået.
  4. Filtrerer resultatet etter de eksisterende radene i FabricDataFrame.