Gegevensreductiemethoden voor importmodellen

Dit artikel is bedoeld voor Power BI Desktop-gegevensmodelleerders die importmodellen ontwikkelen. Er worden verschillende technieken beschreven om de gegevens te verminderen die in importmodellen worden geladen.

Importmodellen worden geladen met gegevens die worden gecomprimeerd en geoptimaliseerd en vervolgens op schijf worden opgeslagen door de VertiPaq-opslagengine. Wanneer brongegevens in het geheugen worden geladen, is het mogelijk om 10x compressie te zien en is het dus redelijk om te verwachten dat 10 GB aan brongegevens kan worden gecomprimeerd tot ongeveer 1 GB in grootte. Verder kan een extra reductie van 20% worden bereikt wanneer deze op schijf wordt bewaard.

Ondanks de efficiëntie die wordt bereikt door de VertiPaq-opslagengine, is het belangrijk dat u ernaar streeft om de gegevens te minimaliseren die in uw modellen moeten worden geladen. Dit geldt met name voor grote modellen of modellen die u verwacht te groeien in de loop van de tijd. Vier overtuigende redenen zijn onder andere:

  • Grotere modelgrootten worden mogelijk niet ondersteund door uw capaciteit. Gedeelde capaciteit kan modellen van maximaal 1 GB hosten, terwijl Premium-capaciteiten grotere modellen kunnen hosten, afhankelijk van de SKU. Lees het artikel over power BI Premium-ondersteuning voor grote semantische modellen voor meer informatie. (Semantische modellen werden voorheen gegevenssets genoemd.)
  • Kleinere modelgrootten verminderen conflicten voor capaciteitsresources, met name geheugen. Hiermee kunnen meer modellen gelijktijdig worden geladen voor langere perioden, wat resulteert in lagere verwijderingspercentages.
  • Kleinere modellen zorgen voor snellere gegevensvernieuwing, wat resulteert in een lagere latentierapportage, een hogere semantische doorvoer voor het vernieuwen van modellen en minder druk op bronsysteem- en capaciteitsresources.
  • Kleinere tabelrijen kunnen leiden tot snellere berekeningsevaluaties, waardoor de algehele queryprestaties beter kunnen worden.

In dit artikel worden acht verschillende technieken voor gegevensreductie behandeld. Deze technieken zijn onder andere:

Overbodige kolommen verwijderen

Modeltabelkolommen dienen voor twee hoofddoeleinden:

  • Rapportage, om rapportontwerpen te bereiken die geschikt zijn voor filter-, groepeer- en samenvatten van modelgegevens
  • Modelstructuur, door modelrelaties, modelberekeningen, beveiligingsrollen en zelfs gegevenskleuropmaak te ondersteunen

Kolommen die niet voor deze doeleinden worden gebruikt, kunnen waarschijnlijk worden verwijderd. Het verwijderen van kolommen wordt verticaal filteren genoemd.

U wordt aangeraden modellen te ontwerpen met precies het juiste aantal kolommen op basis van de bekende rapportagevereisten. Uw vereisten kunnen na verloop van tijd veranderen, maar houd er rekening mee dat het eenvoudiger is om later kolommen toe te voegen dan ze later te verwijderen. Als u kolommen verwijdert, kunnen rapporten of de modelstructuur worden verbroken.

Overbodige rijen verwijderen

Modeltabellen moeten zo weinig mogelijk rijen bevatten. Dit kan worden bereikt door gefilterde rijensets in modeltabellen te laden om twee verschillende redenen: filteren op entiteit of op tijd. Het verwijderen van rijen wordt horizontaal filteren genoemd.

Filteren op entiteit omvat het laden van een subset van brongegevens in het model. In plaats van bijvoorbeeld verkoopgegevens voor alle verkoopregio's te laden, laadt u alleen feiten voor één regio. Deze ontwerpbenadering resulteert in veel kleinere modellen en het kan ook voorkomen dat beveiliging op rijniveau hoeft te worden gedefinieerd (maar vereist specifieke semantische modelmachtigingen in de Power BI-service en het maken van dubbele rapporten die verbinding maken met elk semantisch model). U kunt gebruikmaken van het gebruik van Power Query-parameters en Power BI-sjabloonbestanden om het beheer en de publicatie te vereenvoudigen. Lees het blogbericht Over queryparameters en Power BI-sjablonen voor meer informatie

Filteren op tijd omvat het beperken van de hoeveelheid gegevensgeschiedenis die in feitentabellen wordt geladen (en het beperken van de datumrijen die in de modeldatumtabellen zijn geladen). We raden u aan niet automatisch alle beschikbare geschiedenis te laden, tenzij dit een bekende rapportagevereiste is. Het is handig om te begrijpen dat Power Query-filters op basis van tijd kunnen worden geparameteriseerd en zelfs kunnen worden ingesteld op het gebruik van relatieve tijdsperioden (ten opzichte van de vernieuwingsdatum, bijvoorbeeld de afgelopen vijf jaar). Houd er ook rekening mee dat retrospectief wijzigingen in tijdfilters geen rapporten breken; Dit resulteert alleen in minder (of meer) gegevensgeschiedenis die beschikbaar is in rapporten.

Groeperen op en samenvatten

Misschien is de meest effectieve techniek om een modelgrootte te verminderen het laden van vooraf samengevatte gegevens. Deze techniek kan worden gebruikt om de korrel van feitentabellen te verhogen. Er is echter een duidelijke afweging, wat resulteert in detailverlies.

