Downloads verkleinen voor Power BI-rapporten door alleen de benodigde kolommen te selecteren via OData

Go to English version

Invantive Cloud stelt gebruikers in staat om data uit cloud databronnen te importeren in Power BI Desktop, Power BI service, Power Query, Azure Data Factory en Microsoft Integratiediensten. Alle downloads zijn beschikbaar door gebruik te maken van OData versie 4. Het OData4 protocol wordt geïnterpreteerd door Invantive Cloud, geoptimaliseerd door Invantive SQL en uitgevoerd met het native protocol van de clouddatabronnen, ongeacht of dat SOAP/WSDL, XML, REST, JSON of een eigen protocol is.

Zorg ervoor dat u de structuur van Invantive Cloud begrijpt voordat je verder gaat. De structuur is beschreven op Invantive Cloud Structure (Engels). Een overzicht van uitvoerbare prestatieoptimalisatietechnieken en technieken om de downloadgrootte te verminderen worden gegeven op Overzicht van Power BI-technieken om prestaties en downloadtijd te verbeteren.

Beperkingen van Downloadgrootte

Invantive Cloud biedt een gedeelde dienst voor rapportage, analyse en gegevensuitwisseling. Om een goede werking en acceptabele kosten te garanderen, zijn er limieten gesteld aan het daadwerkelijke gebruik. Te grote hoeveelheden gedownloade data verminderen de effectiviteit van het platform en vereisen meer tijd om te verwerken op bijvoorbeeld de Power BI dienst. Verschillende andere technieken om het totale aantal downloads over een kalenderdag te verminderen, evenals technieken om de downloadgrootte van een afzonderlijke gegevensset te verminderen, worden gepresenteerd in het [overzicht] (Overzicht van Power BI-technieken om prestaties en downloadtijd te verbeteren).

Zoals uitgelegd in het gedeelte “Metingen”, kan het beperken van het aantal kolommen waarvoor gegevens worden opgehaald de (gecomprimeerde) downloadgrootte met een factor 3 verminderen. Hogere en lagere factoren zijn mogelijk, afhankelijk van de eigenschappen van de gegevens. Het ongecomprimeerde datavolume bleek met een factor 16 te kunnen worden gereduceerd, wat een meetbare reductie van de verwerkingstijd van Microsoft Power BI oplevert.

Kolommen uitsluiten van uw dataset in Power BI Desktop:

  • Selecteer een Power BI dataset.
  • Ga naar de Power Query-editor.
  • In de Power Query-editor: selecteer elke kolom die u wilt behouden.
  • Selecteer “Andere kolommen verwijderen”:
    ![Remove Other Columns in the Power Query Editor|608x347]
  • Ga naar de toegepaste stappen.
  • Selecteer het “tandwiel” naast “Andere kolommen verwijderen”.
  • Vink alle kolommen aan die u wilt behouden:
    Controleer kolommen om te behouden in Power BI
  • Laat de Power Query-engine de wijzigingen toepassen op je Power BI-rapport.

Meting

Om de impact te meten van het alleen selecteren van de benodigde kolommen, is een testcase gemaakt met financiële gegevens van ongeveer 200 kleine testbedrijven op Exact Online met behulp van de tabel TransactionLinesIncremental. De tabel TransactionLinesIncremental bevat ongeveer 215.000 Exact Online journaalposten. De verdeling van de gegevens is vergelijkbaar met die van andere financiële gegevensbronnen.

Alle tests zijn twee keer uitgevoerd om de gegevens in de OData4-cache te laden voordat ze aan Power BI werden geleverd.

Volledige gegevensset

De volledige gegevensreeks bevat 48 kolommen, gedeeltelijk schaars gevuld, en genereert het volgende OData4-verzoek voor de tabel:

/SEGMENT/odata4/ExactOnlineREST.Incremental.TransactionLinesIncremental@eol

De bijbehorende Power BI-query is:

