Kurz: Zjišťování relací v sémantickém modelu pomocí sémantického odkazu
Tento kurz ukazuje, jak pracovat s Power BI z poznámkového bloku Jupyter a zjišťovat relace mezi tabulkami pomocí knihovny SemPy.
V tomto kurzu se naučíte:
- Objevte relace v sémantickém modelu (datová sada Power BI) pomocí sémantického odkazu knihovny Pythonu (SemPy).
- Používejte komponenty SemPy, které podporují integraci s Power BI a pomáhají automatizovat analýzu kvality dat. Mezi tyto komponenty patří:
- FabricDataFrame – struktura podobná knihovně pandas rozšířená o další sémantické informace.
- Funkce pro načítání sémantických modelů z pracovního prostoru Fabric do poznámkového bloku
- Funkce, které automatizují vyhodnocení hypotéz o funkčních závislostech a identifikují porušení vztahů v sémantických modelech.
Požadavky
Získejte předplatné Microsoft Fabric. Nebo si zaregistrujte bezplatnou zkušební verzi Microsoft Fabricu.
Přihlaste se k Microsoft Fabric.
Pomocí přepínače prostředí na levé straně domovské stránky přepněte na prostředí Synapse Datová Věda.
V levém navigačním podokně vyberte Pracovní prostory , abyste našli a vybrali pracovní prostor. Tento pracovní prostor se stane vaším aktuálním pracovním prostorem.
Stáhněte si sémantické modely Customer Profitability Sample.pbix a Customer Profitability Sample (auto).pbix z úložiště GitHub s ukázkami prostředků infrastruktury a nahrajte je do svého pracovního prostoru.
Sledování v poznámkovém bloku
Tento kurz doprovází poznámkový blok powerbi_relationships_tutorial.ipynb .
Pokud chcete otevřít doprovodný poznámkový blok pro tento kurz, postupujte podle pokynů v části Příprava systému na kurzy datových věd a importujte poznámkový blok do pracovního prostoru.
Pokud byste raději zkopírovali a vložili kód z této stránky, můžete vytvořit nový poznámkový blok.
Než začnete spouštět kód, nezapomeňte k poznámkovému bloku připojit lakehouse.
Nastavení poznámkového bloku
V této části nastavíte prostředí poznámkového bloku s potřebnými moduly a daty.
Nainstalujte
SemPy
z PyPI pomocí%pip
možnosti in-line instalace v poznámkovém bloku:%pip install semantic-link
Proveďte nezbytné importy modulů SemPy, které budete potřebovat později:
import sempy.fabric as fabric from sempy.relationships import plot_relationship_metadata from sempy.relationships import find_relationships from sempy.fabric import list_relationship_violations
Import knihovny pandas pro vynucování možnosti konfigurace, která pomáhá s formátováním výstupu:
import pandas as pd pd.set_option('display.max_colwidth', None)
Prozkoumání sémantických modelů
Tento kurz používá standardní ukázkový sémantický model Customer Profitability Sample.pbix. Popis sémantického modelu najdete v ukázce ziskovosti zákazníků pro Power BI.
Pomocí funkce SemPy
list_datasets
můžete prozkoumat sémantické modely v aktuálním pracovním prostoru:fabric.list_datasets()
Pro zbytek tohoto poznámkového bloku použijete dvě verze sémantického modelu Customer Profitability Sample:
- Ukázka ziskovosti zákazníků: Sémantický model pocházející z ukázek Power BI s předdefinovanými relacemi mezi tabulkami
- Ukázka ziskovosti zákazníků (auto): stejná data, ale relace jsou omezené na ty, které by Power BI automaticky rozdetekoval.
Extrahování ukázkového sémantického modelu s předdefinovaným sémantickým modelem
Relace zatížení, které jsou předdefinované a uložené v sémantickém modelu Customer Profitability Sample pomocí funkce SemPy
list_relationships
. Tato funkce obsahuje seznam z tabulkového objektového modelu:dataset = "Customer Profitability Sample" relationships = fabric.list_relationships(dataset) relationships
Vizualizujte
relationships
datový rámec jako graf pomocí funkce SemPyplot_relationship_metadata
:plot_relationship_metadata(relationships)
Tento graf ukazuje "základní pravdu" pro relace mezi tabulkami v tomto sémantickém modelu, protože odráží, jak byly definovány v Power BI odborníkem na danou problematiku.
Doplňte zjišťování relací.
Pokud jste začali s relacemi, které Power BI automaticky rozdetekovaly, měli byste menší sadu.
Vizualizujte relace, které Power BI automaticky rozdetekoval v sémantickém modelu:
dataset = "Customer Profitability Sample (auto)" autodetected = fabric.list_relationships(dataset) plot_relationship_metadata(autodetected)
Automatické rozpoznávání Power BI nezmeškalo mnoho relací. Kromě toho jsou dvě automaticky rozdetekované relace sémanticky nesprávné:
Executive[ID]
->Industry[ID]
BU[Executive_id]
->Industry[ID]
Vytiskněte relace jako tabulku:
autodetected
V řádcích s indexem 3 a 4 se zobrazí nesprávné relace s
Industry
tabulkou. Tyto informace slouží k odebrání těchto řádků.Zahoďte nesprávně identifikované relace.
autodetected.drop(index=[3,4], inplace=True) autodetected
Teď máte správné, ale neúplné relace.
Vizualizovat tyto neúplné relace pomocí
plot_relationship_metadata
:plot_relationship_metadata(autodetected)
Načtěte všechny tabulky ze sémantického modelu pomocí funkcí a
read_table
funkcí SemPylist_tables
:tables = {table: fabric.read_table(dataset, table) for table in fabric.list_tables(dataset)['Name']} tables.keys()
Najděte relace mezi tabulkami pomocí
find_relationships
a zkontrolujte výstup protokolu, abyste získali přehled o tom, jak tato funkce funguje:suggested_relationships_all = find_relationships( tables, name_similarity_threshold=0.7, coverage_threshold=0.7, verbose=2 )
Vizualizace nově zjištěných relací:
plot_relationship_metadata(suggested_relationships_all)
SemPy dokázal rozpoznat všechny relace.
Pomocí parametru
exclude
omezte vyhledávání na další relace, které nebyly dříve identifikovány:additional_relationships = find_relationships( tables, exclude=autodetected, name_similarity_threshold=0.7, coverage_threshold=0.7 ) additional_relationships
Ověření relací
Nejprve načtěte data z sémantického modelu Customer Profitability Sample :
dataset = "Customer Profitability Sample" tables = {table: fabric.read_table(dataset, table) for table in fabric.list_tables(dataset)['Name']} tables.keys()
Pomocí funkce zkontrolujte, jestli se hodnoty primárního a cizího
list_relationship_violations
klíče překrývají. Zadejte výstuplist_relationships
funkce jako vstup dolist_relationship_violations
:list_relationship_violations(tables, fabric.list_relationships(dataset))
Porušení vztahů poskytují zajímavé přehledy. Například jedna ze sedmi hodnot
Fact[Product Key]
není přítomnaProduct[Product Key]
a tento chybějící klíč je50
.
Průzkumná analýza dat je vzrušující proces, a proto je čištění dat. V závislosti na tom, jak se na ně díváte, co se chcete zeptat atd., je vždy něco, co se data skrývají. Sémantický odkaz poskytuje nové nástroje, které můžete použít k dosažení větších výsledků s vašimi daty.
Související obsah
Podívejte se na další kurzy pro sémantický odkaz / SemPy:
- Kurz: Vyčištění dat pomocí funkčních závislostí
- Kurz: Analýza funkčních závislostí v ukázkovém sémantickém modelu
- Kurz: Extrakce a výpočet měr Power BI z poznámkového bloku Jupyter
- Kurz: Zjišťování relací v datové sadě Synthea pomocí sémantického odkazu
- Kurz: Ověření dat pomocí semPy a velkých očekávání (GX) (Preview)