Jaa


Opetusohjelma: Suhteiden etsiminen semanttisessa mallissa semanttisen linkin avulla

Tässä opetusohjelmassa kuvataan, miten voit käsitellä Jupyter-muistikirjassa olevaa Power BI:tä ja havaita taulukoiden välisiä suhteita SemPy-kirjaston avulla.

Tässä opetusohjelmassa opit:

  • Löydä suhteita semanttisesta mallista (Power BI -tietojoukko) käyttämällä semanttisen linkin Python-kirjastoa (SemPy).
  • Käytä SemPy-komponentteja, jotka tukevat Power BI -integrointia ja auttavat automatisoimaan tietojen laatuanalyysin. Näitä osia ovat seuraavat:
    • FabricDataFrame – pandas-kaltainen rakenne, joka on parannettu semanttisten lisätietojen avulla.
    • Funktiot semanttisten mallien hakemiseen Fabric-työtilasta muistikirjaan.
    • Funktiot, jotka automatisoivat hypoteesien arvioinnin toiminnallisista riippuvuuksista ja jotka tunnistavat semanttisten malliesi suhteiden rikkomuksia.

Edellytykset

  • Etsi ja valitse työtila valitsemalla vasemmasta siirtymisruudusta Työtilat . Tästä työtilasta tulee nykyinen työtilasi.

  • Lataa Asiakkaan tuottavuuden malli.pbix ja asiakkaan tuottavuuden malli (auto).pbix-semanttiset mallit kangasmallien GitHub-säilöstä ja lataa ne työtilaasi.

Seuraa mukana muistikirjassa

powerbi_relationships_tutorial.ipynb-muistikirja on tämän opetusohjelman mukana.

Jos haluat avata tämän opetusohjelman liitteenä olevan muistikirjan, tuo muistikirja työtilaasi noudattamalla ohjeita kohdassa Järjestelmän valmisteleminen datatieteen opetusohjelmia varten.

Jos haluat kopioida ja liittää koodin tältä sivulta, voit luoda uuden muistikirjan.

Muista liittää lakehouse muistikirjaan ennen kuin aloitat koodin suorittamisen.

Muistikirjan asettaminen

Tässä osiossa määrität muistikirjaympäristön, joka sisältää tarvittavat moduulit ja tiedot.

  1. Asenna SemPy PyPI: %pip stä muistikirjan sisäisen asennustoiminnon avulla:

    %pip install semantic-link
    
  2. Suorita semPy-moduulien tarpeellinen tuonti, jotka tarvitset myöhemmin:

    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. Tuo pandas, jotta voit pakottaa määritysvaihtoehdon, joka auttaa tulosteen muotoilussa:

    import pandas as pd
    pd.set_option('display.max_colwidth', None)
    

Tutustu semanttisiin malleihin

Tässä opetusohjelmassa käytetään vakiomuotoista semanttista mallia Asiakkaan tuottavuuden malli.pbix. Lisätietoja semanttisesta mallista on artikkelissa Asiakkaan tuottavuuden malli Power BI:lle.

  • Käytä SemPy-funktiota list_datasets nykyisen työtilasi semanttisten mallien tutkimiseen:

    fabric.list_datasets()
    

Tässä muistikirjassa käytetään kahta asiakkaan tuottavuuden mallin semanttisen mallin versiota:

  • Asiakkaan tuottavuuden malli: semanttinen malli sellaisena kuin se on peräisin Power BI -näytteistä, joissa on esimääritettyjä taulukkosuhteita
  • Asiakkaan tuottavuuden malli (automaattinen): samat tiedot, mutta yhteydet on rajoitettu niihin, jotka Power BI havaitsee automaattisesti.

Poimi semanttinen malliesimerkki esimääritetyllä semanttisella mallilla

  1. Lataa suhteet, jotka on määritetty valmiiksi ja tallennettu asiakkaan tuottavuuden mallin semanttiseen malliin SemPy-funktion list_relationships avulla. Tämä funktio luetteloi taulukkomuotoisesta objektimallista:

    dataset = "Customer Profitability Sample"
    relationships = fabric.list_relationships(dataset)
    relationships
    
  2. Visualisoi relationships DataFrame kaaviona SemPy-funktion plot_relationship_metadata avulla:

    plot_relationship_metadata(relationships)
    

    Näyttökuva, jossa näkyy kaavio semanttisen mallin taulukoiden välisistä suhteista.

Tämä kaavio näyttää tämän semanttisen mallin taulukoiden välisten taulukoiden välisten suhteiden "perustotuuden", sillä se kuvastaa sitä, miten aiheasiantuntija määritti ne Power BI:ssä.

Yhteyksien löytämisen täydentäminen

Jos aloitit suhteista, jotka Power BI tunnisti automaattisesti, sinulla olisi pienempi joukko.

  1. Visualisoi suhteet, jotka Power BI havainnoi automaattisesti semanttisessa mallissa:

    dataset = "Customer Profitability Sample (auto)"
    autodetected = fabric.list_relationships(dataset)
    plot_relationship_metadata(autodetected)
    

    Näyttökuva, jossa näkyvät Power BI:n automaattisesti havaitsemat suhteet semanttisessa mallissa.

    Power BI:n automaattinen kehitys menetti monta suhdetta. Lisäksi kaksi automaattisesti tunnistetuista suhteista on semanttisesti virheellisiä:

    • Executive[ID] ->Industry[ID]
    • BU[Executive_id] ->Industry[ID]
  2. Tulosta suhteet taulukkona:

    autodetected
    

    Virheelliset suhteet taulukkoon Industry näkyvät riveillä, joissa on indeksit 3 ja 4. Näiden tietojen avulla voit poistaa nämä rivit.

  3. Hylkää väärin tunnistetut yhteydet.

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

    Nyt sinulla on oikein, mutta epätäydelliset suhteet.

  4. Visualisoi nämä epätäydelliset suhteet käyttämällä :plot_relationship_metadata

    plot_relationship_metadata(autodetected)
    

    Näyttökuvassa näkyy virheellisten suhteiden visualisointi virheellisten poistamisen jälkeen.

  5. Lataa kaikki taulukot semanttisesta mallista Käyttämällä SemPy-taulukoita list_tables ja read_table funktioita:

    tables = {table: fabric.read_table(dataset, table) for table in fabric.list_tables(dataset)['Name']}
    
    tables.keys()
    
  6. Etsi taulukoiden välisiä suhteita käyttämällä find_relationshipsja tarkastele lokin tulostetta saadaksesi merkityksellisiä tietoja siitä, miten tämä funktio toimii:

    suggested_relationships_all = find_relationships(
        tables,
        name_similarity_threshold=0.7,
        coverage_threshold=0.7,
        verbose=2
    )
    
  7. Visualisoi äskettäin löydetyt suhteet:

    plot_relationship_metadata(suggested_relationships_all)
    

    Näyttökuvassa näkyy äskettäin löydettyjen suhteiden visualisointi.

    SemPy pystyi havaitsemaan kaikki suhteet.

  8. Parametrin exclude avulla voit rajata haun lisäsuhteisiin, joita ei tunnistettu aiemmin:

    additional_relationships = find_relationships(
        tables,
        exclude=autodetected,
        name_similarity_threshold=0.7,
        coverage_threshold=0.7
    )
    
    additional_relationships
    

Suhteiden vahvistaminen

  1. Lataa ensin tiedot asiakkaan tuottavuuden mallin semanttisesta mallista:

    dataset = "Customer Profitability Sample"
    tables = {table: fabric.read_table(dataset, table) for table in fabric.list_tables(dataset)['Name']}
    
    tables.keys()
    
  2. Voit tarkistaa perusavain- ja viiteavainarvojen päällekkäisyyden -funktion list_relationship_violations avulla. Anna funktion list_relationships tulos syötteenä kohteeseen list_relationship_violations:

    list_relationship_violations(tables, fabric.list_relationships(dataset))
    

    Suhderikkomukset antavat joitakin kiinnostavia merkityksellisiä tietoja. Esimerkiksi yksi seitsemästä -arvosta ei ole kohteessa Fact[Product Key] Product[Product Key], ja puuttuva avain on 50.

Valmisteleva tietoanalyysi on jännittävä prosessi, ja niin on myös tietojen siistiminen. Tiedot piilottelevat aina jotakin sen mukaan, miten niitä tarkastellaan, mitä haluat kysyä ja niin edelleen. Semanttinen linkki tarjoaa uusia työkaluja, joiden avulla voit saavuttaa enemmän tiedoillasi.

Katso muut opetusohjelmat semanttisesta linkistä /SemPy:stä: