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 a következőket sajátíthatja el:

  • Kapcsolatok felderítése szemantikai modellben (Power BI-adatkészletben) 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 lekérésére a Fabric-munkaterületről a jegyzetfüzetbe.
    • 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

  • A bal oldali navigációs panelen válassza Munkaterületek lehetőséget a munkaterület megkereséséhez és kijelöléséhez. Ez a munkaterület lesz az aktuális munkaterület.

  • Töltse le az Customer Profitability Sample.pbix és Customer Profitability Sample (auto).pbix szemantikai modelleket a fabric-samples GitHub-adattárából, és töltse fel őket az ön munkaterületére.

Kövesd a jegyzetfüzetben

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

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ítse a SemPy a PyPI-ból a jegyzetfüzet %pip beépített telepítési funkciójának használatá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 szabványos szemantikai modellt használ Customer Profitability Sample.pbix. A szemantikai modell leírását a Power BIügyfél-jövedelmezőségi mintájában talál.

  • A SemPy list_datasets függvénye segítségével 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: a szemantikai modell, amely előre definiált táblakapcsolatokkal rendelkező Power BI-mintákból származik
  • ügyfél-jövedelmezőségi minta (automatikus): ugyanazok az adatok, de a kapcsolatok azokra korlátozódnak, amelyeket a Power BI automatikusan észlelne.

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

  1. Az előre definiált és a ügyfél-jövedelmezőségi minta szemantikai modellben tárolt kapcsolatok betöltése a SemPy list_relationships függvényével. 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 plot_relationship_metadata függvényével:

    plot_relationship_metadata(relationships)
    

    Képernyőkép a szemantikai modell táblái közötti kapcsolatok ábrázolásáró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ő.

Komplementer kapcsolatok felfedezé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 Industry táblával való helytelen kapcsolatok a 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 kapcsolataid vannak.

  4. A hiányos kapcsolatok vizualizációja a plot_relationship_metadatahasználatával:

    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 list_tables és read_table függvényeivel:

    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 a find_relationshipshasználatával, és tekintse á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 exclude paraméterrel a keresést a korábban nem azonosított további kapcsolatokra korlátozhatja:

    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 mintából szemantikai modellbő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énnyel. Adja meg a list_relationships függvény kimenetét bemenetként a 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 Fact[Product Key] hét értékéből egyik sem található meg Product[Product Key]-ban, és 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: