Zdieľať cez


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.

    Snímka obrazovky ponuky prepínača prostredí zobrazujúca, kde vybrať položku Dátová veda.

  • 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.

Nastavenie poznámkového bloku

V tejto časti nastavíte poznámkové prostredie s potrebnými modulmi a údajmi.

  1. 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
    
  2. 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
    
  3. 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

  1. 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
    
  2. Vizualizácia relationships údajového rámca ako grafu pomocou funkcie plot_relationship_metadata SemPy:

    plot_relationship_metadata(relationships)
    

    Snímka obrazovky znázorňujúca vykresliť vzťahy medzi tabuľkami v sémantickom modeli.

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.

  1. 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)
    

    Snímka obrazovky zobrazujúca vzťahy, ktoré Služba Power BI automaticky rozoznala v sémantickom modeli.

    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]
  2. 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í.

  3. Zahodiť nesprávne identifikované vzťahy.

    autodetected.drop(index=[3,4], inplace=True)
    autodetected
    

    Teraz máte správne, ale neúplné vzťahy.

  4. Vizualizujte tieto neúplné vzťahy pomocou plot_relationship_metadata:

    plot_relationship_metadata(autodetected)
    

    Snímka obrazovky, ktorá zobrazuje vizualizáciu vzťahov po odstránení nesprávnych vzťahov.

  5. Načítajte všetky tabuľky zo sémantického modelu pomocou funkcií list_tables SemPy a read_table:

    tables = {table: fabric.read_table(dataset, table) for table in fabric.list_tables(dataset)['Name']}
    
    tables.keys()
    
  6. Vyhľadajte vzťahy medzi tabuľkami pomocou find_relationshipsa 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
    )
    
  7. Vizualizujte novoobjavené vzťahy:

    plot_relationship_metadata(suggested_relationships_all)
    

    Snímka obrazovky zobrazujúca vizualizáciu novoobjavených vzťahov.

    SemPy bol schopný rozpoznať všetky vzťahy.

  8. 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

  1. 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()
    
  2. S použitím funkcie list_relationship_violations skontrolujte prekrývanie hodnôt primárneho a cudzieho kľúča. Zadajte výstup funkcie list_relationships ako vstup pre list_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 v Product[Product Key] a tento chýbajúci kľúč je 50.

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.

Pozrite si ďalšie kurzy o sémantických prepojeniach/SemPy: