Konfigurace přírůstkové aktualizace a dat v reálném čase

Tento článek popisuje, jak nakonfigurovat přírůstkovou aktualizaci a data v reálném čase pro sémantické modely. Další informace o konfiguraci přírůstkové aktualizace pro toky dat najdete v tématu Premium funkce toků dat – přírůstková aktualizace.

Konfigurace přírůstkové aktualizace zahrnuje vytváření parametrů RangeStart a RangeEnd, použití filtrů a definování zásad přírůstkové aktualizace. Po publikování do služba Power BI provedete v modelu počáteční operaci aktualizace. Operace počáteční aktualizace a následné operace aktualizace použijí zásadu přírůstkové aktualizace, kterou jste definovali. Před dokončením těchto kroků se ujistěte, že plně rozumíte funkcím popsaným v přírůstkové aktualizaci a datech v reálném čase pro sémantické modely.

Vytvoření parametrů

V této úloze použijete Editor Power Query k vytvoření parametrů RangeStart a RangeEnd s výchozími hodnotami. Výchozí hodnoty platí jenom při filtrování dat, která se mají načíst do modelu v Power BI Desktopu. Zadané hodnoty by měly obsahovat jenom malé množství nejnovějších dat ze zdroje dat. Při publikování do služby se tyto hodnoty časového rozsahu přepíše zásadami přírůstkové aktualizace. To znamená, že zásada vytváří okna příchozích dat, jedna za druhou.

  1. V Power BI Desktopu výběrem možnosti Transformovat data na pásu karet Domů otevřete Editor Power Query.

  2. Vyberte rozevírací seznam Spravovat parametry a pak zvolte Nový parametr.

  3. Do pole Název zadejte RangeStart (rozlišují se malá a velká písmena). V poli Typ vyberte v rozevíracím seznamu datum a čas. Do pole Aktuální hodnota zadejte počáteční datum a čas.

    Define the Range Start parameter in the Manage Parameters dialog.

  4. Výběrem možnosti Nový vytvořte druhý parametr s názvem RangeEnd. V poli Typ vyberte Datum a čas a potom do pole Aktuální hodnota zadejte koncové datum a čas. Vyberte OK.

    Define the Range End parameter in the Manage Parameters dialog.

Teď, když jste definovali parametry RangeStart a RangeEnd, vyfiltrujete data, která se mají načíst do modelu, na základě těchto parametrů.

Filtrování dat

Poznámka:

Než budete pokračovat v tomto úkolu, ověřte, že zdrojová tabulka obsahuje sloupec kalendářních dat datového typu Datum a čas. Pokud sloupec Datum a čas nemá, ale obsahuje sloupec kalendářních dat s celočíselnou náhradními klíči ve formě yyyymmdd, postupujte podle kroků v části Převod data a času na celé číslo dále v tomto článku a vytvořte funkci, která převede hodnotu data a času v parametrech tak, aby odpovídala celočíselnému náhradnímu klíči zdrojové tabulky.

Teď použijete filtr na základě podmínek v parametrech RangeStart a RangeEnd.

  1. V Editor Power Query vyberte sloupec kalendářního data, podle kterého chcete filtrovat, a pak zvolte šipku >rozevíracího seznamu Filtry>vlastních filtrů kalendářních dat.

  2. Chcete-li zadat první podmínku, vyberte v části Řádky filtru první podmínku, která je za nebo je za nebo je rovna, pak zvolte Parametr a pak zvolte RangeStart.

    Chcete-li zadat druhou podmínku, je-li vybrána za první podmínkou, zvolte před nebo rovno, nebo pokud je vybrána za nebo rovno v první podmínce, zvolte před druhou podmínkou, pak zvolte Parametr a pak zvolte RangeEnd.

    Filter rows dialog showing Range Start and Range End conditions.

    Důležité: Ověřte, že dotazy mají stejnou hodnotu (=) v RangeStartu nebo RangeEndu, ale ne na obou. Pokud argument rovná se (=) existuje u obou parametrů, řádek by mohl splňovat podmínky pro dva oddíly, což by mohlo vést k duplicitním datům v modelu. Může například vést k duplicitním datům, = Table.SelectRows(#"Changed Type", each [OrderDate] >= RangeStart and [OrderDate] <= RangeEnd) pokud je datumObjednávky, které se rovná RangeStart i RangeEnd.

    Zavřete kliknutím na tlačítko OK .

  3. Na pásu karet Domů v Editor Power Query vyberte Zavřít a použít. Power Query načte data na základě filtrů definovaných parametry RangeStart a RangeEnd a všech dalších filtrů, které jste definovali.

    Power Query načte pouze data zadaná mezi parametry RangeStart a RangeEnd. V závislosti na množství dat v daném období by se tabulka měla rychle načíst. Pokud se zdá, že je pomalý a náročný na procesy, je pravděpodobné , že se dotaz nepřeloží.

Definování zásad

Po definování parametrů RangeStart a RangeEnd a filtrovaných dat na základě těchto parametrů definujete zásadu přírůstkové aktualizace. Tato zásada se použije až po publikování modelu do služby a provede se ruční nebo plánovaná operace aktualizace.

  1. V zobrazení Dat klikněte pravým tlačítkem myši na tabulku v podokně Data a vyberte Přírůstková aktualizace.

    Data view showing Table context menu with Incremental refresh selected.

  2. V části Přírůstková aktualizace a data>v reálném čase Vyberte tabulku, ověřte nebo vyberte tabulku. Výchozí hodnota seznamu Vybrat tabulku je tabulka, kterou jste vybrali v zobrazení Data.

  3. Zadejte požadovaná nastavení:

    V části Nastavit rozsahy>importu a aktualizace Přírůstková aktualizace této tabulky přesuňte posuvník na Zapnuto. Pokud je posuvník zakázaný, znamená to, že výraz Power Query pro tabulku neobsahuje filtr založený na parametrech RangeStart a RangeEnd.

    V části Archivovat data začínající zadejte období historického úložiště , které chcete zahrnout do modelu. Všechny řádky s kalendářními daty v tomto období se načtou do modelu ve službě, pokud nepoužijí jiné filtry.

    V datech přírůstkové aktualizace zadejte období aktualizace . Všechny řádky s kalendářními daty v tomto období se v modelu aktualizují pokaždé, když služba Power BI provede ruční nebo plánovanou operaci aktualizace.

  4. Zadejte volitelná nastavení:

    V části Zvolit volitelná nastavení vyberte Získat nejnovější data v reálném čase pomocí DirectQuery (jenom Premium), abyste zahrnuli nejnovější změny dat, ke kterým došlo ve zdroji dat po posledním období aktualizace. Toto nastavení způsobí, že zásady přírůstkové aktualizace přidají do tabulky oddíl DirectQuery.

    Chcete-li aktualizovat pouze celé dny, vyberte Aktualizovat pouze celé dny. Pokud operace aktualizace zjistí, že den není dokončený, řádky pro tento den se neaktualizuje. Tato možnost se automaticky povolí, když vyberete Získat nejnovější data v reálném čase pomocí DirectQuery (jenom Premium).

    Vyberte Možnost Zjistit změny dat a zadejte sloupec data a času, který se používá k identifikaci a aktualizaci pouze dnů, ve kterých se data změnila. Ve zdroji dat musí existovat sloupec data a času, obvykle pro účely auditování. Tento sloupec by neměl být stejný sloupec použitý k rozdělení dat pomocí parametrů RangeStart a RangeEnd. Maximální hodnota tohoto sloupce se vyhodnotí pro každé období v přírůstkovém rozsahu. Pokud se od poslední aktualizace nezměnila, aktuální období se neaktualizuje. U modelů publikovaných do kapacit Premium můžete také zadat vlastní dotaz. Další informace najdete v tématu Pokročilá přírůstková aktualizace – vlastní dotazy pro detekci změn dat.

    V závislosti na nastavení by vaše zásady měly vypadat nějak takto:

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

  5. Zkontrolujte nastavení a pak vyberte Použít a dokončete zásady aktualizace. Tento krok nenačte data.

Uložení a publikování do služby

Teď, když jsou parametry RangeStart a RangeEnd, filtrování a aktualizace zásad dokončené, uložte model a pak publikujte do služby. Pokud bude váš model velký, nezapomeňte před vyvoláním první aktualizace ve službě povolit formát velkého úložiště modelu.

Aktualizovat model

Ve službě aktualizujte model. První aktualizace načte nová i aktualizovaná data v období aktualizace i historická data pro celé období úložiště. V závislosti na množství dat může tato aktualizace nějakou dobu trvat. Následné aktualizace, ať už ruční nebo naplánované, jsou obvykle mnohem rychlejší, protože se použijí zásady přírůstkové aktualizace a aktualizují se pouze data za období zadané v nastavení zásad aktualizace.

Převod data a času na celé číslo

Tento úkol je povinný pouze v případě, že tabulka používá celočíselné náhradní klíče místo hodnot data a času ve sloupci kalendářního data, který používáte pro definici filtru RangeStart a RangeEnd.

Datový typ parametrů RangeStart a RangeEnd musí být datový typ datum a čas bez ohledu na datový typ sloupce kalendářního data. U mnoha zdrojů dat však tabulky nemají sloupec datového typu datum a čas, ale místo toho mají sloupec kalendářních dat s celočíselnou náhradními klíči ve formě yyyymmdd. Tyto celočíselné náhradní klíče obvykle nemůžete převést na datový typ Datum a čas, protože výsledkem by byl výraz dotazu bez posouvání, ale můžete vytvořit funkci, která převede hodnotu data a času v parametrech tak, aby odpovídala celočíselnému náhradnímu klíči tabulky zdroje dat bez ztráty přeložení. Funkce se pak volá v kroku filtru. Tento krok převodu je povinný, pokud tabulka zdroje dat obsahuje pouze náhradní klíč jako celočíselné datové typy.

  1. Na pásu karet Domů v Editor Power Query vyberte rozevírací seznam Nový zdroj a pak zvolte Prázdný dotaz.

  2. Do pole Query Nastavení zadejte název, například DateKey, a potom v editoru vzorců zadejte následující 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. Pokud chcete vzorec otestovat, zadejte do pole Zadat parametr hodnotu data a času a pak vyberte Vyvolat. Pokud je vzorec správný, vrátí se celočíselná hodnota data. Po ověření odstraňte tento nový vyvolaný dotaz funkce .

  4. V části Dotazy vyberte tabulku a pak upravte vzorec dotazu tak, aby volal funkci s parametry RangeStart a RangeEnd.

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

    Power BI table showing DateKey filter.