Megosztás a következőn keresztül:


Oktatóanyag: Kapcsolatok felderítése szemantikai modellben szemantikai hivatkozás használatával

Ez az oktatóanyag bemutatja, hogyan használhatja a Power BI-t egy Jupyter-jegyzetfüzetből, és hogyan észlelhet kapcsolatokat a táblák között a SemPy-kódtár segítségével.

Ebben az oktatóanyagban az alábbiakkal fog megismerkedni:

  • Kapcsolatok felderítése szemantikai modellben (Power BI-adatkészlet) a szemantikai hivatkozás Python-kódtárával (SemPy).
  • Használja a SemPy azon összetevőit, amelyek támogatják a Power BI-val való integrációt, és segítenek automatizálni az adatminőség-elemzést. Ezek az összetevők a következők:
    • FabricDataFrame – egy pandas-szerű struktúra, amely további szemantikai információkkal bővül.
    • Függvények szemantikai modellek fabric-munkaterületről a jegyzetfüzetbe való lekéréséhez.
    • Olyan függvények, amelyek automatizálják a funkcionális függőségekkel kapcsolatos hipotézisek kiértékelését, és amelyek azonosítják a szemantikai modellekben a kapcsolatok megsértését.

Előfeltételek

  • Microsoft Fabric-előfizetés lekérése. Vagy regisztráljon egy ingyenes Microsoft Fabric-próbaverzióra.

  • Jelentkezzen be a Microsoft Fabricbe.

  • A kezdőlap bal oldalán található élménykapcsolóval válthat a Synapse Adattudomány felületre.

    Képernyőkép a felületváltó menüjéről, amelyen látható, hogy hol válassza ki a Adattudomány.

  • A munkaterület megkereséséhez és kijelöléséhez válassza a bal oldali navigációs panel munkaterületeit. Ez a munkaterület lesz az aktuális munkaterület.

  • Töltse le a Customer Profitability Sample.pbix és az Customer Profitability Sample (auto).pbix szemantikai modelleket a hálóminták GitHub-adattárából , és töltse fel őket a munkaterületre.

Követés a jegyzetfüzetben

A powerbi_relationships_tutorial.ipynb jegyzetfüzet kíséri ezt az oktatóanyagot.

Az oktatóanyaghoz mellékelt jegyzetfüzet megnyitásához kövesse a Rendszer előkészítése adatelemzési oktatóanyagokhoz című témakör utasításait, és importálja a jegyzetfüzetet a munkaterületre.

Ha inkább erről a lapról másolja és illessze be a kódot, létrehozhat egy új jegyzetfüzetet.

A kód futtatása előtt mindenképpen csatoljon egy lakehouse-t a jegyzetfüzethez .

A jegyzetfüzet beállítása

Ebben a szakaszban egy jegyzetfüzet-környezetet állít be a szükséges modulokkal és adatokkal.

  1. Telepítés SemPy a PyPI-ból a %pip jegyzetfüzeten belüli helyszíni telepítési funkcióval:

    %pip install semantic-link
    
  2. Végezze el a Szükséges SemPy-modulok importálását, amelyekre később szüksége lesz:

    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. Importálja a pandast egy olyan konfigurációs beállítás kényszerítése érdekében, amely segít a kimeneti formázásban:

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

Szemantikai modellek felfedezése

Ez az oktatóanyag egy standard szemantikai mintamodellt használ, a Customer Profitability Sample.pbix-t. A szemantikai modell leírásáért lásd a Power BI ügyfél-jövedelmezőségi mintáját.

  • A SemPy függvény használatával list_datasets megismerheti az aktuális munkaterület szemantikai modelljeit:

    fabric.list_datasets()
    

A jegyzetfüzet többi részében az Ügyfél-jövedelmezőségi minta szemantikai modelljének két verzióját használja:

  • Ügyfél-jövedelmezőségi minta: az előre definiált táblakapcsolatokkal rendelkező Power BI-minták szemantikai modellje
  • Ügyfél-jövedelmezőségi minta (automatikus):ugyanazok az adatok, de a kapcsolatok csak azokra korlátozódnak, amelyeket a Power BI automatikusan észlelne.

Minta szemantikai modell kinyerése az előre definiált szemantikai modellel

  1. Az ügyfél-jövedelmezőségi minta szemantikai modelljében előre definiált és tárolt kapcsolatok betöltése a SemPy függvényévellist_relationships. Ez a függvény a táblázatos objektummodellből listázza a következőt:

    dataset = "Customer Profitability Sample"
    relationships = fabric.list_relationships(dataset)
    relationships
    
  2. Vizualizálja a relationships DataFrame-et gráfként a SemPy függvényével plot_relationship_metadata :

    plot_relationship_metadata(relationships)
    

    Képernyőkép a szemantikai modell táblái közötti kapcsolatokról.

Ez a grafikon az ebben a szemantikai modellben szereplő táblák közötti kapcsolatok "alapigazságát" mutatja be, mivel tükrözi, hogyan definiálta őket a Power BI-ban egy témaszakértő.

Kapcsolatok felderítésének kiegészítése

Ha a Power BI által automatikusan észlelt kapcsolatokkal kezdi, akkor kisebb készlettel rendelkezik.

  1. A Power BI által a szemantikai modellben automatikusan észlelt kapcsolatok megjelenítése:

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

    Képernyőkép azokról a kapcsolatokról, amelyeket a Power BI automatikusan észlelt a szemantikai modellben.

    A Power BI automatikus észlelése számos kapcsolatot kihagyott. Ezenkívül az automatikusan észlelt kapcsolatok közül kettő szemantikailag helytelen:

    • Executive[ID] ->Industry[ID]
    • BU[Executive_id] ->Industry[ID]
  2. A kapcsolatok nyomtatása táblázatként:

    autodetected
    

    A táblázat helytelen kapcsolatai a Industry 3. és a 4. indexet tartalmazó sorokban jelennek meg. Ezekkel az információkkal eltávolíthatja ezeket a sorokat.

  3. A helytelenül azonosított kapcsolatok elvetése.

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

    Most már helyes, de hiányos kapcsolatokkal rendelkezik.

  4. A hiányos kapcsolatok vizualizációja a következő használatával plot_relationship_metadata:

    plot_relationship_metadata(autodetected)
    

    A helytelen kapcsolatok eltávolítása után a kapcsolatok vizualizációját bemutató képernyőkép.

  5. Töltse be az összes táblát a szemantikai modellből a SemPy és read_table a list_tables függvények használatával:

    tables = {table: fabric.read_table(dataset, table) for table in fabric.list_tables(dataset)['Name']}
    
    tables.keys()
    
  6. Keresse meg a táblák közötti kapcsolatokat, és tekintse find_relationshipsát a naplókimenetet, hogy betekintést nyerjen a függvény működésébe:

    suggested_relationships_all = find_relationships(
        tables,
        name_similarity_threshold=0.7,
        coverage_threshold=0.7,
        verbose=2
    )
    
  7. Újonnan felfedezett kapcsolatok megjelenítése:

    plot_relationship_metadata(suggested_relationships_all)
    

    Az újonnan felfedezett kapcsolatok vizualizációját bemutató képernyőkép.

    A SemPy képes volt az összes kapcsolatot észlelni.

  8. A paraméterrel exclude a keresést olyan további kapcsolatokra korlátozhatja, amelyeket korábban nem azonosítottak:

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

A kapcsolatok ellenőrzése

  1. Először töltse be az adatokat az ügyfél-jövedelmezőségi minta szemantikai modelljéből:

    dataset = "Customer Profitability Sample"
    tables = {table: fabric.read_table(dataset, table) for table in fabric.list_tables(dataset)['Name']}
    
    tables.keys()
    
  2. Ellenőrizze az elsődleges és idegen kulcsértékek átfedését a list_relationship_violations függvény használatával. Adja meg a list_relationships függvény kimenetét bemenetként a következőhöz list_relationship_violations:

    list_relationship_violations(tables, fabric.list_relationships(dataset))
    

    A kapcsolat megsértései érdekes megállapításokat nyújtanak. Például a hét Fact[Product Key] érték közül egy nincs benneProduct[Product Key], és ez a hiányzó kulcs.50

A feltáró adatelemzés izgalmas folyamat, és az adattisztítás is. Mindig van valami, amit az adatok rejtenek, attól függően, hogy hogyan tekinti meg, mit szeretne kérdezni, és így tovább. A szemantikai hivatkozás új eszközöket biztosít, amelyekkel többet érhet el az adataival.

Tekintse meg a szemantikai hivatkozás / SemPy egyéb oktatóanyagait: