Incrementeel vernieuwen gebruiken met gegevensstromen

Notitie

Ingangs datum van november 2020:

  • De naam van Common Data Service is gewijzigd in micro soft Dataverse. Meer informatie
  • Sommige terminologie in micro soft Dataverse is bijgewerkt. Bijvoorbeeld: entiteit is nu tabel en veld is nu kolom. Meer informatie

Dit artikel wordt binnenkort bijgewerkt om de meest recente terminologie weer te geven.

Met gegevensstromen kunt u grote hoeveelheden gegevens in Power BI of de door uw organisatie geleverde opslag brengen. In sommige gevallen is het echter niet praktisch een volledige kopie van alle brongegevens bij elke vernieuwing bij te werken. Een goed alternatief is incrementeel vernieuwen, dat de volgende voordelen voor gegevensstromen biedt:

  • Vernieuwen gaat sneller: alleen gegevens die zijn gewijzigd, moeten worden vernieuwd. Vernieuw bijvoorbeeld alleen de laatste vijf dagen van een gegevensstroom van tien jaar.
  • Vernieuwen is betrouwbaarder: het is bijvoorbeeld niet nodig om langdurige verbindingen met vluchtige bronsystemen te onderhouden.
  • Resourceverbruik is lager: minder gegevens om te vernieuwen vermindert het totale verbruik van geheugen en andere resources.

Incrementeel vernieuwen is beschikbaar in gegevensstromen die zijn gemaakt in Power BI en gegevensstromen die zijn gemaakt in Power Apps. In dit artikel worden schermen van Power BI weergegeven, maar deze instructies zijn van toepassing op gegevensstromen die zijn gemaakt in Power BI of in Power Apps.

Incrementeel vernieuwen voor gegevensstromen.

Als u incrementeel vernieuwen gebruikt in gegevensstromen die zijn gemaakt in Power BI, moet de gegevensstroom zich in een werkruimte in Premium bevinden. Incrementeel vernieuwen in Power Apps vereist Power Apps abonnement 2.

In een Power BI of Power Apps vereist het gebruik van incrementeel vernieuwen dat brongegevens die in de gegevensstroom zijn opgenomen, een datum/tijd-veld hebben waarop incrementeel vernieuwen kan worden gefilterd.

Incrementeel vernieuwen voor gegevensstromen configureren

Een gegevensstroom kan veel entiteiten bevatten. Incrementeel vernieuwen wordt ingesteld op entiteitsniveau, zodat één gegevensstroom zowel volledig vernieuwde als incrementeel vernieuwde entiteiten kan bevatten.

Als u een incrementeel vernieuwde entiteit wilt instellen, configureert u eerst uw entiteit zoals u dat met elke andere entiteit zou doen.

Nadat de gegevensstroom is gemaakt en opgeslagen, selecteert u Incrementeel vernieuwen  Incrementeel vernieuwen. in de entiteitsweergave, zoals wordt weergegeven in de volgende afbeelding.

Pictogram incrementeel vernieuwen voor gegevensstromen.

Wanneer u het pictogram selecteert, wordt het venster Instellingen voor incrementeel vernieuwen weergegeven. Schakel incrementeel vernieuwen in.

Incrementeel vernieuwen voor gegevensstromen.

In de volgende lijst worden de instellingen in het venster Instellingen voor incrementeel vernieuwen uitgelegd.

  • De schakelknop Incrementeel vernieuwen in-/uitschakelen: schakelt het beleid voor incrementeel vernieuwen in of uit voor de entiteit.

  • Vervolgkeuzekeuzekeuze voor filterveld: hiermee selecteert u het queryveld waarop de entiteit moet worden gefilterd voor verhogingen. Dit veld bevat alleen datum/tijd-velden. U kunt incrementeel vernieuwen niet gebruiken als uw entiteit geen datum/tijd-veld bevat.

  • Rijen uit het verleden opslaan/vernieuwen: in het voorbeeld in de vorige afbeelding ziet u deze volgende instellingen.

    In dit voorbeeld definiëren we een vernieuwingsbeleid om in totaal vijf jaar aan gegevens op te slaan en incrementeel tien dagen aan gegevens te vernieuwen. Ervan uitgaande dat de entiteit dagelijks wordt vernieuwd, worden de volgende acties uitgevoerd voor elke vernieuwingsbewerking:

    • Voeg een nieuwe dag aan gegevens toe.

    • Vernieuw tien dagen tot de huidige datum.

    • Verwijder kalenderjaren die ouder zijn dan vijf jaar vóór de huidige datum. Als de huidige datum bijvoorbeeld 1 januari 2019 is, wordt het jaar 2013 verwijderd.

    Het kan even duren voordat de eerste vernieuwing van de gegevensstroom alle vijf jaar is geïmporteerd, maar de kans is groot dat de volgende vernieuwingen veel sneller worden voltooid.

  • Gegevenswijzigingen detecteren: een incrementele vernieuwing van tien dagen is veel efficiënter dan een volledige vernieuwing van vijf jaar, maar u kunt het mogelijk nog beter doen. Wanneer u het selectievakje Gegevenswijzigingen detecteren in selecteert, kunt u een datum/tijd-kolom selecteren om alleen de dagen te identificeren en te vernieuwen waarop de gegevens zijn gewijzigd. Hierbij wordt ervan uitgegaan dat een dergelijke kolom in het bronsysteem bestaat, wat gebruikelijk is voor controledoeleinden. De maximumwaarde van deze kolom wordt geëvalueerd voor elke periode in het incrementele bereik. Als deze gegevens niet zijn gewijzigd sinds de laatste vernieuwing, hoeft u de periode niet te vernieuwen. In het voorbeeld kan dit het aantal dagen dat stapsgewijs wordt vernieuwd verder verminderen van 10 naar misschien 2.

    Tip

    Het huidige ontwerp vereist dat de kolom die wordt gebruikt om gegevenswijzigingen te detecteren, persistent wordt gemaakt en in het cachegeheugen wordt opgeslagen. U kunt een van de volgende technieken overwegen om kardinaliteit en geheugenverbruik te verminderen:

    • Behoudt alleen de maximumwaarde van deze kolom op het moment van vernieuwen, bijvoorbeeld door een Power Query gebruiken.
    • Verklein de precisie tot een niveau dat acceptabel is op basis van uw vereisten voor vernieuwingsfrequentie.
  • Alleen volledige perioden vernieuwen: Imagine dat uw vernieuwing is gepland om elke dag om 4:00 uur te worden uitgevoerd. Als gegevens in de eerste vier uur van die dag in het bronsysteem worden weergegeven, wilt u er mogelijk geen rekening mee houden. Sommige zakelijke metrische gegevens, zoals de metrische gegevens per dag in de olie- en gasindustrie, zijn niet praktisch of zinnig om rekening mee te houden op basis van gedeeltelijke dagen.

    Een ander voorbeeld waarbij alleen het vernieuwen van volledige perioden passend is, is het vernieuwen van gegevens van een financieel systeem. Bijvoorbeeld een financieel systeem waar gegevens voor de vorige maand op de twaalfde kalenderdag van de maand worden goedgekeurd. U kunt het incrementele bereik instellen op één maand en plannen dat de vernieuwing wordt uitgevoerd op de 12e dag van de maand. Als deze optie is geselecteerd, vernieuwt het systeem de gegevens van januari (de meest recente volledige maandelijkse periode) op 12 februari.

Notitie

Incrementeel vernieuwen van gegevensstromen bepaalt datums volgens de volgende logica: als een vernieuwing is gepland, gebruikt incrementeel vernieuwen voor gegevensstromen de tijdzone die is gedefinieerd in het vernieuwingsbeleid. Als er geen vernieuwingsschema bestaat, wordt bij incrementeel vernieuwen de tijd gebruikt van de computer die de vernieuwingen uitvoeren.

Nadat incrementeel vernieuwen is geconfigureerd, wijzigt de gegevensstroom automatisch uw query om filteren op datum op te nemen. U kunt de automatisch gegenereerde query bewerken met behulp van de geavanceerde editor in Power Query om uw vernieuwing af te stemmen of aan te passen. Lees meer over incrementeel vernieuwen en hoe het werkt in de volgende secties.

Incrementeel vernieuwen en gekoppelde entiteiten versus berekende entiteiten

Bij gekoppelde entiteiten wordt de bronentiteit bijgewerkt door middel van incrementeel vernieuwen. Omdat gekoppelde entiteiten simpelweg een aanwijzer zijn naar de oorspronkelijke entiteit, heeft incrementeel vernieuwen geen invloed op de gekoppelde entiteit. Wanneer de bronentiteit wordt vernieuwd volgens het gedefinieerde vernieuwingsbeleid, moet elke gekoppelde entiteit ervan uitgaan dat de gegevens in de bron worden vernieuwd.

Berekende entiteiten zijn gebaseerd op query's die worden uitgevoerd via een gegevensopslag, wat een andere gegevensstroom kan zijn. Als zodanig gedragen berekende entiteiten zich op dezelfde manier als gekoppelde entiteiten.

Omdat berekende entiteiten en gekoppelde entiteiten zich op dezelfde manier gedragen, zijn de vereisten en configuratiestappen voor beide hetzelfde. Een verschil is dat voor berekende entiteiten incrementeel vernieuwen in bepaalde configuraties niet geoptimaliseerd kan worden uitgevoerd vanwege de manier waarop partities worden gebouwd.

Wisselen tussen incrementele en volledig vernieuwen

Gegevensstromen ondersteunen het wijzigen van het vernieuwingsbeleid tussen incrementeel en volledig vernieuwen. Wanneer een wijziging in beide richtingen plaatsvindt (volledig naar incrementeel of incrementeel naar volledig), is de wijziging van invloed op de gegevensstroom na de volgende vernieuwing.

Bij het verplaatsen van een gegevensstroom van volledig vernieuwen naar incrementeel, werkt de nieuwe vernieuwingslogica de gegevensstroom bij door zich aan het vernieuwingsvenster te houden en toe te passen zoals gedefinieerd in de instellingen voor incrementeel vernieuwen.

Bij het verplaatsen van een gegevensstroom van incrementeel naar volledig vernieuwen, worden alle gegevens die tijdens de incrementele vernieuwing zijn verzameld, overschreven door het beleid dat is gedefinieerd in de volledige vernieuwing. U dient deze actie goed te keuren.

Ondersteuning van tijdzones in incrementeel vernieuwen

Incrementeel vernieuwen van gegevensstromen is afhankelijk van het tijdstip waarop de gegevensstroom wordt uitgevoerd. Het filteren van de query is afhankelijk van de dag waarop deze wordt uitgevoerd.

Om die afhankelijkheden in overeenstemming te brengen en te zorgen voor consistentie van gegevens, implementeert incrementeel vernieuwen voor gegevensstromen de volgende heuristiek voor scenario's met nu vernieuwen:

  • In het geval dat een geplande vernieuwing wordt gedefinieerd in het systeem, gebruikt incrementeel vernieuwen de tijdzone-instellingen uit de sectie Geplande vernieuwing. Dit zorgt ervoor dat de tijdzone waarin de persoon zich bevindt die de gegevensstroom ververst, altijd consistent is met de definitie van het systeem.

  • Als er geen geplande vernieuwing is gedefinieerd, gebruiken gegevensstromen de tijdzone van de computer van de gebruiker die de vernieuwing doet.

Incrementeel vernieuwen kan ook worden aangeroepen met behulp van API's. In dit geval kan de API-aanroep een tijdzone-instelling hebben die wordt gebruikt bij het vernieuwen. Het gebruik van API's kan handig zijn bij test- en valideringsdoeleinden.

Details van de implementatie van incrementeel vernieuwen

