Kurz: Zisťovanie vzťahov v sémantickom modeli pomocou sémantického prepojenia
V tomto kurze je znázornené, ako pracovať so službou Power BI z poznámkového bloku Jupyter a ako rozpoznať vzťahy medzi tabuľkami pomocou knižnice SemPy.
V tomto kurze sa naučíte:
- Zisťovanie vzťahov v sémantickom modeli (množina údajov služby Power BI) pomocou sémantickej knižnice jazyka Python (SemPy).
- Použite súčasti semPy, ktoré podporujú integráciu so službou Power BI a pomáhajú automatizovať analýzu kvality údajov. Medzi tieto súčasti patria:
- FabricDataFrame – štruktúra pripomínaná pandas, vylepšená ďalšími sémantickými informáciami.
- Funkcie na vyťahovanie sémantických modelov z pracovného priestoru služby Fabric do poznámkového bloku.
- Funkcie, ktoré automatizujú vyhodnotenie hypotéz o funkčných závislostiach a ktoré identifikujú porušenia vzťahov v sémantických modeloch.
Predpoklady
Získajte predplatné služby Microsoft Fabric . Alebo si zaregistrujte bezplatnú skúšobnú služby Microsoft Fabric.
Prihláste sa do služby Microsoft Fabric.
Pomocou prepínača skúseností v ľavej dolnej časti domovskej stránky sa prepnete na službu Fabric.
Na ľavej navigačnej table vyberte položku Pracovné priestory a vyhľadajte a vyberte pracovný priestor. Tento pracovný priestor sa stane vaším aktuálnym pracovným priestorom.
Stiahnite si Ukážka ziskovosti zákazníkov.pbix a ukážka ziskovosti zákazníkov (auto).pbix sémantické modely z odkladacieho priestoru vzoriek látok a nahrajte ich do pracovného priestoru.
Sledovanie v notebooku
Tento kurz sprevádza poznámkový blok powerbi_relationships_tutorial.ipynb.
Ak chcete otvoriť sprievodný poznámkový blok pre tento kurz, postupujte podľa pokynov v téme Príprava systému na kurzy dátových vied na import notebooku do pracovného priestoru.
Ak by ste radšej skopírovali a prilepili kód z tejto stránky, môžete vytvoriť nový poznámkový blok.
Uistite sa, že pripojiť lakehouse k notebooku, ako začnete bežať kód.
Nastavenie poznámkového bloku
V tejto časti nastavíte poznámkové prostredie s potrebnými modulmi a údajmi.
Nainštalujte
SemPy
z rozhrania PyPI pomocou možnosti%pip
vnorenej inštalácie v rámci poznámkového bloku:%pip install semantic-link
Vykonajte potrebné importy modulov SemPy, ktoré budete potrebovať neskôr:
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
Importujte pandas na vynucovanie možnosti konfigurácie, ktorá pomáha s formátovaním výstupu:
import pandas as pd pd.set_option('display.max_colwidth', None)
Preskúmať sémantické modely
V tomto kurze sa používa štandardný sémantický model ukážky Ukážka ziskovosti zákazníkov.pbix. Popis sémantického modelu nájdete v téme Ukážka ziskovosti zákazníkov prePower BI.
Pomocou funkcie
list_datasets
SemPy môžete preskúmať sémantické modely v aktuálnom pracovnom priestore:fabric.list_datasets()
Vo zvyšku tohto poznámkového bloku používate dve verzie sémantického modelu Ukážka ziskovosti zákazníkov:
- Ukážka ziskovosti zákazníkov: sémantický model vo forme ukážok služby Power BI s preddefinovanými vzťahmi tabuliek
- Ukážka ziskovosti zákazníkov (auto): rovnaké údaje, ale vzťahy sú obmedzené len na tie, ktoré by služba Power BI automaticky zisťovala.
Extrahovanie vzorového sémantického modelu pomocou jeho preddefinovaného sémantického modelu
Vzťahy zaťaženia, ktoré sú preddefinované a uložené v Ukážka ziskovosti zákazníkov sémantický model pomocou funkcie
list_relationships
spoločnosti SemPy. Táto funkcia zobrazí zoznam z tabuľkového objektového modelu:dataset = "Customer Profitability Sample" relationships = fabric.list_relationships(dataset) relationships
Vizualizácia
relationships
údajového rámca ako grafu pomocou funkcieplot_relationship_metadata
SemPy:plot_relationship_metadata(relationships)
Tento graf zobrazuje "základné pravdy" pre vzťahy medzi tabuľkami v tomto sémantickom modeli, pretože odráža, ako boli v službe Power BI definované odborníkom na danú problematiku.
Dopĺňať vzťahy zisťovania
Ak by ste začali so vzťahmi, ktoré Služba Power BI automaticky rozoznala, mala by sa menšia množina.
Vizualizujte vzťahy, ktoré Služba Power BI automaticky zisťovala v sémantickom modeli:
dataset = "Customer Profitability Sample (auto)" autodetected = fabric.list_relationships(dataset) plot_relationship_metadata(autodetected)
Automatické zisťovanie služby Power BI vynechalo mnoho vzťahov. Okrem toho sú dva automaticky zisťované vzťahy sémanticky nesprávne:
-
Executive[ID]
–>Industry[ID]
-
BU[Executive_id]
–>Industry[ID]
-
Vytlačte vzťahy ako tabuľku:
autodetected
Nesprávne vzťahy s tabuľkou
Industry
sa zobrazujú v riadkoch s indexom 3 a 4. Tieto riadky môžete odstrániť pomocou týchto informácií.Zahodiť nesprávne identifikované vzťahy.
autodetected.drop(index=[3,4], inplace=True) autodetected
Teraz máte správne, ale neúplné vzťahy.
Vizualizujte tieto neúplné vzťahy pomocou
plot_relationship_metadata
:plot_relationship_metadata(autodetected)
Načítajte všetky tabuľky zo sémantického modelu pomocou funkcií
list_tables
SemPy aread_table
:tables = {table: fabric.read_table(dataset, table) for table in fabric.list_tables(dataset)['Name']} tables.keys()
Vyhľadajte vzťahy medzi tabuľkami pomocou
find_relationships
a pozrite si výstup denníka, aby ste získali prehľad o tom, ako táto funkcia funguje:suggested_relationships_all = find_relationships( tables, name_similarity_threshold=0.7, coverage_threshold=0.7, verbose=2 )
Vizualizujte novoobjavené vzťahy:
plot_relationship_metadata(suggested_relationships_all)
SemPy bol schopný rozpoznať všetky vzťahy.
Pomocou parametra
exclude
môžete obmedziť vyhľadávanie na ďalšie vzťahy, ktoré neboli identifikované predtým:additional_relationships = find_relationships( tables, exclude=autodetected, name_similarity_threshold=0.7, coverage_threshold=0.7 ) additional_relationships
Overenie vzťahov
Najskôr načítajte údaje zo Ukážka ziskovosti zákazníkov sémantický model:
dataset = "Customer Profitability Sample" tables = {table: fabric.read_table(dataset, table) for table in fabric.list_tables(dataset)['Name']} tables.keys()
S použitím funkcie
list_relationship_violations
skontrolujte prekrývanie hodnôt primárneho a cudzieho kľúča. Zadajte výstup funkcielist_relationships
ako vstup prelist_relationship_violations
:list_relationship_violations(tables, fabric.list_relationships(dataset))
Porušenia vzťahov poskytujú niekoľko zaujímavých prehľadov. V
Fact[Product Key]
nie je napríklad prítomná jedna zo siedmich hodnôt vProduct[Product Key]
a tento chýbajúci kľúč je50
.
Prieskumná analýza údajov je vzrušujúci proces, a tak iste čistenie údajov. Údaje sa vždy skrývajú v závislosti od toho, ako sa na ne pozriete, čo sa chcete opýtať a tak ďalej. Sémantické prepojenie poskytuje nové nástroje, ktoré môžete použiť na dosiahnutie viac obsahu s údajmi.
Súvisiaci obsah
Pozrite si ďalšie kurzy o sémantických prepojeniach/SemPy:
- Kurz: Vyčistenie údajov pomocou funkčných závislostí
- Kurz: Analýza funkčných závislostí vo vzorovom sémantickom modeli
- Kurz: Extrahovanie a výpočet mierok v službe Power BI z notebooku Jupyter
- Kurz: Zisťovanie vzťahov v množine údajov Synthea pomocou sémantického prepojenia
- kurz : Overenie údajov pomocou semPy a veľkých očakávaní (GX)