Reducer kardinalitet
Kardinalitet er et begreb, der bruges til at beskrive, hvor unikke værdierne i en kolonne er. Kardinalitet bruges også i forbindelse med relationer mellem to tabeller, hvor det beskriver retningen af relationen.
Identificer kardinalitetsniveauer i kolonner
Tidligere når du brugte Power Query-editor til at analysere metadataene, blev der ved hjælp af indstillingen Kolonnedistribution under fanen Vis vist statistik om, hvor mange særskilte og unikke elementer der var i hver kolonne i dataene.
Antal særskilte værdier – Det samlede antal forskellige værdier, der blev fundet i en given kolonne.
Antal unikke værdier – Det samlede antal værdier, der kun forekommer én gang i en given kolonne.
En kolonne, der har mange gentagne værdier i sit område (entydigt antal er lavt), vil have et lavt kardinalitetsniveau. Omvendt vil en kolonne, der indeholder mange unikke værdier (antallet af unikke værdier er højt), vil have et højt kardinalitetsniveau.
Lavere kardinalitet fører til mere optimeret ydeevne, så du skal muligvis reducere antallet af kolonner med høj kardinalitet i din semantiske model.
Reducer relationens kardinalitet
Når du importerer flere tabeller, skal du måske udføre en analyse ved hjælp af dataene fra alle disse tabeller. Det er nødvendig at have relationer mellem disse tabeller for at kunne beregne resultaterne nøjagtigt og vise de korrekte oplysninger i dine rapporter. Power BI Desktop hjælper med at gøre det nemmere at oprette disse relationer. Faktisk skal du i de fleste tilfælde ikke gøre noget; funktionen til automatisk registrering gør det for dig. Men du har måske indimellem brug for selv at oprette relationer eller foretage ændringer af en relation. Uanset hvad er det vigtigt at forstå relationer i Power BI Desktop, og hvordan du opretter og redigerer dem.
Når du opretter eller redigerer en relation, kan du konfigurere yderligere indstillinger. Power BI Desktop konfigurerer som standard yderligere indstillinger automatisk baseret på et bedste bud, hvilket kan være forskelligt for hver relation, afhængigt af dataene i kolonnerne.
Relationerne kan have forskellig kardinalitet. Kardinalitet er retningen af relation, og hver modelrelation skal have en kardinalitetstype defineret. Indstillingerne for kardinalitet i Power BI er:
Mange til en (
*
:1) – Denne relation er den mest almindelige standardtype. Det betyder, at kolonnen i én tabel kan have mere end én forekomst af en værdi, og den anden relaterede tabel, som ofte er opslagstabellen, har kun én forekomst af en værdi.En til en (1:1) – I denne relationstype har kolonnen i én tabel kun én forekomst af en bestemt værdi, og den anden relaterede tabel har kun én forekomst af en bestemt værdi.
En til mange (1:
*
) – I denne relationstype har kolonnen i én tabel kun én forekomst af en bestemt værdi, og den anden relaterede tabel kan have mere end én forekomst af en værdi.Mange til mange (:) – Med sammensatte modeller kan du etablere en mange til mange-relation mellem tabeller, hvilket fjerner kravene om unikke værdier i tabeller. Det fjerner også tidligere midlertidige løsninger, såsom introduktion af nye tabeller kun for at etablere relationer.
Under udvikling opretter og redigerer du relationer i din model, så når du opretter nye relationer i din model, uanset hvilken kardinalitet du har valgt, skal du altid sikre, at begge de kolonner, du bruger til at deltage i en relation, deler den samme datatype. Din model vil aldrig fungere, hvis du forsøger at oprette en relation mellem to kolonner, hvor den ene kolonne har datatypen tekst, og den anden har datatypen heltal.
I følgende eksempel har feltet ProductID datatypen Helt tal i tabellerne Produkt og Salg. Kolonner med datatypen Heltal fungerer bedre end kolonner med datatypen Tekst.
Gør ydeevnen bedre ved at reducere kardinalitetsniveauer
Power BI Desktop tilbyder forskellige teknikker, som du kan bruge til at reducere de data, der indlæses i semantiske modeller, f.eks. opsummering. Reduktion af dataene, der indlæses i din model, forbedrer relationernes kardinalitet i rapporten. Derfor er det vigtigt, at du bestræber dig på at minimere de data, der skal indlæses i dine modeller. Dette gælder især for store modeller, eller modeller, som du forventer, vil vokse og blive store med tiden.
Den mest effektive teknik til at reducere størrelsen af en model er nok at bruge en oversigtstabel fra datakilden. En detaljeret tabel kan indeholde alle transaktioner, hvorimod en oversigtstabel kan indeholde én post pr. dag pr. uge eller pr. måned. Det kan f.eks. være gennemsnittet af alle transaktioner pr. dag.
I en kildetabel med salgsfakta kunne der f.eks. gemmes én række for hver ordrelinje. Du kunne reducere dataene markant ved at opsummere alle salgsmetrikker, hvis du grupperer efter dato, kunde og produkt, og hvis der ikke er behov for individuelle transaktionsdetaljer.
Overvej derefter, at der kan opnås en endnu større reduktion af data ved at gruppere efter dato på månedsniveau. Derved kunne modellens størrelsen blive reduceret med op til 99 %, men det er ikke længere muligt at rapportere på dagsniveau eller niveauet for individuelle ordrer. Det er altid nødvendigt med en afvejning i forhold til detaljeniveauet af dataene, når man skal beslutte, om man vil opsummere data af faktatypen. En ulempe er, at du kan miste muligheden for at analysere data, fordi detaljerne ikke længere findes. Denne afvejning kan afhjælpes ved hjælp af et design med en blandet model.
I Power BI Desktop resulterer et design af typen Blandet tilstand i en sammensat model. Det giver dig i bund og grund mulighed for at fastlægge en lagertilstand for hver tabel. Hver tabel kan derfor have egenskaben Lagertilstand angivet til Import eller DirectQuery.
En effektiv teknik til at reducere modellens størrelse er at angive egenskaben Lagertilstand for større tabeller af faktatypen til DirectQuery. Denne designtilgang fungerer godt sammen med de teknikker, der bruges til at opsummere dataene. De opsummerede salgsdata kunne f.eks. bruges til at opnå rapportering af "oversigter" med høj ydeevne. Der kunne oprettes en side med detaljeadgang for at vise detaljeret salg for en specifik (og smal) filterkontekst, hvor alle salgsordrer vises i kontekst. Siden med detaljeadgang ville indeholde visualiseringer baseret på en DirectQuery-tabel for at hente dataene for salgsordrerne (detaljer om salgsordre).
Du kan finde flere oplysninger i Teknikker til reduktion af data til importudformning.