Redusere kardinalitet
Kardinalitet er et begrep som brukes for å beskrive unikheten til verdiene i en kolonne. Kardinalitet brukes også i sammenheng med relasjonene mellom to tabeller, hvor den beskriver retningen til relasjonen.
Identifisere kardinalitetsnivåer i kolonner
Tidligere, da du brukte redigeringsprogram for Power Query til å analysere metadataene, viset alternativet Kolonnedistribusjon i fanen Vis statistikk over hvor mange distinkte og unike elementer det var i hver kolonne i dataene.
Antall distinkte verdier – Det totale antallet forskjellige verdier funnet i en gitt kolonne.
Antall unike verdier – det totale antallet verdier som bare vises én gang i en gitt kolonne.
En kolonne som har mange gjentatte verdier i området (unikt antall er lavt) vil ha et lavt kardinalitetsnivå. I motsetning har en kolonne som har mange unike verdier i dens område (unikt antall er høyt) et høy kardinalitetsnivå.
Lavere kardinalitet fører til mer optimalisert ytelse, så du må kanskje redusere antallet kolonner med høy kardinalitet i den semantiske modellen.
Redusere relasjonskardinalitet
Når du importerer flere tabeller, er det mulig at du foretar analyser ved å bruke data fra alle disse tabellene. Relasjoner mellom disse tabellene er nødvendige for å beregne resultater nøyaktig og vise riktig informasjon i rapportene dine. Power BI Desktop bidrar til å gjøre det enklere å opprette disse relasjonene. I de fleste tilfeller trenger du faktisk ikke å gjøre noe, funksjonen identifiser automatisk gjør det for deg. Det kan imidlertid hende at du av og til må opprette relasjoner eller foreta endringer i en relasjon. Uansett er det viktig å forstå relasjoner i Power BI Desktop og hvordan du oppretter og redigerer dem.
Når du oppretter eller redigerer en relasjon, kan du konfigurere flere alternativer. Som standard konfigurerer Power BI Desktop automatisk flere alternativer basert på beste gjetning, som kan være forskjellig for hver relasjon basert på dataene i kolonnene.
Relasjonene kan har forskjellig kardinalitet. Kardinalitet er retningen til forholdet, og hver modellrelasjon må defineres med en kardinalitetstype. Alternativene for kardinalitet i Power BI er:
Mange-til-én (
*
:1) – Denne relasjonen er den vanligste standardtypen. Det betyr at kolonnen i én tabell kan ha mer enn én forekomst av en verdi, og den andre relaterte tabellen, ofte kalt oppslagstabellen, har bare én forekomst av en verdi.Én til én (1:1) – I denne relasjonstypen, har kolonnen i én tabell bare én forekomst av en bestemt verdi, og den andre tilknyttede tabellen har bare én forekomst av en bestemt verdi.
Én-til-mange (1:
*
) – I denne relasjonstypen har kolonnen i én tabell bare én forekomst av en bestemt verdi, og den andre relaterte tabellen kan ha mer enn én forekomst av en verdi.Mange til mange (:) – Med sammensatte modeller, kan du etablere en mange til mange-relasjon mellom tabeller, dette fjerner kravene til unike verdier i tabeller. Det fjerner også tidligere midlertidige løsninger, som for eksempel å introdusere nye tabeller bare for å etablere relasjoner.
Under utviklingen oppretter og redigerer du relasjoner i modellen, slik at når du bygger nye relasjoner i modellen, uavhengig av hvilken kardinalitet du har valgt, må du alltid sørge for at begge kolonnene du bruker til å delta i en relasjon, deler samme datatype. Modellen din vil aldri fungere hvis du forsøker å opprette en relasjon mellom to kolonner, hvor én kolonne har en datatype i tekst og en annen kolonne har en datatype i heltall.
I det følgende eksemplet, har feltet ProductID datatypen Heltall i tabellen Produkt og Salg. Kolonnene med datatypen Heltall har bedre ytelse enn kolonner med datatypen Tekst.
Forbedre ytelse ved å redusere kardinalitetsnivåer
Power BI Desktop tilbyr ulike teknikker som du kan bruke til å redusere dataene som lastes inn i semantiske modeller, for eksempel oppsummering. Ved å redusere dataene som lastes inn i modellen vil du forbedre relasjonskardinaliteten til rapporten. Av denne grunn er det viktig at du jobber med å redusere dataen som blir lastet inn i modellene. Dette er gjelder spesielt for større modeller, eller modeller som du forventer vil vokse og bli store over tid.
Den mest effektive fremgangsmåten for å redusere en modellstørrelse er kanskje å bruke en sammendragstabell fra datakilden. Mens en detaljtabell kan inneholde hver transaksjon, vil en sammendragstabell inneholde én oppføring per dag, per uke eller per måned. Den kan for eksempel være et gjennomsnitt over alle transaksjoner per dag.
En faktatabell for kildesalg lagrer for eksempel én rad for hver ordrelinje. Du kan oppnå betraktelig datareduksjon ved å summere alle salgsmåledata hvis du grupperer etter dato, kunde og produkt, og individuelle transaksjonsdetaljer ikke er nødvendige.
Vurder da at en enda mer betydelig datareduksjon kan oppnås ved å gruppere etter dato på månedsnivå. Det kan oppnå en mulig reduksjon på 99 prosent i modellstørrelse, men, rapportering på dagsnivå eller et individuelt ordrenivå er ikke lenger mulig. Avgjørelsen om du skal oppsummere data av faktatypen vil alltid involvere en avveining med detaljene i dataene dine. En ulempe er at du kan miste muligheten til å drille inn i data fordi detaljene ikke lenger finnes. Dette kan begrenses ved å bruke en utforming av blandet modell.
I Power BI Desktop produserer en utforming i blandet modus en sammensatt modell. Dette gir deg derved mulighet til å avgjøre en lagringsmodus for hver tabell. Derfor kan hver tabell ha egenskapen Lagringsmodus angitt som Import eller DirectQuery.
En effektiv metode for å redusere modellstørrelsen er å angi egenskapen Lagringsmodus for større faktatabell tabeller til DirectQuery. Denne utformingstilnærmingen kan fungere bra i sammen med teknikker som brukes for å summere dataene. De summert salgsdataene kan for eksempel brukes for å oppnå «summerings»-rapportering med høy ytelse. Det kan opprettes en ekstraktside for å vise salg på detaljnivå for spesifikt (og smalt) filterinnhold, som vise alle salgsordre i kontekst. Ekstraktsiden vil inneholde visualobjekter basert på en DirectQuery-tabell for å hente salgsordredataene (salgsordredetaljer).
Hvis du vil ha mer informasjon, kan du se Datareduksjonsteknikker for importmodellering.