Incrementele vernieuwing en realtimegegevens configureren

In dit artikel wordt beschreven hoe u incrementeel vernieuwen en realtime gegevens configureert voor semantische modellen. Zie Premium-functies van gegevensstromen - Incrementeel vernieuwen voor meer informatie over het configureren van incrementele vernieuwingen voor gegevensstromen.

Het configureren van incrementeel vernieuwen omvat het maken van RangeStart- en RangeEnd-parameters, het toepassen van filters en het definiëren van een incrementeel vernieuwingsbeleid. Nadat u naar de Power BI-service hebt gepubliceerd, voert u een initiële vernieuwingsbewerking uit op het model. De eerste vernieuwingsbewerking en volgende vernieuwingsbewerkingen passen het beleid voor incrementeel vernieuwen toe dat u hebt gedefinieerd. Voordat u deze stappen uitvoert, moet u de functionaliteit die wordt beschreven in Incrementeel vernieuwen en realtimegegevens voor semantische modellen volledig begrijpen.

Parameters maken

In deze taak gebruikt u Power Query-editor om de parameters RangeStart en RangeEnd te maken met standaardwaarden. De standaardwaarden zijn alleen van toepassing wanneer u de gegevens filtert die in het model in Power BI Desktop moeten worden geladen. De waarden die u invoert, moeten slechts een kleine hoeveelheid van de meest recente gegevens uit uw gegevensbron bevatten. Wanneer deze waarden voor het tijdsbereik naar de service worden gepubliceerd, worden deze waarden overschreven door het beleid voor incrementeel vernieuwen. Dat wil gezegd, het beleid maakt vensters van binnenkomende gegevens, een na een.

  1. Selecteer in Power BI Desktop gegevens transformeren op het lint Start om Power Query-editor te openen.

  2. Selecteer de vervolgkeuzelijst Parameters beheren en kies vervolgens Nieuwe parameter.

  3. Voer in het veld Naam RangeStart in (hoofdlettergevoelig). Selecteer in het veld Type datum/tijd in de vervolgkeuzelijst. Voer in het veld Huidige waarde een begin- en tijdwaarde in.

    Define the Range Start parameter in the Manage Parameters dialog.

  4. Selecteer Nieuw om een tweede parameter met de naam RangeEnd te maken. Selecteer in het veld Type de optie Datum/tijd en voer vervolgens in het veld Huidige waarde een einddatum- en tijdwaarde in. Selecteer OK.

    Define the Range End parameter in the Manage Parameters dialog.

Nu u de parameters RangeStart en RangeEnd hebt gedefinieerd, filtert u de gegevens die in het model moeten worden geladen op basis van deze parameters.

Gegevens filteren

Notitie

Voordat u doorgaat met deze taak, controleert u of de brontabel een datumkolom van het gegevenstype Datum/tijd heeft. Als deze geen datum/tijd-kolom heeft, maar wel een datumkolom met surrogaatsleutels voor gehele getallen in de vorm van yyyymmdd, volgt u de stappen in Datum/tijd converteren naar geheel getal verderop in dit artikel om een functie te maken waarmee de datum/tijd-waarde in de parameters wordt geconverteerd zodat deze overeenkomt met de surrogaatsleutel voor gehele getallen van de brontabel.

