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.
A kezdőlap bal oldalán található élménykapcsolóval válthat a Synapse Adattudomány felületre.
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.
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
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
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
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ével
list_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
Vizualizálja a
relationships
DataFrame-et gráfként a SemPy függvényévelplot_relationship_metadata
:plot_relationship_metadata(relationships)
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.
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)
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]
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.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.
A hiányos kapcsolatok vizualizációja a következő használatával
plot_relationship_metadata
:plot_relationship_metadata(autodetected)
Töltse be az összes táblát a szemantikai modellből a SemPy és
read_table
alist_tables
függvények használatával:tables = {table: fabric.read_table(dataset, table) for table in fabric.list_tables(dataset)['Name']} tables.keys()
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 )
Újonnan felfedezett kapcsolatok megjelenítése:
plot_relationship_metadata(suggested_relationships_all)
A SemPy képes volt az összes kapcsolatot észlelni.
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
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()
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 alist_relationships
függvény kimenetét bemenetként a következőhözlist_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.
Kapcsolódó tartalom
Tekintse meg a szemantikai hivatkozás / SemPy egyéb oktatóanyagait:
- Oktatóanyag: Adatok tisztítása funkcionális függőségekkel
- Oktatóanyag: Funkcionális függőségek elemzése szemantikai mintamodellben
- Oktatóanyag: Power BI-mértékek kinyerása és kiszámítása Jupyter-jegyzetfüzetből
- Oktatóanyag: Kapcsolatok felderítése a Synthea-adatkészletben szemantikai hivatkozás használatával
- Oktatóanyag: Adatok ellenőrzése a SemPy és a Nagy elvárások (GX) használatával (előzetes verzió)