Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
V tomto kurzu vycházíte z práce analytika Power BI, který je uložený jako sémantické modely (datové sady Power BI). Pomocí SemPy (Preview) v prostředí Pro datové vědy Synapse v Microsoft Fabric analyzujete funkční závislosti ve sloupcích datového rámce. Tato analýza vám pomůže odhalit drobné problémy s kvalitou dat, abyste získali přesnější přehledy.
V tomto kurzu se naučíte:
- Využijte znalosti domény k formulaci hypotéz o funkčních závislostech v sémantickém modelu.
- Seznamte se s komponentami knihovny Pythonu se sémantic Linkem (SemPy), které se integrují s Power BI a pomáhají automatizovat analýzu kvality dat. Mezi tyto komponenty patří:
- FabricDataFrame – struktura podobná knihovně pandas vylepšená o další sémantické informace
- Funkce, které načítá sémantické modely z pracovního prostoru Fabric do poznámkového bloku
- Funkce, které vyhodnocují hypotézy funkčních závislostí a identifikují porušení vztahů v sémantických modelech
Požadavky
Získejte předplatné Microsoft Fabric . Nebo si zaregistrujte bezplatnou zkušební verzi Microsoft Fabric.
Přihlaste se k Microsoft Fabric.
Pomocí přepínače prostředí v levém dolním rohu domovské stránky přepněte na Fabric.
V navigačním podokně vyberte Pracovní prostory , abyste našli a vybrali svůj pracovní prostor. Tento pracovní prostor se stane vaším aktuálním pracovním prostorem.
Stáhněte si soubor Customer Profitability Sample.pbix z úložiště GitHub s ukázkami prostředků infrastruktury.
V pracovním prostoru vyberte Importovat sestavu>nebo stránkovanou sestavu>Z tohoto počítače nahrát soubor Customer Profitability Sample.pbix do pracovního prostoru.
Sledujte v poznámkovém bloku
Tento kurz doprovází powerbi_dependencies_tutorial.ipynb poznámkový blok.
Pokud chcete otevřít doprovodný poznámkový blok pro tento kurz, postupujte podle pokynů v části Příprava systému na kurzy datových věd a importujte poznámkový blok do svého pracovního prostoru.
Pokud chcete raději zkopírovat a vložit kód z této stránky, můžete vytvořit nový poznámkový blok.
Než začnete spouštět kód, nezapomeňte k poznámkovému bloku připojit lakehouse.
Nastavení poznámkového bloku
Nastavte prostředí poznámkového bloku s potřebnými moduly a daty.
Slouží
%pipk instalaci SemPy z PyPI v poznámkovém bloku.%pip install semantic-linkImportujte potřebné moduly.
import sempy.fabric as fabric from sempy.dependencies import plot_dependency_metadata
Načtení a předběžné zpracování dat
Tento kurz používá standardní ukázkový sémantický model Customer Profitability Sample.pbix. Popis sémantického modelu najdete v ukázce ziskovosti zákazníků pro power BI.
Načtěte data Power BI do
FabricDataFramefabric.read_tablefunkce.dataset = "Customer Profitability Sample" customer = fabric.read_table(dataset, "Customer") customer.head()StateNačtěte tabulku do tabulkyFabricDataFrame.state = fabric.read_table(dataset, "State") state.head()I když výstup vypadá jako datový rámec pandas, tento kód inicializuje datovou strukturu nazvanou
FabricDataFramea přidává operace nad pandas.Zkontrolujte datový typ
customer.type(customer)Výstup ukazuje, že
customerjesempy.fabric._dataframe._fabric_dataframe.FabricDataFrameto .Spojte objekty
customerastateDataFrameobjekty.customer_state_df = customer.merge(state, left_on="State", right_on="StateCode", how='left') customer_state_df.head()
Identifikace funkčních závislostí
Funkční závislost je vztah 1:N mezi hodnotami ve dvou nebo více sloupcích v objektu DataFrame. Pomocí těchto relací můžete automaticky zjišťovat problémy s kvalitou dat.
Spuštěním funkce SemPy
find_dependenciesve sloučenémDataFramesouboru identifikujte funkční závislosti mezi hodnotami sloupců.dependencies = customer_state_df.find_dependencies() dependenciesVizualizujte závislosti pomocí funkce SemPy
plot_dependency_metadata.plot_dependency_metadata(dependencies)Graf funkčních závislostí ukazuje, že
Customersloupec určuje sloupce jakoCity,Postal CodeaName.Graf nezobrazuje funkční závislost mezi
Citysloupci aPostal Code, pravděpodobně proto, že mezi sloupci existuje mnoho porušení. Pomocí funkce SemPyplot_dependency_violationsmůžete vizualizovat porušení závislostí mezi konkrétními sloupci.
Prozkoumejte data kvůli problémům s kvalitou
Nakreslete graf pomocí
plot_dependency_violationsvizualizační funkce SemPy.customer_state_df.plot_dependency_violations('Postal Code', 'City')
Graf porušení závislostí zobrazuje hodnoty pro
Postal Codelevou stranu a hodnoty proCitypravou stranu. Hrana spojujePostal Codena levé straně sCityna pravé straně, pokud je řádek obsahující tyto dvě hodnoty. Hrany jsou opatřeny poznámkami s počtem takových řádků. Například existují dva řádky s PSČ 20004, jeden s městem "North Tower" a druhý s městem "Washington".Graf také zobrazuje několik porušení a mnoho prázdných hodnot.
Potvrďte počet prázdných hodnot pro
Postal Code:customer_state_df['Postal Code'].isna().sum()50 řádků má pro
Postal Code.Odstraňte řádky s prázdnými hodnotami. Potom pomocí funkce
find_dependenciesvyhledejte závislosti. Všimněte si dodatečného parametruverbose=1, který nabízí přehled o vnitřních činnostech SemPy:customer_state_df2=customer_state_df.dropna() customer_state_df2.find_dependencies(verbose=1)Podmíněná entropie pro
Postal CodeaCityje 0,049. Tato hodnota označuje, že došlo k narušení funkčních závislostí. Než tato porušení opravíte, zvyšte prahovou hodnotu podmíněné entropie z výchozí hodnoty0.01na0.05, jen abyste viděli závislosti. Nižší prahové hodnoty vedou k menšímu počtu závislostí (nebo vyšší selektivitě).Zvýšení prahové hodnoty podmíněné entropie z výchozí hodnoty
0.01na0.05:plot_dependency_metadata(customer_state_df2.find_dependencies(threshold=0.05))Pokud použijete znalosti domény o tom, která entita určuje hodnoty jiných entit, zdá se, že graf závislostí je přesný.
Prozkoumejte další zjištěné problémy s kvalitou dat. Například přerušovaná šipka spojuje
CityaRegion, což značí, že závislost je pouze přibližná. Tento přibližný vztah by mohl znamenat, že existuje částečná funkční závislost.customer_state_df.list_dependency_violations('City', 'Region')Podívejte se podrobněji na každý z případů, kdy neprázdná
Regionhodnota způsobuje narušení.customer_state_df[customer_state_df.City=='Downers Grove']Výsledek ukazuje město Downers Grove v Illinois a Nebraska. Downers Grove je však město v Illinois, ne Nebraska.
Podívejte se na město Fremont:
customer_state_df[customer_state_df.City=='Fremont']V Kaliforniije město označované jako
Fremont. Pro Texas však vyhledávač vrátí Premont, ne Fremont. Je také podezřelé vidět porušení závislosti mezi
NameaCountry/Region, jak je označeno tečkovanou čárou v původním grafu porušení závislostí (před vyřazením řádků s prázdnými hodnotami).customer_state_df.list_dependency_violations('Name', 'Country/Region')Jeden zákazník, SDI Design, se zobrazuje ve dvou oblastech – Usa a Kanada. Tento případ nemusí být sémantické porušení, jen neobvyklé. Přesto stojí za to se podívat blízko:
Podívejte se blíže na zákazníka SDI Design:
customer_state_df[customer_state_df.Name=='SDI Design']Další kontrola ukazuje dva různé zákazníky z různých odvětví se stejným názvem.
Průzkumná analýza dat a čištění dat jsou iterativní. To, co najdete, závisí na vašich otázkách a perspektivě. Sémantický odkaz poskytuje nové nástroje, které vám umožní získat více dat.
Související obsah
Podívejte se na další kurzy pro sémantický odkaz a SemPy:
- kurz : Vyčištění dat pomocí funkčních závislostí
- Kurz : Extrahování a výpočet měr Power BI z poznámkového bloku Jupyter
- kurz : Zjišťování relací v sémantickém modelu pomocí sémantického odkazu
- Kurz: Zjišťování relací v datové sadě Synthea pomocí sémantického odkazu
- Výukový program: Ověřování dat pomocí SemPy a Great Expectations (GX)