Gegevensstromen maken gebruik van partitionering voor incrementeel vernieuwen. Nadat XMLA-eindpunten voor Power BI Premium beschikbaar zijn, worden de partities zichtbaar. Incrementeel vernieuwen in gegevensstromen behoudt het minimale aantal partities om te voldoen aan de vereisten voor vernieuwingsbeleid. Oude partities die buiten het bereik vallen, worden uitgevallen, waardoor er een doorrollend venster wordt onderhouden. Partities worden op opportunistische wijze samengevoegd, zodat het totaal aantal vereiste partities wordt verminderd. Dit verbetert de compressie en in sommige gevallen ook de prestaties van de query's.

De voorbeelden in deze sectie kennen alle het volgende vernieuwingsbeleid:

  • Rijen opslaan in het afgelopen kwartaal
  • Rijen vernieuwen in de afgelopen tien dagen
  • Gegevenswijzigingen detecteren = Onwaar
  • Alleen volledige dagen vernieuwen = Waar

Partities samenvoegen

In dit voorbeeld worden dagpartities automatisch samengevoegd met het maandniveau nadat ze buiten het incrementele bereik zijn gaan. Partities binnen het incrementele bereik moeten worden onderhouden in dagelijkse samenvattingen zodat alleen die dagen worden vernieuwd. Met de vernieuwing met uitvoerdatum 11-12-2016 worden de dagen in november samengevoegd, omdat ze buiten het incrementele bereik vallen.

Partities samenvoegen in gegevensstromen.

Oude partities verwijderen

Oude partities die buiten het totale bereik vallen, worden verwijderd. De vernieuwingsbewerking met rundatum 2-1-2017 daalt de partitie voor het derde kwartaal van 2016 omdat deze buiten het totale bereik valt.

Oude partities in gegevensstromen verwijderen.

Herstel van langdurige fouten

In dit voorbeeld wordt gesimuleerd hoe het systeem probleemloos van langdurige fouten herstelt. Stel dat het vernieuwen niet lukt omdat de referenties van de gegevensbron zijn verlopen en het oplossen van het probleem dertien dagen duurt. Het incrementele bereik is slechts tien dagen.

De volgende geslaagde vernieuwing, met uitvoerdatum 15-1-2017, moet de ontbrekende dertien dagen opvullen en vernieuwen. Ook moet de vorige negen dagen worden vernieuwd, omdat ze niet volgens het normale schema zijn vernieuwd. Met andere woorden: het incrementele bereik wordt verhoogd van 10 naar 22 dagen.

De volgende vernieuwingsbewerking, met rundatum 16-1-2017, maakt gebruik van de mogelijkheid om de dagen in december en de maanden in het vierde kwartaal van 2016 samen te voegen.

Herstel na langdurige fouten in gegevensstromen.

Incrementeel vernieuwen van gegevensstromen en gegevenssets

Het incrementeel vernieuwen van gegevensstromen en gegevenssets worden naast elkaar uitgevoerd. Het is acceptabel en ondersteund om een entiteit incrementeel te vernieuwen in een gegevensstroom, volledig geladen in een gegevensset of een volledig geladen entiteit in een gegevensstroom die incrementeel in een gegevensset is geladen.

Beide benaderingen werken volgens de opgegeven definities in de vernieuwingsinstellingen. Meer informatie: Incrementeel vernieuwen in Power BI Premium

Overwegingen en beperkingen

Incrementeel vernieuwen in Microsoft Power Platform gegevensstromen wordt alleen ondersteund in gegevensstromen met een Azure Data Lake Storage-account, niet in gegevensstromen met Dataverse als bestemming.

Zie ook

In dit artikel is incrementeel vernieuwen voor gegevensstromen beschreven. Hier zijn nog enkele artikelen die nuttig kunnen zijn:

U kunt de volgende artikelen lezen voor meer informatie over Power Query en geplande vernieuwing:

Voor meer informatie over Common Data Model kunt u het overzichtsartikel lezen: