Kardinaliteit verminderen
Kardinaliteit is een term die wordt gebruikt voor het beschrijven van het unieke karakter van de waarden in een kolom. Kardinaliteit wordt ook gebruikt in de context van de relaties tussen twee tabellen, waarbij de richting van de relatie wordt beschreven.
De niveaus van kardinaliteit in kolommen bepalen
Voorheen, wanneer u Power Query-editor gebruikte voor het analyseren van de metagegevens, werden met de optie Kolomdistributie op het tabblad Weergave statistieken weergegeven over het aantal afzonderlijke en unieke items in elke kolom in de gegevens.
Aantal afzonderlijke waarden: het totaalaantal verschillende waarden in een bepaalde kolom.
Aantal unieke waarden: het totaalaantal waarden dat slechts eenmaal in een bepaalde kolom voorkomt.
Een kolom met veel herhaalde waarden in het bereik (uniek aantal is laag) heeft een laag kardinaliteitsniveau. Een kolom met een groot aantal unieke waarden in het bereik (aantal unieke waarden is hoog) heeft daarentegen een hoog niveau van kardinaliteit.
Lagere kardinaliteit leidt tot meer geoptimaliseerde prestaties, dus mogelijk moet u het aantal kolommen met hoge kardinaliteit in uw semantische model verminderen.
Kardinaliteit van relatie verminderen
Wanneer u meerdere tabellen importeert, voert u mogelijk een analyse uit op basis van gegevens uit al deze tabellen. Relaties tussen deze tabellen zijn nodig om nauwkeurig resultaten te berekenen en de juiste informatie in uw rapporten weer te geven. Met Power BI Desktop kunt u deze relaties op eenvoudige wijze maken. In de meeste gevallen hoeft u niets te doen. De functie voor automatische detectie doet dit voor u. Het is echter mogelijk dat u af en toe relaties moet maken of een relatie moeten wijzigen. Het is in ieder geval belangrijk om te weten hoe relaties in Power BI Desktop werken en hoe u deze maakt en bewerkt.
Wanneer u een relatie maakt of bewerkt, kunt u extra opties configureren. Standaard worden in Power BI Desktop automatisch extra opties geconfigureerd op basis van een beste schatting, die voor elke relatie kan verschillen op basis van de gegevens in de kolommen.
De relaties kunnen een verschillende kardinaliteit hebben. Kardinaliteit is de richting van de relatie en elke modelrelatie moet worden gedefinieerd met een kardinaliteitstype. De opties voor kardinaliteit in Power BI zijn:
Veel-op-een (
*
:1): deze relatie is het meest voorkomende standaardtype. Dit betekent dat in de kolom in de ene tabel een waarde meerdere keren kan voorkomen en dat in de andere gerelateerde tabel, ook wel opzoektabel genoemd, de waarde slechts één keer voorkomt.Eén-op-één (1:1): bij dit relatietype komt een bepaalde waarde zowel in de kolom van de ene tabel als in de andere gerelateerde tabel slechts één keer voor.
Een-op-veel (1:
*
): in dit relatietype bevat de kolom in de ene tabel slechts één exemplaar van een bepaalde waarde en kan de andere gerelateerde tabel meer dan één exemplaar van een waarde hebben.Veel-op-veel (:): bij samengestelde modellen kunt u een veel-op-veel-relatie tussen tabellen tot stand brengen, waardoor de vereisten voor unieke waarden in tabellen vervallen. Ook eerdere tijdelijke oplossingen, zoals het introduceren van nieuwe tabellen om relaties tot stand te brengen, hoeven in dit geval niet te worden gebruikt.
Tijdens de ontwikkeling maakt en bewerkt u relaties in uw model, dus wanneer u nieuwe relaties in uw model bouwt, ongeacht welke kardinaliteit u hebt gekozen, moet u er altijd voor zorgen dat beide kolommen die u gebruikt om deel te nemen aan een relatie hetzelfde gegevenstype delen. Uw model werkt nooit als u een relatie tussen twee kolommen maakt, waarbij één kolom het gegevenstype Tekst heeft en een andere kolom het gegevenstype Integer.
In het volgende voorbeeld heeft het veld ProductID het gegevenstype Integer in de tabellen Product en Verkoop. De kolommen met het gegevenstype Integer presteren beter dan kolommen met het gegevenstype Tekst.
Prestaties verbeteren door het kardinaliteitsniveau te verminderen
Power BI Desktop biedt verschillende technieken die u kunt gebruiken om de gegevens te verminderen die in semantische modellen worden geladen, zoals samenvatting. Als er minder gegevens in uw model worden geladen, zorgt dat voor een betere relatiekardinaliteit van het rapport. Het is daarom belangrijk dat u het aantal gegevens minimaliseert dat in uw modellen wordt geladen. Dit geldt met name voor grootschalige modellen of modellen waarvan u verwacht dat ze in de loop van de tijd grootschalig worden.
Misschien kunt u het beste een overzichtstabel uit de gegevensbron gebruiken om de modelgrootte te reduceren. Een detailtabel bevat misschien elke transactie, maar een overzichtstabel bevat één record per dag, per week of per maand. Dit kan bijvoorbeeld een gemiddelde van alle transacties per dag zijn.
In een brontabel met verkoopgegevens wordt voor elke orderregel één rij opgeslagen. U kunt de hoeveelheid gegevens aanzienlijk reduceren door alle verkoopcijfers samen te vatten, als u de gegevens groepeert op datum, klant en product, en er geen afzonderlijke transactiegegevens nodig zijn.
Houd er dan rekening mee dat een nog significantere gegevensreductie kan worden bereikt door te groeperen op datum op maandniveau. U kunt op deze manier de modelgrootte mogelijk tot 99 procent reduceren. Rapportage op het niveau van een dag of een afzonderlijk order is echter niet meer mogelijk. Als u besluit om een overzicht van uw gegevens te gebruiken, gaat dit altijd ten koste van de details van uw gegevens. Een nadeel is dat u de mogelijkheid om in te zoomen op gegevens kwijtraakt omdat de details niet meer bestaan. Dit nadeel kan worden verholpen door een ontwerp met een gemengd model te gebruiken.
In Power BI Desktop biedt het ontwerp Gemengde modus een samengesteld model. U kunt in feite een opslagmodus voor elke tabel bepalen. Daarom kan voor elke tabel de eigenschap Opslagmodus worden ingesteld als Import of DirectQuery.
Een efficiënte manier om de modelgrootte te reduceren is door de eigenschap Opslagmodus voor grotere gegevenstabellen in te stellen op DirectQuery. Deze methode kan goed worden gebruikt in combinatie met methoden voor het samenvatten van uw gegevens. De samengevatte verkoopgegevens kunnen bijvoorbeeld worden gebruikt voor een high performance overzichtsrapportage. Er kan een detailpagina worden gemaakt om de gedetailleerde verkoopgegevens voor een specifieke (en verfijnde) filtercontext weer te geven, waarbij alle betreffende verkooporders worden weergegeven. De detailpagina zou visuals moeten bevatten die zijn gebaseerd op een DirectQuery-tabel om de verkoopordergegevens (verkooporderdetails) op te halen.
Zie Gegevensreductiemethoden voor importmodellen voor meer informatie.