Del via


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

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:

  1. 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.
  2. Definerer group by kolonner ved hjælp af de fortolkede kolonnenavne.
  3. Beregner en eller flere målinger på group by niveauet.
  4. Filtrerer resultatet efter de eksisterende rækker i FabricDataFrame.