In een feitentabel bronverkoop wordt bijvoorbeeld één rij per orderregel opgeslagen. Aanzienlijke gegevensreductie kan worden bereikt door alle metrische verkoopgegevens samen te vatten, te groeperen op datum, klant en product. Houd er dan rekening mee dat een nog significantere gegevensreductie kan worden bereikt door op maandniveau te groeperen op datumniveau. Het kan een mogelijke vermindering van de modelgrootte van 99% bereiken, maar rapportage op dagniveau( of individueel orderniveau) is niet meer mogelijk. Besluiten om feitengegevens samen te vatten, hebben altijd betrekking op compromissen. Compromissen kunnen worden beperkt door een ontwerp van een gemengd model en deze optie wordt beschreven in de techniek Overschakelen naar gemengde modus .

Kolomgegevenstypen optimaliseren

De VertiPaq-opslagengine maakt gebruik van afzonderlijke gegevensstructuren voor elke kolom. Deze gegevensstructuren bereiken standaard de hoogste optimalisaties voor numerieke kolomgegevens, die gebruikmaken van waardecodering. Voor tekst en andere niet-numerieke gegevens wordt echter hash-codering gebruikt. Hiervoor moet de opslagengine een numerieke id toewijzen aan elke unieke tekstwaarde in de kolom. Dit is de numerieke id, die vervolgens wordt opgeslagen in de gegevensstructuur, waarvoor een hash-zoekactie is vereist tijdens de opslag en het uitvoeren van query's.

In sommige specifieke gevallen kunt u brontekstgegevens converteren naar numerieke waarden. Een verkoopordernummer kan bijvoorbeeld consistent worden voorafgegaan door een tekstwaarde (bijvoorbeeld 'SO123456'). Het voorvoegsel kan worden verwijderd en de ordernummerwaarde wordt geconverteerd naar een geheel getal. Voor grote tabellen kan dit leiden tot aanzienlijke gegevensreductie, met name wanneer de kolom unieke of hoge kardinaliteitswaarden bevat.

In dit voorbeeld raden we u aan de kolom standaardsamenvattingseigenschap in te stellen op 'Niet samenvatten'. Het helpt bij het minimaliseren van de ongepaste samenvatting van de ordernummerwaarden.

Voorkeur voor aangepaste kolommen

In de VertiPaq-opslagengine worden berekende modelkolommen (gedefinieerd in DAX) opgeslagen, net als bij gewone Power Query-kolommen. De gegevensstructuren worden echter iets anders opgeslagen en bereiken doorgaans minder efficiënte compressie. Ze worden ook gebouwd zodra alle Power Query-tabellen zijn geladen, wat kan leiden tot langere vernieuwingstijden voor gegevens. Het is daarom minder efficiënt om tabelkolommen toe te voegen als berekende kolommen dan berekende Power Query-kolommen (gedefinieerd in M).

De voorkeur moet aangepaste kolommen maken in Power Query. Wanneer de bron een database is, kunt u op twee manieren een grotere belastingsefficiëntie bereiken. De berekening kan worden gedefinieerd in de SQL-instructie (met behulp van de systeemeigen querytaal van de provider) of kan worden gerealiseerd als een kolom in de gegevensbron.

In sommige gevallen zijn berekende modelkolommen echter mogelijk de betere keuze. Dit kan het geval zijn wanneer de formule betrekking heeft op het evalueren van metingen of dat specifieke modelleringsfunctionaliteit alleen wordt ondersteund in DAX-functies. Raadpleeg de understanding-functies voor bovenliggende en onderliggende hiërarchieën in dax voor informatie over een dergelijk voorbeeld.

Power Query-query laden uitschakelen

Power Query-query's die zijn bedoeld om gegevensintegratie met andere query's te ondersteunen, mogen niet in het model worden geladen. Om te voorkomen dat de query in het model wordt geladen, moet u ervoor zorgen dat u de querybelasting in deze exemplaren uitschakelt.

Screenshot of Power Query showing

Automatische datum/tijd uitschakelen

Power BI Desktop bevat een optie met de naam Automatische datum/tijd. Wanneer deze optie is ingeschakeld, wordt er een verborgen tabel met automatische datum/tijd gemaakt voor datumkolommen ter ondersteuning van rapportauteurs bij het configureren van filters, groeperingen en inzoomacties voor kalenderperioden. De verborgen tabellen zijn in feite berekende tabellen die de grootte van het model vergroten. Raadpleeg het artikel over automatische datum/tijd in power BI Desktop voor hulp bij het gebruik van deze optie.

Overschakelen naar gemengde modus

In Power BI Desktop produceert een ontwerp in de gemengde modus een samengesteld model. In wezen kunt u hiermee de opslagmodus voor elke tabel bepalen. Daarom kan voor elke tabel de eigenschap Opslagmodus zijn ingesteld als Importeren of DirectQuery (Dual is een andere optie).

Een efficiënte manier om de modelgrootte te reduceren is door de eigenschap Opslagmodus voor grotere gegevenstabellen in te stellen op DirectQuery. Houd er rekening mee dat deze ontwerpbenadering goed kan werken in combinatie met de methode Groeperen op en samenvatten die eerder is geïntroduceerd. Samengevatte verkoopgegevens kunnen bijvoorbeeld worden gebruikt om rapporten met hoge prestaties te realiseren. Een drill through-pagina kan gedetailleerde verkoop weergeven voor specifieke (en smalle) filtercontext, waarbij alle in-context verkooporders worden weergegeven. In dit voorbeeld bevat de drillthrough-pagina visuals op basis van een DirectQuery-tabel om de verkoopordergegevens op te halen.

Er zijn echter veel gevolgen voor beveiliging en prestaties met betrekking tot samengestelde modellen. Lees het artikel Samengestelde modellen gebruiken in Power BI Desktop voor meer informatie.

Zie de volgende artikelen voor meer informatie over het ontwerpen van power BI-modellen importeren: