Konfigurowanie odświeżania przyrostowego i danych w czasie rzeczywistym

W tym artykule opisano sposób konfigurowania odświeżania przyrostowego i danych w czasie rzeczywistym dla modeli semantycznych. Aby dowiedzieć się więcej na temat konfigurowania odświeżania przyrostowego dla przepływów danych, zobacz Funkcje przepływów danych w warstwie Premium — odświeżanie przyrostowe.

Konfigurowanie odświeżania przyrostowego obejmuje tworzenie parametrów RangeStart i RangeEnd, stosowanie filtrów i definiowanie zasad odświeżania przyrostowego. Po opublikowaniu w usługa Power BI wykonasz początkową operację odświeżania w modelu. Początkowa operacja odświeżania i kolejne operacje odświeżania stosują zdefiniowane zasady odświeżania przyrostowego. Przed wykonaniem tych kroków upewnij się, że w pełni rozumiesz funkcje opisane w temacie Odświeżanie przyrostowe i dane w czasie rzeczywistym dla modeli semantycznych.

Tworzenie parametrów

W tym zadaniu użyjesz Edytor Power Query do utworzenia parametrów RangeStart i RangeEnd z wartościami domyślnymi. Wartości domyślne mają zastosowanie tylko podczas filtrowania danych do załadowania do modelu w programie Power BI Desktop. Wprowadzone wartości powinny zawierać tylko niewielką ilość najnowszych danych ze źródła danych. Po opublikowaniu w usłudze te wartości zakresu czasu są zastępowane przez zasady odświeżania przyrostowego. Oznacza to, że zasady tworzą okna danych przychodzących, po kolei.

  1. W programie Power BI Desktop wybierz pozycję Przekształć dane na wstążce Narzędzia główne, aby otworzyć Edytor Power Query.

  2. Wybierz listę rozwijaną Zarządzaj parametrami , a następnie wybierz pozycję Nowy parametr.

  3. W polu Nazwa wprowadź ciąg RangeStart (z uwzględnieniem wielkości liter). W polu Typ wybierz z listy rozwijanej pozycję Data/godzina. W polu Bieżąca wartość wprowadź wartość daty i godziny rozpoczęcia.

    Define the Range Start parameter in the Manage Parameters dialog.

  4. Wybierz pozycję Nowy , aby utworzyć drugi parametr o nazwie RangeEnd. W polu Typ wybierz pozycję Data/godzina, a następnie w polu Bieżąca wartość wprowadź wartość daty i godziny zakończenia. Wybierz przycisk OK.

    Define the Range End parameter in the Manage Parameters dialog.

Po zdefiniowaniu parametrów RangeStart i RangeEnd przefiltrujesz dane do załadowania do modelu na podstawie tych parametrów.

Filtrowanie danych

Uwaga

Przed kontynuowaniem tego zadania sprawdź, czy tabela źródłowa ma kolumnę danych Data/Godzina. Jeśli nie ma kolumny Data/godzina, ale zawiera kolumnę dat kluczy zastępczych liczb całkowitych w postaci yyyymmdd, wykonaj kroki opisane w artykule Konwertowanie daty/godziny na liczbę całkowitą w dalszej części tego artykułu, aby utworzyć funkcję, która konwertuje wartość daty/godziny w parametrach, aby dopasować klucz zastępczy liczby całkowitej tabeli źródłowej.

