Udostępnij za pośrednictwem


Łączność usługi Power BI z linkiem semantycznym

Łączność z usługą Power BI jest podstawą linku semantycznego w usłudze Microsoft Fabric. W tym artykule opisano sposoby, w jakie link semantyczny zapewnia łączność z semantycznymi modelami dla użytkowników ekosystemów bibliotek pandas języka Python i platformy Apache Spark.

Model semantyczny zwykle reprezentuje wysoki standard danych, który jest wynikiem nadrzędnego przetwarzania i uściślenia danych. Analitycy biznesowi mogą:

  • Kodowanie wiedzy o domenie i logiki biznesowej do miar usługi Power BI.
  • Tworzenie raportów usługi Power BI przy użyciu modeli semantycznych.
  • Te raporty umożliwiają podejmowanie decyzji biznesowych.

Gdy analitycy danych pracujący z tymi samymi semantycznymi modelami próbują zduplikować logikę biznesową w różnych środowiskach kodu lub językach, błędy krytyczne mogą spowodować. Powiązania semantyczne łączą luki między semantycznymi modelami a usługą Synapse Nauka o danych w usłudze Microsoft Fabric, aby zapewnić analitykom biznesowym i analitykom danych bezproblemową współpracę i zmniejszenie niezgodności danych.

Link semantyczny oferuje łączność z:

  • Ekosystem biblioteki Python pandas za pośrednictwem biblioteki języka Python SemPy.
  • Modele semantyczne za pośrednictwem natywnego łącznika platformy Spark, który obsługuje oprogramowanie PySpark, Spark SQL, R i Scala.

Łączność danych za pośrednictwem biblioteki języka Python SemPy dla użytkowników biblioteki pandas

Biblioteka SemPy języka Python jest częścią funkcji linku semantycznego i obsługuje użytkowników biblioteki pandas. Funkcje SemPy obejmują pobieranie danych z tabel, obliczanie miar i wykonywanie zapytań i metadanych języka Data Analysis Expressions (DAX).

  • W przypadku platformy Spark w wersji 3.4 lub nowszej link semantyczny jest dostępny w domyślnym środowisku uruchomieniowym podczas korzystania z sieci szkieletowej i nie ma potrzeby jej instalowania.

  • W przypadku platformy Spark 3.3 lub nowszej albo zaktualizowania do najnowszej wersji linku semantycznego uruchom następujące polecenie:

    %pip install -U semantic-link
    

Biblioteka SemPy rozszerza również ramki danych pandas z dodanymi metadanymi propagowanymi ze źródła danych usługi Power BI. Te metadane obejmują:

  • Kategorie danych usługi Power BI:
    • Geograficzne: Adres, miejsce, miasto
    • Adres URL: internetowy adres URL, adres URL obrazu
    • Kod kreskowy
  • Relacje między tabelami
  • Hierarchie

Link semantyczny łącznik natywny platformy Spark umożliwia użytkownikom platformy Spark dostęp do tabel i miar usługi Power BI. Łącznik jest niezależny od języka i obsługuje oprogramowanie PySpark, Spark SQL, R i Scala.

Aby użyć łącznika natywnego platformy Spark, reprezentujesz modele semantyczne jako przestrzenie nazw platformy Spark i przezroczystie uwidaczniasz tabele usługi Power BI jako tabele platformy Spark.

Następujące polecenie konfiguruje platformę Spark do używania natywnego łącznika platformy Power BI Spark dla usługi 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")

Następujące polecenie wyświetla listę wszystkich tabel w modelu semantycznym o nazwie Sales Dataset:

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

Następujące polecenie wyświetla dane z Customer tabeli w modelu Sales Datasetsemantycznym :

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

Miary usługi Power BI są dostępne za pośrednictwem tabeli wirtualnej _Metrics , aby połączyć relacyjny język Spark SQL z wielowymiarową usługą Power BI. W poniższym przykładzie Total Revenue i Revenue Budget są miarami zdefiniowanymi w Sales Dataset modelu semantycznym, a pozostałe kolumny są wymiarami. Funkcje agregacji, takie jak AVG , są ignorowane dla miar i są obecne tylko w celu zapewnienia spójności z językiem SQL.

Łącznik obsługuje predykat wypychania obliczeń, takich jak Customer[State] in ('CA', 'WA') z wyrażeń platformy Spark do aparatu usługi Power BI, aby umożliwić korzystanie z aparatu zoptymalizowanego pod kątem usługi Power BI.

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

Rozszerzanie danych za pomocą miar usługi Power BI

Operacja add_measure jest zaawansowaną funkcją linku semantycznego, która umożliwia rozszerzanie danych miarami z modeli semantycznych. Ta operacja jest dostępna tylko w bibliotece języka Python SemPy i nie jest obsługiwana w łączniku natywnym platformy Spark. Aby uzyskać więcej informacji na add_measure temat metody, zobacz add_measure w FabricDataFrame dokumentacji klasy.

Aby użyć biblioteki SemPy języka Python, zainstaluj ją w jądrze notesu, uruchamiając następujący kod w komórce notesu:

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

W poniższym przykładzie kodu przyjęto założenie, że masz istniejącą ramkę FabricDataFrame z danymi, które mają zostać rozszerzone o miary z modelu semantycznego.

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")

Metoda add_measure wykonuje następujące czynności:

  1. Rozpoznaje nazwy kolumn w elemektorze FabricDataFrame na wymiary usługi Power BI. Operacja ignoruje wszystkie nazwy kolumn, których nie można rozpoznać w danym modelu semantycznym. Aby uzyskać więcej informacji, zobacz obsługiwaną składnię języka DAX.
  2. Definiuje group by kolumny przy użyciu rozpoznanych nazw kolumn.
  3. Oblicza co najmniej jedną miarę na group by poziomie.
  4. Filtruje wynik według istniejących wierszy w elemercie FabricDataFrame.