U past nu een filter toe op basis van voorwaarden in de parameters RangeStart en RangeEnd.

  1. Selecteer in Power Query-editor de datumkolom waarop u wilt filteren en kies vervolgens de vervolgkeuzepijl >Datumfilters>Aangepast filter.

  2. Als u in filterrijen de eerste voorwaarde wilt opgeven, selecteert u na of is na of gelijk is aan, kiest u Vervolgens Parameter en kiest u Vervolgens RangeStart.

    Als u de tweede voorwaarde wilt opgeven, is de tweede voorwaarde na de eerste voorwaarde, kiest u vóór of gelijk aan, of als u hebt geselecteerd na of gelijk is aan in de eerste voorwaarde, kiest u voor de tweede voorwaarde, kiest u Vervolgens Parameter en kiest u Vervolgens RangeEnd.

    Filter rows dialog showing Range Start and Range End conditions.

    Belangrijk: Controleer of query's gelijk zijn aan (=) in RangeStart of RangeEnd, maar niet beide. Als het gelijk aan (=) voor beide parameters bestaat, kan een rij voldoen aan de voorwaarden voor twee partities, wat kan leiden tot dubbele gegevens in het model. Kan bijvoorbeeld = Table.SelectRows(#"Changed Type", each [OrderDate] >= RangeStart and [OrderDate] <= RangeEnd) leiden tot dubbele gegevens als er een OrderDate is die gelijk is aan Zowel RangeStart als RangeEnd.

    Selecteer OK om te sluiten.

  3. Selecteer Sluiten en toepassen op het lint Start in Power Query-editor. Power Query laadt gegevens op basis van de filters die zijn gedefinieerd door de parameters RangeStart en RangeEnd en eventuele andere filters die u hebt gedefinieerd.

    Power Query laadt alleen gegevens die zijn opgegeven tussen de rangestart- en RangeEnd-parameters. Afhankelijk van de hoeveelheid gegevens in die periode, moet de tabel snel worden geladen. Als het traag en procesintensief lijkt, is het waarschijnlijk dat de query niet wordt gevouwen.

Beleid definiëren

Nadat u de parameters RangeStart en RangeEnd hebt gedefinieerd en gegevens hebt gefilterd op basis van deze parameters, definieert u een beleid voor incrementeel vernieuwen. Dit beleid wordt pas toegepast nadat het model naar de service is gepubliceerd en er een handmatige of geplande vernieuwingsbewerking wordt uitgevoerd.

  1. Klik in de gegevensweergave met de rechtermuisknop op een tabel in het deelvenster Gegevens en selecteer Incrementeel vernieuwen.

    Data view showing Table context menu with Incremental refresh selected.

  2. Controleer of selecteer de tabel in Incrementeel vernieuwen en realtime gegevens> selecteren. De standaardwaarde van het keuzelijstvak Tabel selecteren is de tabel die u hebt geselecteerd in de gegevensweergave.

  3. Geef de vereiste instellingen op:

    Verplaats de schuifregelaar in Import- en vernieuwingsbereiken>incrementeel vernieuwen naar Aan. Als de schuifregelaar is uitgeschakeld, betekent dit dat de Power Query-expressie voor de tabel geen filter bevat op basis van de parameters RangeStart en RangeEnd.

    Geef bij Het starten van archiefgegevens de historische opslagperiode op die u wilt opnemen in het model. Alle rijen met datums in deze periode worden in het model in de service geladen, tenzij andere filters van toepassing zijn.

    Geef bij Incrementeel vernieuwen van gegevens de vernieuwingsperiode op. Alle rijen met datums in deze periode worden telkens vernieuwd in het model wanneer een handmatige of geplande vernieuwingsbewerking wordt uitgevoerd door de Power BI-service.

  4. Geef optionele instellingen op:

    Selecteer in Optionele instellingen kiezen de optie De meest recente gegevens in realtime ophalen met DirectQuery (alleen Premium) om de meest recente gegevenswijzigingen op te nemen die na de laatste vernieuwingsperiode in de gegevensbron zijn opgetreden. Deze instelling zorgt ervoor dat het beleid voor incrementeel vernieuwen een DirectQuery-partitie toevoegt aan de tabel.

    Selecteer Alleen volledige dagen vernieuwen om alleen hele dagen te vernieuwen. Als de vernieuwingsbewerking detecteert dat een dag niet is voltooid, worden rijen voor die hele dag niet vernieuwd. Deze optie wordt automatisch ingeschakeld wanneer u de meest recente gegevens in realtime ophalen selecteert met DirectQuery (alleen Premium).

    Selecteer Gegevenswijzigingen detecteren om een datum-/tijdkolom op te geven die wordt gebruikt om alleen de dagen te identificeren waarop de gegevens zijn gewijzigd. Er moet een datum-/tijdkolom bestaan, meestal voor controledoeleinden, in de gegevensbron. Deze kolom mag niet dezelfde kolom zijn die wordt gebruikt om de gegevens te partitioneren met de parameters RangeStart en RangeEnd. De maximumwaarde van deze kolom wordt geëvalueerd voor elk van de perioden in het incrementele bereik. Als deze niet is gewijzigd sinds de laatste vernieuwing, wordt de huidige periode niet vernieuwd. Voor modellen die zijn gepubliceerd naar Premium-capaciteiten, kunt u ook een aangepaste query opgeven. Zie Geavanceerde incrementele vernieuwing: aangepaste query's voor het detecteren van gegevenswijzigingen voor meer informatie.

    Afhankelijk van uw instellingen moet uw beleid er ongeveer als volgt uitzien:

    Incremental refresh and real-time data policy dialog showing incremental refresh range.

  5. Controleer uw instellingen en selecteer Toepassen om het vernieuwingsbeleid te voltooien. Met deze stap worden geen gegevens geladen.