Teraz zastosujesz filtr na podstawie warunków w parametrach RangeStart i RangeEnd.

  1. W Edytor Power Query wybierz kolumnę daty, dla której chcesz filtrować, a następnie wybierz strzałkę >listy rozwijanej Filtr daty filtru>niestandardowego.

  2. W obszarze Filtruj wiersze, aby określić pierwszy warunek, wybierz wartość po lub jest równa lub jest równa, a następnie wybierz pozycję Parametr, a następnie wybierz pozycję RangeStart.

    Aby określić drugi warunek, jeśli wybrano wartość po pierwszym warunku, wybierz wartość przed lub jest równa, lub jeśli wybrano wartość po lub jest równa w pierwszym warunku, wybierz opcję przed drugim warunkiem, a następnie wybierz pozycję Parametr, a następnie wybierz pozycję RangeEnd.

    Filter rows dialog showing Range Start and Range End conditions.

    Ważne: Sprawdź, czy zapytania mają wartość równą (=) w poleceni RangeStart lub RangeEnd, ale nie w obu tych elementach. Jeśli wartość równa (=) istnieje w obu parametrach, wiersz może spełniać warunki dla dwóch partycji, co może prowadzić do duplikowania danych w modelu. Na przykład może spowodować zduplikowanie danych, = Table.SelectRows(#"Changed Type", each [OrderDate] >= RangeStart and [OrderDate] <= RangeEnd) jeśli istnieje data orderDate, która jest równa RangeStart i RangeEnd.

    Wybierz przycisk OK , aby zamknąć.

  3. Na wstążce Narzędzia główne w Edytor Power Query wybierz pozycję Zamknij i zastosuj. Dodatek Power Query ładuje dane na podstawie filtrów zdefiniowanych przez parametry RangeStart i RangeEnd oraz wszelkie inne zdefiniowane filtry.

    Dodatek Power Query ładuje tylko dane określone między parametrami RangeStart i RangeEnd. W zależności od ilości danych w tym okresie tabela powinna być ładowana szybko. Jeśli wydaje się to powolne i intensywnie korzystające z procesów, prawdopodobnie zapytanie nie składa się.

Definiowanie zasad

Po zdefiniowaniu parametrów RangeStart i RangeEnd oraz przefiltrowanych danych na podstawie tych parametrów zdefiniujesz zasady odświeżania przyrostowego. Te zasady są stosowane tylko po opublikowaniu modelu w usłudze, a wykonywana jest operacja ręcznego lub zaplanowanego odświeżania.

  1. W widoku Dane kliknij prawym przyciskiem myszy tabelę w okienku Dane i wybierz pozycję Odświeżanie przyrostowe.

    Data view showing Table context menu with Incremental refresh selected.

  2. W obszarze Odświeżanie przyrostowe i dane>w czasie rzeczywistym Wybierz tabelę, sprawdź lub wybierz tabelę. Domyślną wartością pola listy Wybierz tabelę jest tabela wybrana w widoku Dane.

  3. Określ wymagane ustawienia:

    W obszarze Ustaw zakresy importu i odświeżania>Przyrostowe odświeżanie tej tabeli przesuń suwak na Włączone. Jeśli suwak jest wyłączony, oznacza to, że wyrażenie Dodatku Power Query dla tabeli nie zawiera filtru opartego na parametrach RangeStart i RangeEnd.

    W obszarze Archiwizowanie danych rozpoczynających określ historyczny okres przechowywania , który chcesz uwzględnić w modelu. Wszystkie wiersze z datami w tym okresie zostaną załadowane do modelu w usłudze, chyba że zostaną zastosowane inne filtry.

    W obszarze Rozpoczynanie odświeżania przyrostowego określ okres odświeżania. Wszystkie wiersze z datami w tym okresie będą odświeżane w modelu za każdym razem, gdy jest wykonywana operacja ręcznego lub zaplanowanego odświeżania przez usługa Power BI.

  4. Określ ustawienia opcjonalne:

    W obszarze Wybierz ustawienia opcjonalne wybierz pozycję Pobierz najnowsze dane w czasie rzeczywistym z trybem DirectQuery (tylko wersja Premium), aby uwzględnić najnowsze zmiany danych, które wystąpiły w źródle danych po ostatnim okresie odświeżania. To ustawienie powoduje, że zasady odświeżania przyrostowego dodają partycję DirectQuery do tabeli.

    Wybierz pozycję Odśwież tylko pełne dni , aby odświeżyć tylko całe dni. Jeśli operacja odświeżania wykryje, że dzień nie zostanie ukończony, wiersze dla tego całego dnia nie są odświeżane. Ta opcja jest automatycznie włączana po wybraniu pozycji Pobierz najnowsze dane w czasie rzeczywistym przy użyciu trybu DirectQuery (tylko wersja Premium)..

    Wybierz pozycję Wykryj zmiany danych, aby określić kolumnę daty/godziny używaną do identyfikowania i odświeżania tylko dni, w których dane uległy zmianie. W źródle danych musi istnieć kolumna daty/godziny, zwykle w celach inspekcji. Ta kolumna nie powinna być tą samą kolumną używaną do partycjonowania danych przy użyciu parametrów RangeStart i RangeEnd. Maksymalna wartość tej kolumny jest obliczana dla każdego z okresów w zakresie przyrostowym. Jeśli nie została zmieniona od ostatniego odświeżenia, bieżący okres nie zostanie odświeżony. W przypadku modeli opublikowanych w pojemnościach Premium można również określić zapytanie niestandardowe. Aby dowiedzieć się więcej, zobacz Zaawansowane odświeżanie przyrostowe — zapytania niestandardowe do wykrywania zmian danych.

    W zależności od ustawień zasady powinny wyglądać mniej więcej tak:

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

  5. Przejrzyj ustawienia, a następnie wybierz pozycję Zastosuj , aby ukończyć zasady odświeżania. Ten krok nie powoduje załadowania danych.

Zapisywanie i publikowanie w usłudze

Teraz, gdy parametry RangeStart i RangeEnd, filtrowanie i odświeżanie ustawień zasad zostały ukończone, zapisz model, a następnie opublikuj w usłudze. Jeśli model stanie się duży, przed wywołaniem pierwszego odświeżenia w usłudze należy włączyć format magazynu dużego modelu.

Odświeżanie modelu

W usłudze odśwież model. Pierwsze odświeżenie spowoduje załadowanie zarówno nowych, jak i zaktualizowanych danych w okresie odświeżania, a także danych historycznych w całym okresie przechowywania. W zależności od ilości danych odświeżanie może zająć sporo czasu. Kolejne odświeżenia, niezależnie od tego, czy są wykonywane ręcznie, czy zaplanowane, są zwykle znacznie szybsze, ponieważ zasady odświeżania przyrostowego są stosowane i odświeżane są tylko dane dla okresu określonego w ustawieniu zasad odświeżania.

Konwertowanie daty/godziny na liczbę całkowitą

To zadanie jest wymagane tylko wtedy, gdy tabela używa kluczy zastępczych liczb całkowitych zamiast wartości daty/godziny w kolumnie daty używanej dla definicji filtru RangeStart i RangeEnd.

Typ danych parametrów RangeStart i RangeEnd musi być typu danych daty/godziny niezależnie od typu danych kolumny daty. Jednak w przypadku wielu źródeł danych tabele nie mają kolumny typu danych daty/godziny, ale zamiast tego mają kolumnę dat kluczy zastępczych liczb całkowitych yyyymmddw postaci . Zazwyczaj nie można przekonwertować tych kluczy zastępczych liczb całkowitych na typ danych Data/godzina, ponieważ wynik będzie nieskładanym wyrażeniem zapytania, ale można utworzyć funkcję, która konwertuje wartość daty/godziny w parametrach tak, aby była zgodna z kluczem zastępczym liczby całkowitej tabeli źródła danych bez utraty możliwości składania. Funkcja jest następnie wywoływana w kroku filtru. Ten krok konwersji jest wymagany, jeśli tabela źródła danych zawiera tylko klucz zastępczy jako typ danych całkowitych.

  1. Na wstążce Narzędzia główne w Edytor Power Query wybierz listę rozwijaną Nowe źródło, a następnie wybierz pozycję Puste zapytanie.

  2. W Ustawienia zapytania wprowadź nazwę, na przykład DateKey, a następnie w edytorze formuł wprowadź następującą formułę:

    = (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. Aby przetestować formułę, w polu Wprowadź parametr wprowadź wartość daty/godziny, a następnie wybierz pozycję Wywołaj. Jeśli formuła jest poprawna, zwracana jest wartość całkowita dla daty. Po zweryfikowaniu usuń to nowe zapytanie funkcji wywołanej.

  4. W obszarze Zapytania wybierz tabelę, a następnie edytuj formułę zapytania, aby wywołać funkcję przy użyciu parametrów RangeStart i RangeEnd.

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

    Power BI table showing DateKey filter.