Dela via


Power BI-anslutning med semantisk länk

Power BI-anslutning är kärnan i semantisk länk i Microsoft Fabric. Den här artikeln beskriver hur semantisk länk ger anslutning till semantiska modeller för användare av Python Pandas- och Apache Spark-ekosystemen.

En semantisk modell representerar vanligtvis en hög datastandard som är resultatet av uppströms databearbetning och förfining. Affärsanalytiker kan:

  • Koda domänkunskap och affärslogik i Power BI-mått.
  • Skapa Power BI-rapporter med hjälp av semantiska modeller.
  • Använd dessa rapporter för att driva affärsbeslut.

När dataexperter som arbetar med samma semantiska modeller försöker duplicera affärslogik i olika kodmiljöer eller språk kan kritiska fel uppstå. Semantisk länk överbryggar klyftan mellan semantiska modeller och Synapse-Datavetenskap i Microsoft Fabric-upplevelsen för att ge affärsanalytiker och dataforskare ett sätt att samarbeta sömlöst och minska datamatchningsfel.

Semantisk länk erbjuder anslutning till:

  • Python Pandas-ekosystemet via SemPy Python-biblioteket.
  • Semantiska modeller via den inbyggda Spark-anslutningsappen som stöder PySpark, Spark SQL, R och Scala.

Dataanslutning via SemPy Python-bibliotek för Pandas-användare

SemPy Python-biblioteket är en del av funktionen semantisk länk och betjänar Pandas-användare. SemPy-funktioner omfattar datahämtning från tabeller, beräkning av mått och körning av DAX-frågor (Data Analysis Expressions) och metadata.

  • För Spark 3.4 och senare är semantisk länk tillgänglig i standardkörningen när du använder Infrastrukturresurser, och du behöver inte installera den.

  • Kör följande kommando för Spark 3.3 eller senare eller för att uppdatera till den senaste versionen av semantisk länk:

    %pip install -U semantic-link
    

SemPy utökar även Pandas DataFrames med tillagda metadata som sprids från Power BI-datakällan. Dessa metadata omfattar:

  • Power BI-datakategorier:
    • Geografisk plats: Adress, plats, ort
    • URL: Webb-URL, bild-URL
    • Streckkod
  • Relationer mellan tabeller
  • Hierarkier

Med den semantiska länken spark native connector kan Spark-användare komma åt Power BI-tabeller och -mått. Anslutningsappen är språkagnostisk och stöder PySpark, Spark SQL, R och Scala.

Om du vill använda den inbyggda Spark-anslutningsappen representerar du semantiska modeller som Spark-namnområden och exponerar öppet Power BI-tabeller som Spark-tabeller.

Följande kommando konfigurerar Spark för att använda den inbyggda Power BI Spark-anslutningsappen för 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öljande kommando visar alla tabeller i en semantisk modell med namnet Sales Dataset:

%%sql
SHOW TABLES FROM pbi.`Sales Dataset`

Följande kommando visar data från Customer tabellen i den semantiska modellen Sales Dataset:

%%sql
SELECT * FROM pbi.`Sales Dataset`.Customer

Power BI-mått är tillgängliga via den virtuella _Metrics tabellen för att överbrygga relations-Spark SQL med flerdimensionella Power BI. I följande exempel, Total Revenue och Revenue Budget är mått som definierats i den Sales Dataset semantiska modellen, och de andra kolumnerna är dimensioner. Sammansättningsfunktioner som AVG ignoreras för mått och finns bara för att ge konsekvens med SQL.

Anslutningsappen stöder predikat för nedtryckning av beräkningar som Customer[State] in ('CA', 'WA') från Spark-uttryck till Power BI-motorn för att aktivera användning av den Power BI-optimerade motorn.

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]`

Dataförstoring med Power BI-mått

Åtgärden add_measure är en kraftfull funktion i semantisk länk som gör att du kan utöka data med mått från semantiska modeller. Den här åtgärden är endast tillgänglig i SemPy Python-biblioteket och stöds inte i den inbyggda Spark-anslutningsappen. Mer information om metoden finns add_measure i add_measure i klassdokumentationenFabricDataFrame.

Om du vill använda SemPy Python-biblioteket installerar du det i notebook-kerneln genom att köra följande kod i en notebook-cell:

# %pip and import only needs to be done once per notebook
%pip install semantic-link
from sempy.fabric import FabricDataFrame

I följande kodexempel förutsätts att du har en befintlig FabricDataFrame med data som du vill utöka med mått från 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 utför följande steg:

  1. Löser kolumnnamn i Dimensionerna FabricDataFrame till Power BI. Åtgärden ignorerar alla kolumnnamn som inte kan matchas inom den angivna semantiska modellen. Mer information finns i DAX-syntaxen som stöds.
  2. Definierar group by kolumner med hjälp av de lösta kolumnnamnen.
  3. Beräknar ett eller flera mått på group by nivån.
  4. Filtrerar resultatet efter de befintliga raderna i FabricDataFrame.