Konfigurer trinvis opdatering og data i realtid

I denne artikel beskrives det, hvordan du konfigurerer trinvis opdatering og data i realtid for semantiske modeller. Hvis du vil vide mere om konfiguration af trinvis opdatering af dataflow, skal du se Premium-funktioner for dataflow – trinvis opdatering.

Konfiguration af trinvis opdatering omfatter oprettelse af parametrene RangeStart og RangeEnd, anvendelse af filtre og definition af en trinvis opdateringspolitik. Når du har publicet på Power BI-tjeneste, skal du udføre en indledende opdateringshandling på modellen. Den indledende opdateringshandling og efterfølgende opdateringshandlinger anvender den trinvise opdateringspolitik, du har defineret. Før du fuldfører disse trin, skal du sikre dig, at du fuldt ud forstår den funktionalitet, der er beskrevet i Trinvis opdatering og data i realtid for semantiske modeller.

Opret parametre

I denne opgave skal du bruge Power Query-editor til at oprette parametrene RangeStart og RangeEnd med standardværdier. Standardværdierne gælder kun, når du filtrerer de data, der skal indlæses i modellen i Power BI Desktop. De værdier, du angiver, bør kun indeholde en lille mængde af de nyeste data fra datakilden. Når disse værdier for tidsintervaller publiceres til tjenesten, tilsidesættes de af politikken for trinvis opdatering. Det vil altså være, at politikken opretter vinduer med indgående data, én efter en.

  1. I Power BI Desktop skal du vælge Transformér databåndet Hjem for at åbne Power Query-editor.

  2. Vælg rullelisten Administrer parametre, og vælg derefter Ny parameter.

  3. I feltet Navn skal du skrive RangeStart (forskel på store og små bogstaver). I feltet Type skal du vælge Dato/klokkeslæt på rullelisten. Angiv en værdi for startdato og klokkeslæt i feltet Aktuel værdi .

    Define the Range Start parameter in the Manage Parameters dialog.

  4. Vælg Ny for at oprette en anden parameter med navnet RangeEnd. Vælg Dato/klokkeslæt i feltet Type, og angiv derefter en slutdato- og klokkeslætsværdi i feltet Aktuel værdi. Vælg OK.

    Define the Range End parameter in the Manage Parameters dialog.

Nu, hvor du har defineret parametrene RangeStart og RangeEnd, skal du filtrere de data, der skal indlæses i modellen, baseret på disse parametre.

Filtrer data

Bemærk

Før du fortsætter med denne opgave, skal du kontrollere, at kildetabellen har en datokolonne med datatypen Dato/klokkeslæt. Hvis den ikke har en dato-/klokkeslætskolonne, men har en datokolonne med heltals surrogatnøgler i form af yyyymmdd, skal du følge trinnene i Konvertér DateTime til heltal senere i denne artikel for at oprette en funktion, der konverterer dato-/klokkeslætsværdien i parametrene, så den svarer til kildetabellens heltals surrogatnøgle.

Du skal nu anvende et filter baseret på betingelser i parametrene RangeStart og RangeEnd.

  1. I Power Query-editor skal du vælge den datokolonne, du vil filtrere efter, og derefter vælge rullepilen >Datofiltre>Brugerdefineret filter.

  2. Hvis du vil angive den første betingelse i Filterrækker, skal du vælge er efter eller er efter eller lig med, derefter vælge Parameter og derefter vælge RangeStart.

    Hvis du vil angive den anden betingelse, hvis du har valgt er efter i den første betingelse, skal du vælge er før eller lig med, eller hvis du har valgt er efter eller lig med i den første betingelse, skal du vælge er før for den anden betingelse og derefter vælge Parameter og derefter vælge RangeEnd.

    Filter rows dialog showing Range Start and Range End conditions.

    Vigtigt! Kontrollér, at forespørgsler er lig med (=) på enten RangeStart eller RangeEnd, men ikke begge dele. Hvis lig med (=) findes på begge parametre, kan en række opfylde betingelserne for to partitioner, hvilket kan føre til dublerede data i modellen. Det kan f.eks. resultere i dublerede data, = Table.SelectRows(#"Changed Type", each [OrderDate] >= RangeStart and [OrderDate] <= RangeEnd) hvis der er en OrderDate, der er lig med både RangeStart og RangeEnd.

    Vælg OK for at lukke.

  3. På båndet Hjem i Power Query-editor skal du vælge Luk og anvend. Power Query indlæser data baseret på de filtre, der er defineret af parametrene RangeStart og RangeEnd og eventuelle andre filtre, du har defineret.

    Power Query indlæser kun data, der er angivet mellem parametrene RangeStart og RangeEnd. Afhængigt af mængden af data i den pågældende periode skal tabellen indlæses hurtigt. Hvis det virker langsomt og proceskrævende, er det sandsynligt , at forespørgslen ikke foldes.

Definer politik

Når du har defineret parametrene RangeStart og RangeEnd og filtrerede data baseret på disse parametre, skal du definere en politik for trinvis opdatering. Denne politik anvendes kun, når modellen er publiceret til tjenesten, og der udføres en manuel eller planlagt opdateringshandling.

  1. Højreklik på en tabel i ruden Data i datavisning, og vælg Trinvis opdatering.

    Data view showing Table context menu with Incremental refresh selected.

  2. I Trinvis opdatering og data>i realtid Vælg tabel skal du bekræfte eller vælge tabellen. Standardværdien for listen Vælg tabel er den tabel, du har valgt i Datavisning.

  3. Angiv påkrævede indstillinger:

    I Angiv import- og opdateringsområder>skal du opdatere denne tabel trinvist og flytte skyderen til Til. Hvis skyderen er deaktiveret, betyder det, at Power Query-udtrykket for tabellen ikke indeholder et filter, der er baseret på parametrene RangeStart og RangeEnd.

    I Arkivér data, der starter, skal du angive den historiske lagringsperiode , du vil medtage i modellen. Alle rækker med datoer i denne periode indlæses i modellen i tjenesten, medmindre der anvendes andre filtre.

    I Start af trinvis opdatering af data skal du angive opdateringsperioden . Alle rækker med datoer i denne periode opdateres i modellen, hver gang en manuel eller planlagt opdateringshandling udføres af Power BI-tjeneste.

  4. Angiv valgfrie indstillinger:

    I Vælg valgfrie indstillinger skal du vælge Hent de nyeste data i realtid med DirectQuery (kun Premium) for at inkludere de seneste dataændringer, der opstod i datakilden efter den seneste opdateringsperiode. Denne indstilling medfører, at politikken for trinvis opdatering føjer en DirectQuery-partition til tabellen.

    Vælg Opdater kun hele dage for kun at opdatere hele dage. Hvis opdateringshandlingen registrerer, at en dag ikke er fuldført, opdateres rækker for den pågældende hele dag ikke. Denne indstilling aktiveres automatisk, når du vælger Hent de nyeste data i realtid med DirectQuery (kun Premium).

    Vælg Registrer dataændringer for at angive en dato-/klokkeslætskolonne, der kun bruges til at identificere og opdatere de dage, hvor dataene er blevet ændret. Der skal findes en dato-/klokkeslætskolonne, som normalt bruges til overvågning, i datakilden. Denne kolonne må ikke være den samme kolonne , der bruges til at partitionere dataene med parametrene RangeStart og RangeEnd. Den maksimale værdi for denne kolonne evalueres for hver af perioderne i det trinvise interval. Hvis den ikke er ændret siden den seneste opdatering, opdateres den aktuelle periode ikke. For modeller, der er publiceret til Premium-kapaciteter, kan du også angive en brugerdefineret forespørgsel. Du kan få mere at vide under Avanceret trinvis opdatering – Brugerdefinerede forespørgsler til registrering af dataændringer.

    Afhængigt af dine indstillinger skal din politik se nogenlunde sådan ud:

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

  5. Gennemse dine indstillinger, og vælg derefter Anvend for at fuldføre opdateringspolitikken. Dette trin indlæser ikke data.

Gem og publicer til tjenesten

Nu, hvor parametrene RangeStart og RangeEnd, filtrering og opdatering af politikindstillinger er fuldført, skal du gemme din model og derefter publicere til tjenesten. Hvis din model bliver stor, skal du sørge for at aktivere lagringsformatetStore modeller, før du aktiverer den første opdatering i tjenesten.

Opdater model

Opdater modellen i tjenesten. Den første opdatering indlæser både nye og opdaterede data i opdateringsperioden samt historiske data for hele butiksperioden. Afhængigt af mængden af data kan denne opdatering tage et stykke tid. Efterfølgende opdateringer, uanset om de er manuelle eller planlagte, er typisk meget hurtigere, fordi politikken for trinvis opdatering anvendes, og kun data for den periode, der er angivet i opdateringspolitikindstillingen, opdateres.

Konvertér DateTime til heltal

Denne opgave er kun påkrævet, hvis tabellen bruger heltals surrogatnøgler i stedet for dato-/klokkeslætsværdier i den datokolonne, du bruger til filterdefinitionen RangeStart og RangeEnd.

Datatypen for parametrene RangeStart og RangeEnd skal være af datatypen dato/klokkeslæt, uanset datokolonnens datatype. For mange datakilder har tabeller dog ikke en kolonne med datatypen dato/klokkeslæt, men har i stedet en datokolonne med heltals surrogatnøgler i form af yyyymmdd. Du kan typisk ikke konvertere disse heltals surrogatnøgler til datatypen Dato/klokkeslæt, fordi resultatet vil være et forespørgselsudtryk, der ikke kan foldes, men du kan oprette en funktion, der konverterer dato-/klokkeslætsværdien i parametrene, så den svarer til heltals surrogatnøglen i datakildetabellen uden at miste foldbarheden. Funktionen kaldes derefter i et filtertrin. Dette konverteringstrin er påkrævet, hvis datakildetabellen kun indeholder en surrogatnøgle som heltalsdatatype.

  1. På båndet Hjem i Power Query-editor skal du vælge rullelisten Ny kilde og derefter vælge Tom forespørgsel.

  2. I Query Indstillinger skal du angive et navn, f.eks. DateKey, og derefter angive følgende formel i formeleditoren:

    = (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. Hvis du vil teste formlen, skal du angive en dato-/klokkeslætsværdi i Angiv parameter og derefter vælge Aktivér. Hvis formlen er korrekt, returneres der en heltalsværdi for datoen. Når du har bekræftet, skal du slette denne nye forespørgsel om aktiveret funktion .

  4. I Forespørgsler skal du vælge tabellen og derefter redigere forespørgselsformlen for at kalde funktionen med parametrene RangeStart og RangeEnd.

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

    Power BI table showing DateKey filter.