Opslaan en publiceren naar de service

Nu uw RangeStart- en RangeEnd-parameters, filteren en vernieuwen van beleidsinstellingen zijn voltooid, slaat u uw model op en publiceert u vervolgens naar de service. Als uw model groot wordt, moet u de opslagindelingvoor grote modellen inschakelen voordat u de eerste vernieuwing in de service aanroept.

Model vernieuwen

Vernieuw het model in de service. Tijdens de eerste vernieuwing worden zowel nieuwe als bijgewerkte gegevens in de vernieuwingsperiode geladen, evenals historische gegevens voor de hele opslagperiode. Afhankelijk van de hoeveelheid gegevens kan deze vernieuwing enige tijd duren. Latere vernieuwingen, handmatig of gepland, zijn doorgaans veel sneller omdat het beleid voor incrementeel vernieuwen wordt toegepast en alleen gegevens voor de periode die is opgegeven in de beleidsinstelling voor vernieuwen worden vernieuwd.

Datum/tijd converteren naar geheel getal

Deze taak is alleen vereist als uw tabel surrogaatsleutels voor gehele getallen gebruikt in plaats van datum-/tijdwaarden in de datumkolom die u gebruikt voor de filterdefinitie RangeStart en RangeEnd.

Het gegevenstype van de parameters RangeStart en RangeEnd moet van het gegevenstype datum/tijd zijn, ongeacht het gegevenstype van de datumkolom. Voor veel gegevensbronnen hebben tabellen echter geen kolom met datum-/tijdgegevenstype, maar in plaats daarvan een datumkolom met surrogaatsleutels voor gehele getallen in de vorm van yyyymmdd. Normaal gesproken kunt u deze surrogaatsleutels voor gehele getallen niet converteren naar het gegevenstype Datum/tijd, omdat het resultaat een niet-vouwbare query-expressie zou zijn, maar u kunt een functie maken waarmee de datum/tijd-waarde in de parameters wordt geconverteerd om overeen te komen met de surrogaatsleutel voor gehele getallen van de gegevensbrontabel zonder dat de vouwbaarheid verloren gaat. De functie wordt vervolgens aangeroepen in een filterstap. Deze conversiestap is vereist als de gegevensbrontabel alleen een surrogaatsleutel als geheel getal bevat.

  1. Selecteer op hetlint Start in Power Query-editor de vervolgkeuzelijst Nieuwe bron en kies vervolgens Lege query.

  2. Voer in Query Instellingen een naam in, bijvoorbeeld DateKey, en voer vervolgens in de formule-editor de volgende formule in:

    = (x as datetime) => Date.Year(x)*10000 + Date.Month(x)*100 + Date.Day(x)

    Power BI function editor showing the integer surrogate DateKey function.

  3. Als u de formule wilt testen, voert u in Parameter invoeren een datum/tijd-waarde in en selecteert u Aanroepen. Als de formule juist is, wordt een geheel getal voor de datum geretourneerd. Nadat u dit hebt gecontroleerd, verwijdert u deze nieuwe aangeroepen functiequery .

  4. Selecteer in Query's de tabel en bewerk vervolgens de queryformule om de functie aan te roepen met de parameters RangeStart en RangeEnd.

    = Table.SelectRows(#"Reordered Column OrderDateKey", each [OrderDateKey] > DateKey(RangeStart) and [OrderDateKey] <= DateKey(RangeEnd))

    Power BI table showing DateKey filter.