let
    Source = OData.Feed("https://bridge-online.cloud/SEGMENT/odata4", null, [Implementation="2.0"]),
    #"ExactOnlineREST.Incremental.TransactionLinesIncremental@eol_table" = Source{[Name="ExactOnlineREST.Incremental.TransactionLinesIncremental@eol",Signature="table"]}[Data]
in
    #"ExactOnlineREST.Incremental.TransactionLinesIncremental@eol_table"

De volledige dataset die in de test is gebruikt, heeft een netwerkgrootte van 15 MB (15.044.436 bytes om precies te zijn, gecomprimeerd) en een ongecomprimeerde grootte van 244.815 KB. De dataset werd in ongeveer 27 seconden gedownload van de Invantive Bridge Online OData cache door Power BI op een vlot HP-werkstation, inclusief verwerking, over een link van 250 Mb.

Eerdere metingen aan Invantive Bridge Online hebben aangetoond dat de cumulatieve doorvoer gemakkelijk 5 Gb kan overschrijden, dus Power BI Desktop lijkt de beperkende factor te zijn bij het verwerken van de 244 MB JSON-gegevens die via OData worden getransporteerd.

Er werd een aparte test uitgevoerd om vast te stellen of Power BI inderdaad de beperkende factor was. De volgende verklaring werd uitgevoerd om de download te simuleren:

curl --user john.doe@acme.com:secret https://bridge-online.cloud/SEGMENT/odata4/ExactOnlineREST.Incremental.TransactionLinesIncremental@eol --output c:\temp\null.json

De download van 244 MB met curl duurt consequent 14 seconden, wat voldoende is om een netwerkverbinding van 140 Mb te verzadigen. In plaats daarvan lijkt Power BI de langzaamste schakel in de keten te zijn.

De inhoud lijkt op:

Gegevensverzameling met alleen Timestamp.

Met de stap “Andere kolommen verwijderen” werden alle kolommen behalve Timestamp verwijderd.

Bij het downloaden van de nieuwe gegevensverzameling in Power BI werd een beperkter OData4-verzoek gebruikt:

/SEGMENT/odata4/ExactOnlineREST.Incremental.TransactionLinesIncremental@eol?$select=ID%2CTimestamp

Het verzoek bevat ook de kolom ID, die noodzakelijk wordt geacht door Power BI Desktop.

De bijbehorende query is:

let
    Source = OData.Feed("https://bridge-online.cloud/SEGMENT/odata4", null, [Implementation="2.0"]),
    #"ExactOnlineREST.Incremental.TransactionLinesIncremental@eol_table" = Source{[Name="ExactOnlineREST.Incremental.TransactionLinesIncremental@eol",Signature="table"]}[Data],
    #"Removed Other Columns" = Table.SelectColumns(#"ExactOnlineREST.Incremental.TransactionLinesIncremental@eol_table",{"Timestamp"})
in
    #"Removed Other Columns"

De downloadgrootte van deze dataset met alleen de kolommen ID en Timestamp is 5 MB (5.571.914 bytes om precies te zijn, gecomprimeerd) en - volgens Power BI - een ongecomprimeerde grootte van 14.669 KB. De dataset werd in ongeveer 6 seconden gedownload uit de Bridge Online cache.

De inhoud lijkt op:

Discussie

Door het aantal kolommen dat in Power BI wordt gedownload tot het absolute minimum te beperken, is de downloadgrootte on-the-wire met een factor 3 afgenomen; de ongecomprimeerde downloadgrootte is met een factor van meer dan 16 afgenomen.

Er zijn geen overbodige gegevens in de download met beperkte breedte. Het unieke karakter van de opgehaalde gegevens beperkt de compressieverhouding. Niettemin kan het verminderen van het aantal opgehaalde kolommen het gegevensvolume voldoende verminderen om deze techniek toe te passen, vooral wanneer de overgeslagen inhoud weinig comprimeerbaar is.