Konfigurácia prírastkového obnovenia a údajov v reálnom čase

Tento článok popisuje, ako nakonfigurovať prírastkové obnovenie a údaje v reálnom čase pre sémantické modely. Ďalšie informácie o konfigurácii prírastkového obnovenia pre toky údajov nájdete v téme Prémiové funkcie tokov údajov – prírastkové obnovenie.

Konfigurácia prírastkového obnovenia zahŕňa vytvorenie parametrov RangeStart a RangeEnd, použitie filtrov a definovanie politiky prírastkového obnovenia. Po publikovaní do služba Power BI vykonáte v modeli počiatočnú operáciu obnovenia. Počiatočná operácia obnovenia a následné operácie obnovenia použijú politiku prírastkového obnovenia, ktorú ste definovali. Pred dokončením týchto krokov sa uistite, že plne chápete funkcie popísané v téme Prírastkové obnovenie a údaje v reálnom čase pre sémantické modely.

Vytvorenie parametrov

V tejto úlohe budete používať Editor Power Query na vytvorenie parametrov RangeStart a RangeEnd s predvolenými hodnotami. Predvolené hodnoty platia iba pri filtrovaní údajov, ktoré sa majú načítať do modelu v aplikácii Power BI Desktop. Vami zadávané hodnoty by mali obsahovať len malé množstvo najnovších údajov zo zdroja údajov. Pri publikovaní do služby sa tieto hodnoty časového rozsahu prepíšu politikou prírastkového obnovenia. To znamená, že politika vytvára okná prichádzajúcich údajov, jeden za druhým.

  1. V aplikácii Power BI Desktop výberom položky Transformovať údaje na páse s nástrojmi Domov otvorte Editor Power Query.

  2. Vyberte rozbaľovací zoznam Spravovať parametre a potom vyberte položku Nový parameter.

  3. Do poľa Názov zadajte rangeStart (rozlišujú sa veľké a malé písmená). V poli Typ vyberte v rozbaľovacom zozname položku Dátum a čas. Do poľa Aktuálna hodnota zadajte počiatočnú hodnotu dátumu a času.

    Define the Range Start parameter in the Manage Parameters dialog.

  4. Ak chcete vytvoriť druhý parameter s názvom RangeEnd, vyberte položku Nové. V poli Typ vyberte položku Dátum a čas a potom do poľa Aktuálna hodnota zadajte koncový dátum a čas. Vyberte položku OK.

    Define the Range End parameter in the Manage Parameters dialog.

Teraz, keď ste už definovali parametre RangeStart a RangeEnd, vyfiltrujete údaje, ktoré sa majú načítať do modelu na základe týchto parametrov.

Filtrovanie údajov

Poznámka

Skôr než budete pokračovať v tejto úlohe, overte, či zdrojová tabuľka obsahuje stĺpec dátumu a času typu údajov. Ak neobsahuje stĺpec Dátum a čas, ale obsahuje stĺpec dátumov celých náhradných yyyymmddkľúčov vo forme , pomocou krokov v časti Konvertovanie dátumu a času na celé číslo ďalej v tomto článku vytvorte funkciu, ktorá skonvertuje hodnotu dátumu a času v parametroch tak, aby zodpovedala celému náhradnému kľúču zdrojovej tabuľky.

Teraz použijete filter založený na podmienkach v parametroch RangeStart a RangeEnd.

  1. V Editor Power Query vyberte stĺpec dátumov, podľa ktorému chcete filtrovať, a potom vyberte šípku rozbaľovacieho zoznamu Filtre >dátumov>Vlastný filter.

  2. Ak chcete v časti Filtrovať riadky zadať prvú podmienku, vyberte možnosť je po alebo je po alebo rovná sa, potom vyberte položku Parameter a potom položku RangeStart.

    Ak chcete zadať druhú podmienku, ak ste vybrali možnosť po hodnote po v prvej podmienke, vyberte hodnotu pred alebo rovná sa alebo ak ste vybrali hodnotu po alebo rovná sa hodnote v prvej podmienke, potom vyberte pre druhú podmienku možnosť Parameter a potom vyberte položku RangeEnd.

    Filter rows dialog showing Range Start and Range End conditions.

    Dôležité: Overte, či sa dotazy rovnajú (=) buď v parametri RangeStart, alebo v parametri RangeEnd, ale nie v oboch. Ak v oboch parametroch existuje hodnota rovná sa (=), riadok môže spĺňať podmienky pre dve oblasti, čo môže viesť k duplicitným údajom v modeli. Duplicitné údaje môžu viesť napríklad vtedy, = Table.SelectRows(#"Changed Type", each [OrderDate] >= RangeStart and [OrderDate] <= RangeEnd) ak existuje DátumObjednávky, ktorý sa rovná oboch parametrom RangeStart a RangeEnd.

    Ak chcete zavrieť, vyberte položku OK .

  3. Na páse s nástrojmi Domov v Editor Power Query vyberte položku Zavrieť a použiť. Power Query načíta údaje na základe filtrov definovaných parametrami RangeStart a RangeEnd a všetkých ďalších filtrov, ktoré ste definovali.

    Power Query načíta iba údaje zadané medzi parametrami RangeStart a RangeEnd. V závislosti od množstva údajov v danom období by sa tabuľka mala rýchlo načítať. Ak sa to zdá pomalé a procesne náročné, je pravdepodobné, že dotaz sa neskladá.

Definovanie politiky

Po definovaní parametrov RangeStart a RangeEnd a filtrovaní údajov na základe týchto parametrov definujete politiku prírastkového obnovenia. Táto politika sa použije iba po publikovaní modelu v službe a po vykonaní manuálneho alebo plánovaného obnovenia.

  1. V zobrazení údajov kliknite pravým tlačidlom myši na tabuľku na table Údaje a vyberte položku Prírastkové obnovenie.

    Data view showing Table context menu with Incremental refresh selected.

  2. V časti Prírastkové obnovenie a údaje>v reálnom čase vyberte tabuľku, overte alebo vyberte tabuľku. Predvolená hodnota zoznamu Vybrať tabuľku je tabuľka, ktorú ste vybrali v zobrazení údajov.

  3. Zadajte požadované nastavenia:

    V časti Nastavenie importu a obnovenia rozsahy>Prírastkové obnovenie tejto tabuľky posuňte jazdec do polohy Zapnuté. Ak je jazdec zakázaný, znamená to, že výraz Power Query pre tabuľku neobsahuje filter založený na parametroch RangeStart a RangeEnd.

    Začnite s archivovanými údajmi a zadajte obdobie historického úložiska , ktoré chcete do modelu zahrnúť. Všetky riadky s dátumami v tomto období sa načítajú do modelu v službe, pokiaľ nebudú použité iné filtre.

    V položke Prírastkové obnovenie údajov na začiatku zadajte obdobie obnovenia . Všetky riadky s dátumami v tomto období sa obnovia v modeli vždy, keď služba Power BI vykoná manuálnu alebo plánovanú operáciu obnovenia.

  4. Zadajte voliteľné nastavenia:

    V ponuke Vybrať voliteľné nastavenia vyberte možnosť Získať najnovšie údaje v reálnom čase pomocou režimu DirectQuery (iba verzia Premium), aby sa zahrnuli najnovšie zmeny údajov, ktoré nastali v zdroji údajov po poslednom období obnovenia. Toto nastavenie spôsobí, že politika prírastkového obnovenia pridá do tabuľky oblasť DirectQuery.

    Vyberte položku Obnoviť iba dokončené dni , aby sa obnovilo iba celé dni. Ak operácia obnovenia zistí, že deň nie je úplný, riadky za daný deň sa neobnovia. Táto možnosť sa automaticky povolí, keď vyberiete možnosť Získať najnovšie údaje v reálnom čase pomocou režimu DirectQuery (len verzia Premium).

    Vyberte položku Zistiť zmeny údajov a zadajte stĺpec dátumu a času, ktorý sa použije na identifikáciu a obnovenie iba dní, počas ktorých sa údaje zmenili. Stĺpec dátumu a času musí v zdroji údajov existovať, zvyčajne na účely auditovania. Tento stĺpec by nemal byť rovnaký stĺpec , ktorý sa používa na rozdelenie údajov s parametrami RangeStart a RangeEnd. Maximálna hodnota tohto stĺpca sa vyhodnotí pre každé obdobie v prírastkovom rozsahu. Ak sa od posledného obnovenia nezmenila, aktuálne obdobie sa neobnovuje. V prípade modelov publikovaných do kapacít Premium môžete tiež zadať vlastný dotaz. Ďalšie informácie nájdete v téme Rozšírené prírastkové obnovenie – vlastné dotazy na zisťovanie zmien údajov.

    V závislosti od nastavení by vaša politika mala vyzerať približne takto:

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

  5. Skontrolujte nastavenia a potom výberom položky Použiť dokončite politiku obnovovania. Tento krok nenačíta údaje.

Uloženie a publikovanie v službe

Teraz, keď sú parametre politiky RangeStart a RangeEnd dokončené, nastavenia politiky filtrovania a obnovenia, uložte model a potom publikujte v službe. Ak sa váš model zväčší, pred vyvolaním prvého obnovenia v službe nezabudnite povoliť formátúložiska Pre veľký model.

Obnoviť model

V službe obnovte model. Pri prvom obnovení sa načítajú nové aj aktualizované údaje v období obnovenia, ako aj historické údaje za celé obdobie ukladacieho priestoru. V závislosti od množstva údajov môže toto obnovenie trvať pomerne dlho. Následné obnovenia, či už manuálne alebo plánované, sú zvyčajne oveľa rýchlejšie, pretože sa použije politika prírastkového obnovenia a obnovia sa len údaje za obdobie zadané v nastavení politiky obnovenia.

Konverzia hodnoty DateTime na celé číslo

Táto úloha sa vyžaduje len vtedy, ak tabuľka používa náhradné kľúče celého čísla namiesto hodnôt dátumu a času v stĺpci dátumov, ktorý používate pre definíciu filtra RangeStart a RangeEnd.

Typ údajov parametrov RangeStart a RangeEnd musí byť typu údajov dátumu a času bez ohľadu na typ údajov stĺpca dátumu. V prípade mnohých zdrojov údajov však tabuľky nemajú stĺpec typu údajov dátumu a času, ale namiesto toho majú stĺpec dátumov celých čísel náhradných yyyymmddkľúčov vo forme . Tieto celočíselné náhradné kľúče zvyčajne nie je možné konvertovať na typ údajov Dátum a čas, pretože výsledkom by bol výraz ne skladacieho dotazu. Môžete však vytvoriť funkciu, ktorá konvertuje hodnoty dátumu a času v parametroch tak, aby zodpovedala celočíselnému náhradnému kľúču tabuľky zdroja údajov bez straty skladateľnosti. Funkcia sa potom zavolá v kroku filtra. Tento krok konverzie sa vyžaduje, ak tabuľka zdroja údajov obsahuje ako celočíselný typ údajov iba náhradný kľúč.

  1. Na páse s nástrojmi Domov v Editor Power Query vyberte rozbaľovací zoznam Nový zdroj a potom vyberte položku Prázdny dotaz.

  2. Do Nastavenia dotazu zadajte názov, napríklad KódDátumu, a potom do editora vzorcov zadajte nasledujúci vzorec:

    = (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. Ak chcete otestovať vzorec, do poľa Zadajte parameter zadajte hodnotu dátumu a času a potom vyberte položku Vyvolať. Ak je vzorec správny, vráti sa celočíselná hodnota dátumu. Po overení odstráňte tento nový dotaz Vyvolaná funkcia .

  4. V časti Dotazy vyberte tabuľku a potom upravte vzorec dotazu a zavolajte funkciu s parametrami RangeStart a RangeEnd.

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

    Power BI table showing DateKey filter.