Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
W tym samouczku pokazano, jak używać notesu Jupyter do interakcji z usługą Power BI i wykrywania relacji między tabelami z biblioteką SemPy.
Z tego samouczka dowiesz się, jak wykonywać następujące działania:
- Odnajdywanie relacji w modelu semantycznym (zestawie danych usługi Power BI) przy użyciu biblioteki języka Python linku semantycznego (SemPy).
- Użyj składników SemPy, które integrują się z usługą Power BI i automatyzują analizę jakości danych. Te składniki obejmują:
-
FabricDataFrame- struktura podobna do biblioteki pandas rozszerzona o informacje semantyczne - Funkcje ściągające modele semantyczne z obszaru roboczego usługi Fabric do notesu
- Funkcje testujące zależności funkcjonalne i identyfikujące naruszenia relacji w modelach semantycznych
-
Warunki wstępne
Pobierz subskrypcję usługi Microsoft Fabric . Możesz też utworzyć bezpłatne konto wersji próbnej usługi Microsoft Fabric.
Zaloguj się do usługi Microsoft Fabric.
Przełącz się na Fabric, używając przełącznika nawigacji w lewej dolnej części strony głównej.
Przejdź do obszaru Robocze w okienku nawigacji, a następnie wybierz obszar roboczy, aby ustawić go jako bieżący obszar roboczy.
Pobierz przykład Customer Profitability Sample.pbix i Customer Profitability Sample (auto).pbix semantyczne modele z repozytorium GitHub fabric-samples, a następnie przekaż je do obszaru roboczego.
Postępuj zgodnie z instrukcjami w notesie
Użyj notesu powerbi_relationships_tutorial.ipynb , aby postępować zgodnie z instrukcjami.
Aby otworzyć towarzyszący temu samouczkowi notatnik, postępuj zgodnie z instrukcjami w Prepare your system for data science tutorials, aby zaimportować notatnik do swojego obszaru roboczego.
Jeśli wolisz skopiować i wkleić kod z tej strony, możesz utworzyć nowy notes.
Przed rozpoczęciem uruchamiania kodu pamiętaj, aby dołączyć usługę Lakehouse do notesu .
Konfigurowanie notesu
Skonfiguruj środowisko notesu przy użyciu potrzebnych modułów i danych.
semantic-linkZainstaluj pakiet z PyPI przy użyciu wbudowanego%pippolecenia w notesie.%pip install semantic-linkZaimportuj
sempymoduły, których będziesz używać później.import sempy.fabric as fabric from sempy.relationships import plot_relationship_metadata from sempy.relationships import find_relationships from sempy.fabric import list_relationship_violationsZaimportuj bibliotekę
pandasi ustaw opcję wyświetlania dla formatowania danych wyjściowych.import pandas as pd pd.set_option('display.max_colwidth', None)
## Explore semantic models
This tutorial uses the Customer Profitability Sample semantic model [_Customer Profitability Sample.pbix_](https://github.com/microsoft/fabric-samples/blob/main/docs-samples/data-science/datasets/Customer%20Profitability%20Sample.pbix). Learn about the semantic model in [Customer Profitability sample for Power BI](/power-bi/create-reports/sample-customer-profitability).
- Use SemPy's `list_datasets` function to explore semantic models in your current workspace:
```python
fabric.list_datasets()
W pozostałej części tego notesu użyj dwóch wersji semantycznego modelu semantycznego Customer Profitability Sample:
- Przykład Customer Profitability: model semantyczny podany w przykładach usługi Power BI ze wstępnie zdefiniowanymi relacjami tabeli
- Przykład Customer Profitability (auto): te same dane, ale relacje są ograniczone do tych, które są automatycznie wykrywane przez usługę Power BI
Wyodrębnianie wstępnie zdefiniowanych relacji z przykładowego modelu semantycznego
Załaduj wstępnie zdefiniowane relacje w modelu semantycznym Customer Profitability Sample przy użyciu funkcji SemPy
list_relationships. Funkcja wyświetla listę relacji z tabelarycznego modelu obiektów (TOM).dataset = "Customer Profitability Sample" relationships = fabric.list_relationships(dataset) relationshipsWizualizowanie
relationshipsramki danych jako grafu przy użyciu funkcji SemPyplot_relationship_metadata.plot_relationship_metadata(relationships)Na tym wykresie przedstawiono relacje między tabelami w tym modelu semantycznym zgodnie z definicją w usłudze Power BI przez eksperta w tej dziedzinie.
Odnajdywanie dodatkowych relacji
Jeśli zaczniesz od relacji, które są automatycznie wykrywane przez usługę Power BI, masz mniejszy zestaw.
Wizualizuj relacje automatycznie wykrywane przez usługę Power BI w modelu semantycznym:
dataset = "Customer Profitability Sample (auto)" autodetected = fabric.list_relationships(dataset) plot_relationship_metadata(autodetected)Autodetection usługi Power BI pomija wiele relacji. Ponadto dwie relacje automatycznie wykrywane są semantycznie niepoprawne:
-
Executive[ID]—>Industry[ID] -
BU[Executive_id]—>Industry[ID]
-
Wydrukuj relacje jako tabelę:
autodetectedWiersze 3 i 4 pokazują nieprawidłowe relacje z tabelą
Industry. Usuń te wiersze.Odrzuć nieprawidłowo zidentyfikowane relacje.
# Remove rows 3 and 4 which point incorrectly to Industry[ID] autodetected = autodetected[~autodetected.index.isin([3, 4])]Teraz masz poprawne, ale niekompletne relacje. Wizualizowanie tych niekompletnych relacji przy użyciu polecenia
plot_relationship_metadata:plot_relationship_metadata(autodetected)Załaduj wszystkie tabele z modelu semantycznego przy użyciu funkcji I
list_tablesbibliotekiread_tableSemPy, a następnie znajdź relacje między tabelami przy użyciu poleceniafind_relationships. Przejrzyj dane wyjściowe dziennika, aby uzyskać szczegółowe informacje na temat działania tej funkcji:suggested_relationships_all = find_relationships( tables, name_similarity_threshold=0.7, coverage_threshold=0.7, verbose=2 )Wizualizowanie nowo odnalezionych relacji:
plot_relationship_metadata(suggested_relationships_all)Usługa SemPy wykrywa wszystkie relacje.
Użyj parametru
exclude, aby ograniczyć wyszukiwanie do dodatkowych relacji, które nie zostały wcześniej zidentyfikowane:additional_relationships = find_relationships( tables, exclude=autodetected, name_similarity_threshold=0.7, coverage_threshold=0.7 ) additional_relationships
Weryfikowanie relacji
Najpierw załaduj dane z modelu semantycznego przykładu Customer Profitability .
dataset = "Customer Profitability Sample" tables = {table: fabric.read_table(dataset, table) for table in fabric.list_tables(dataset)['Name']} tables.keys()Sprawdź, czy klucz podstawowy i obcy nakładają się na
list_relationship_violationsfunkcję . Przekaż dane wyjściowelist_relationshipsfunkcji dolist_relationship_violations.list_relationship_violations(tables, fabric.list_relationships(dataset))Wyniki ujawniają przydatne szczegółowe informacje. Na przykład jedna z siedmiu wartości w
Fact[Product Key]pliku nie jest obecna w elemecieProduct[Product Key], a brak klucza to50.Eksploracyjna analiza danych i czyszczenie danych są iteracyjne. To, czego się uczysz, zależy od pytań i sposobu eksplorowania danych. Link semantyczny dodaje narzędzia, które ułatwiają wykonywanie większej ilości danych.
Powiązana zawartość
Zapoznaj się z innymi samouczkami dotyczącymi linków semantycznych i biblioteki SemPy:
- samouczek : czyszczenie danych z zależnościami funkcjonalnymi
- Samouczek: analizowanie zależności funkcjonalnych w przykładowym modelu semantycznym
- Samouczek : wyodrębnianie i obliczanie miar Power BI z notebooka Jupyter
- Samouczek: odnajdywanie relacji w zestawie danych Synthea przy użyciu linku semantycznego
- Samouczek: weryfikowanie danych przy użyciu bibliotekI SemPy i wielkich oczekiwań (GX)