Udostępnij przez


Rozwiązywanie problemów z odświeżaniem przyrostowym i danymi w czasie rzeczywistym

Podczas implementowania odświeżania przyrostowego i rozwiązania danych w czasie rzeczywistym istnieją dwie fazy, pierwsze konfigurowanie parametrów, filtrowanie i definiowanie zasad w programie Power BI Desktop, a drugi jest początkową operacją odświeżania modelu semantycznego i kolejnymi odświeżeniami w usłudze. W tym artykule omówiono rozwiązywanie problemów oddzielnie dla każdej z tych faz.

Po partycjonowania tabeli w usłudze Power BI należy pamiętać, że tabele odświeżane przyrostowo, które również uzyskują dane w czasie rzeczywistym z trybem DirectQuery, działają w trybie hybrydowym, co oznacza, że działają w trybie importowania i trybu DirectQuery. Wszystkie tabele z relacjami z tabelą hybrydową, która jest przyrostowo odświeżana, muszą używać trybu podwójnego, aby można było z nich korzystać w trybie importowania i DirectQuery bez utraty wydajności. Ponadto wizualizacje raportów mogą buforować wyniki, aby uniknąć wysyłania zapytań z powrotem do źródła danych, co uniemożliwiłoby pobieranie najnowszych aktualizacji danych w czasie rzeczywistym. Ostatnia sekcja rozwiązywania problemów obejmuje te problemy z trybem hybrydowym.

Przed rozwiązaniem problemów z odświeżaniem przyrostowym i danymi w czasie rzeczywistym zapoznaj się z artykułem Odświeżanie przyrostowe dla modeli i danych w czasie rzeczywistym oraz szczegółowe informacje w temacie Konfigurowanie odświeżania przyrostowego i danych czasu rzeczywistego.

Konfigurowanie w programie Power BI Desktop

Większość problemów występujących podczas konfigurowania odświeżania przyrostowego i danych w czasie rzeczywistym ma związek z składaniem zapytań. Zgodnie z opisem w temacie Odświeżanie przyrostowe dla modeli — obsługiwane źródła danych, źródło danych musi obsługiwać składanie zapytań.

Problem: Ładowanie danych trwa zbyt długo

W Edytorze Power Query po wybraniu pozycji Zastosuj ładowanie danych zajmuje zbyt dużo czasu i zasobów komputera. Istnieje kilka potencjalnych przyczyn.

Przyczyna: Niezgodność typów danych

Ten błąd może być spowodowany niezgodnością typu danych, gdzie Date/Time jest wymaganym typem danych dla parametrów RangeStart i RangeEnd, lub odwrotnie, kolumna daty tabeli, na której zastosowano filtry, nie jest typu danych Date/Time. Zarówno typ danych parametrów, jak i filtrowana kolumna danych muszą być Date/Time typem danych, a format musi być taki sam. Jeśli nie, kwerenda nie może być zoptymalizowana.

Rozwiązanie: Weryfikowanie typu danych

Sprawdź, czy kolumna daty/godziny dla tabeli odświeżania przyrostowego jest Date/Time typu danych. Jeśli tabela nie zawiera kolumny typu danych Date/Time, ale zamiast tego używa typu danych liczbowych całkowitych, możesz utworzyć funkcję, która konwertuje wartość daty/godziny w parametrach RangeStart i RangeEnd tak, aby pasowała do całkowitego klucza zastępczego tabeli źródła danych. Aby dowiedzieć się więcej, zobacz Konfigurowanie odświeżania przyrostowego — konwertowanie daty/godziny na liczbę całkowitą.

Przyczyna: Źródło danych nie obsługuje składania zapytań

Zgodnie z opisem w artykule Odświeżanie przyrostowe i dane w czasie rzeczywistym dla modeli — wymagania, odświeżanie przyrostowe jest przeznaczone dla źródeł danych, które obsługują składanie zapytań. Przed opublikowaniem w usłudze upewnij się, że zapytania źródła danych są składane w programie Power BI Desktop, gdzie problemy ze składaniem zapytań mogą się znacznie pogłębić. Takie podejście jest szczególnie ważne, gdy uwzględnia się dane w czasie rzeczywistym w zasadach przyrostowego odświeżania, ponieważ partycja DirectQuery w czasie rzeczywistym wymaga zawijania zapytań.

Rozwiązanie: Weryfikowanie i testowanie zapytań

W większości przypadków w oknie dialogowym zasad odświeżania przyrostowego pojawia się ostrzeżenie informujące, czy zapytanie do wykonania na źródle danych nie obsługuje możliwości składania zapytań. Jednak w niektórych przypadkach może być konieczne dalsze zapewnienie możliwości składania zapytań. Jeśli to możliwe, monitoruj zapytanie przekazywane do źródła danych przy użyciu narzędzia takiego jak SQL Profiler. Zapytanie z filtrami opartymi na RangeStart i RangeEnd musi być wykonane w jednym zapytaniu.

Można również określić krótki okres daty/godziny w parametrach RangeStart i RangeEnd, które zawierają nie więcej niż kilka tysięcy wierszy. Jeśli wczytywanie przefiltrowanych danych ze źródła danych do modelu zajmuje dużo czasu i wymaga intensywnego przetwarzania, prawdopodobnie oznacza to, że zapytanie nie jest optymalizowane.

Jeśli okaże się, że występuje brak składania zapytań, zapoznaj się ze wskazówkami dotyczącymi składania zapytań w programie Power BI Desktop i składaniem zapytań Power Query, aby uzyskać pomoc w identyfikowaniu, co może uniemożliwiać składanie zapytań i czy źródło danych w ogóle może obsługiwać składanie zapytań.

Odświeżanie modelu semantycznego w usłudze

Rozwiązywanie problemów z odświeżaniem przyrostowym w usłudze różni się w zależności od typu pojemności, do których został opublikowany model. Modele semantyczne w pojemnościach Premium umożliwiają korzystanie z takich narzędzi, jak SQL Server Management Studio (SSMS), aby wyświetlać i selektywnie odświeżać poszczególne partycje. Modele usługi Power BI Pro z drugiej strony nie zapewniają dostępu do narzędzi za pośrednictwem punktu końcowego XMLA, dlatego rozwiązywanie problemów z odświeżaniem przyrostowym może wymagać nieco większej liczby prób i błędów.

Problem: Czas początkowego odświeżania przekroczony

Zaplanowane odświeżanie modeli usługi Power BI Pro w pojemności udostępnionej ma limit czasu wynoszący dwie godziny. Ten limit czasu jest zwiększany do pięciu godzin dla modeli w pojemności Premium. Systemy źródeł danych mogą również nakładać limit rozmiaru zwracanego zapytania lub limit czasu zapytania.

Przyczyna: Zapytania źródła danych nie są przekształcane

Podczas gdy problemy ze składaniem zapytań zwykle można zidentyfikować w aplikacji Power BI Desktop przed ich opublikowaniem w usłudze, istnieje możliwość, że zapytania związane z odświeżaniem modelu nie są składane, co prowadzi do wydłużonego czasu odświeżania i nadmiernego wykorzystania zasobów silnika mashupu zapytań. Taka sytuacja występuje, ponieważ zapytanie jest tworzone dla każdej partycji w modelu. Jeśli zapytania nie są składane, a dane nie są filtrowane w źródle danych, silnik próbuje filtrować dane.

Rozwiązanie: Weryfikowanie składania zapytań

Użyj narzędzia do śledzenia w źródle danych, aby określić, czy zapytanie przekazywane dla każdej partycji jest pojedynczym zapytaniem zawierającym filtr oparty na parametrach RangeStart i RangeEnd. Jeśli tak nie jest, sprawdź, czy ma miejsce składanie zapytań w modelu programu Power BI Desktop podczas ładowania niewielkiej ilości odfiltrowanych danych do modelu. Jeśli tak nie jest, najpierw napraw problem w modelu, przeprowadź aktualizację metadanych tylko do modelu (przy użyciu punktu końcowego XMLA) lub jeśli model Power BI Pro działa w udostępnionej pojemności, usuń niekompletny model z usługi, opublikuj go ponownie i spróbuj ponownie wykonać operację odświeżania początkowego.

Jeśli określisz, że zapytania nie są składane, zapoznaj się ze wskazówkami dotyczącymi składania zapytań w programie Power BI Desktop i składaniem zapytań Power Query , aby uzyskać pomoc dotyczącą identyfikowania tego, co może uniemożliwiać składanie zapytań.

Przyczyna: Dane załadowane do partycji są zbyt duże

Rozwiązanie: Zmniejszenie rozmiaru modelu

W wielu przypadkach limit czasu jest spowodowany tym, że ilość danych, które muszą być odpytywane i ładowane do partycji modelu, przekracza limity czasu nałożone przez pojemność. Zmniejsz rozmiar lub złożoność modelu lub rozważ podzielenie modelu na mniejsze elementy.

Rozwiązanie: Włącz format magazynowania dużych modeli

W przypadku modeli opublikowanych w pojemnościach Premium, jeśli model przekroczy 1 GB lub więcej, możesz zwiększyć wydajność operacji odświeżania i upewnić się, że model nie przekracza limitów rozmiaru, włączając format magazynu w modelu Large model przed wykonaniem pierwszej operacji odświeżania w usłudze. Aby dowiedzieć się więcej, zobacz Duże modele w usłudze Power BI Premium.

Rozwiązanie: początkowe odświeżanie bootstrap

W przypadku modeli opublikowanych w pojemnościach Premium można uruchomić operację początkowego odświeżania. Bootstrapping umożliwia usłudze tworzenie obiektów tabeli i partycji dla modelu, ale nie ładowania i przetwarzania danych historycznych do żadnej z partycji. Aby dowiedzieć się więcej, zobacz Zaawansowane odświeżanie przyrostowe — zapobieganie przekroczeniom limitu czasu podczas początkowego pełnego odświeżania.

Przyczyna: Limit czasu zapytania źródła danych

Zapytania mogą być ograniczone domyślnie przez limit czasu dla źródła danych.

Rozwiązanie: zastąpienie limitu czasu w wyrażeniu zapytania

Wiele źródeł danych zezwala na zastępowanie limitu czasu w wyrażeniu zapytania. Aby dowiedzieć się więcej, zobacz Odświeżanie przyrostowe dla modeli — limity czasu.

Problem: Odświeżanie kończy się niepowodzeniem z powodu zduplikowanych wartości

Przyczyna: Daty postów zostały zmienione

W przypadku operacji odświeżania tylko dane, które uległy zmianie w źródle danych, są odświeżane w modelu. Ponieważ dane są podzielone według daty, zaleca się, aby daty transakcji nie były zmieniane.

Jeśli data zostanie zmieniona przypadkowo, mogą wystąpić dwa problemy: Użytkownicy zauważą, że niektóre sumy zostały zmienione w danych historycznych (które nie mają się zdarzyć) lub podczas odświeżania zwracany jest błąd wskazujący, że unikatowa wartość nie jest w rzeczywistości unikatowa. Ta ostatnia sytuacja może wystąpić, gdy tabela ze skonfigurowanym odświeżaniem przyrostowym jest używana w relacji z inną tabelą jako strona 1 i powinna mieć unikatowe wartości. Gdy dane zostaną zmienione dla określonego identyfikatora, ten identyfikator pojawi się w innej partycji, a aparat wykryje, że wartość nie jest unikatowa.

Rozwiązanie: Odświeżanie określonych partycji

Jeśli istnieje potrzeba biznesowa zmiany niektórych danych z zakresu dat, możliwym rozwiązaniem jest użycie programu SSMS do odświeżenia wszystkich partycji od miejsca, w którym znajduje się zmiana, aż po bieżącą partycję odświeżania, dzięki czemu 1 strona relacji pozostaje unikatowa.

Problem: Dane są obcięte

Przyczyna: Przekroczono limit zapytania źródła danych

Niektóre źródła danych, takie jak Azure Data Explorer, Log Analytics i Application Insights, mają limit wynoszący 64 MB (skompresowany) danych, które mogą być zwracane dla zapytania zewnętrznego. Usługa Azure Data Explorer może zwrócić jawny błąd, ale dla innych usług, takich jak Log Analytics i Application Insights, dane są skracane.

Rozwiązanie: określ mniejsze okresy odświeżania i przechowywania

Określ mniejsze okresy odświeżania i przechowywania w zasadach. Na przykład, jeśli określiłeś okres odświeżania wynoszący jeden rok, a zwracany jest błąd zapytania lub zwracane dane zostaną obcięte, spróbuj ustawić okres odświeżania na 12 miesięcy. Chcesz upewnić się, że zapytania dotyczące bieżącej partycji odświeżania lub jakichkolwiek partycji historycznych, opartych na okresach odświeżania i przechowywania, nie zwracają więcej niż 64 MB danych.

Problem: Odświeżanie kończy się niepowodzeniem z powodu konfliktów związanych z kluczem partycji

Przyczyna: Data w kolumnie daty w źródle danych jest aktualizowana

Filtr w kolumnie daty służy do dynamicznego partycjonowania danych na zakresy okresów w usłudze Power BI. Odświeżanie przyrostowe nie jest przeznaczone do obsługi przypadków, w których filtrowana kolumna daty jest aktualizowana w systemie źródłowym. Aktualizacja jest interpretowana jako wstawienie i usunięcie, a nie rzeczywista aktualizacja. Jeśli usunięcie występuje w zakresie historycznym, a nie w zakresie przyrostowym, nie jest pobierane, co może spowodować błędy odświeżania danych z powodu konfliktów klucza partycji.

Tryb hybrydowy w usłudze

Gdy usługa Power BI stosuje zasady odświeżania przyrostowego z danymi w czasie rzeczywistym, zmienia tabelę odświeżaną przyrostowo na tabelę hybrydową, która działa zarówno w trybie importowania, jak i trybu DirectQuery. Zwróć uwagę na partycję DirectQuery na końcu poniższej listy partycji przykładowej tabeli. Obecność partycji DirectQuery ma wpływ na powiązane tabele i wizualizacje raportów, które wysyłają zapytania do tej tabeli.

Zrzut ekranu przedstawiający tabelę hybrydową.

Problem: Wydajność zapytań jest niska

Tabele hybrydowe operujące zarówno w trybie importowania, jak i w trybie DirectQuery wymagają, aby wszelkie powiązane tabele musiały działać w trybie Dual, aby mogły działać jako buforowane lub nie, w zależności od kontekstu zapytania przesyłanego do modelu usługi Power BI. Tryb podwójny umożliwia usłudze Power BI zmniejszenie liczby ograniczonych relacji w modelu i wygenerowanie wydajnych zapytań źródła danych w celu zapewnienia dobrej wydajności. Ograniczone relacje nie mogą być wypychane do źródła danych wymagającego, aby usługa Power BI pobierała więcej danych niż jest to konieczne. Ponieważ tabele podwójne mogą działać jako tabele DirectQuery lub Import, ta sytuacja jest unikana.

Podczas konfigurowania zasad odświeżania przyrostowego program Power BI Desktop przypomina o przełączeniu wszelkich powiązanych tabel do trybu podwójnego po wybraniu pozycji Pobierz najnowsze dane w czasie rzeczywistym przy użyciu trybu DirectQuery (tylko Wersja Premium). Ponadto upewnij się, że przeglądasz wszystkie istniejące relacje tabeli w widoku modelu.

Zrzut ekranu przedstawiający konwertowanie powiązanych tabel na tryb podwójny.

Tabele działające obecnie w trybie DirectQuery są łatwo przełączane do trybu podwójnego. We właściwościach tabeli w obszarze Zaawansowane wybierz pozycję Podwójne z listy rozwijanej Tryb przechowywania. Tabele działające obecnie w trybie importu wymagają jednak ręcznej pracy. Tabele podwójne mają te same ograniczenia funkcjonalne co tabele DirectQuery. W związku z tym program Power BI Desktop nie może przekonwertować tabel importu, ponieważ mogą one polegać na innych funkcjach niedostępnych w trybie podwójnym. Należy ręcznie odtworzyć te tabele w trybie DirectQuery, a następnie przekonwertować je na tryb podwójny. Aby dowiedzieć się więcej, zobacz Zarządzanie trybem przechowywania w programie Power BI Desktop.

Problem: Wizualizacje raportów nie pokazują najnowszych danych

Przyczyna: Wyniki zapytań pamięci podręcznej usługi Power BI zwiększają wydajność i zmniejszają obciążenie zaplecza

Domyślnie usługa Power BI buforuje wyniki zapytań, dzięki czemu zapytania dotyczące wizualizacji raportu mogą być przetwarzane szybko, nawet jeśli są oparte na trybie DirectQuery. Unikanie niepotrzebnych zapytań źródła danych zwiększa wydajność i zmniejsza obciążenie źródła danych, ale może również oznaczać, że najnowsze zmiany danych w źródle nie są uwzględniane w wynikach.

Rozwiązanie: Konfigurowanie automatycznego odświeżania strony

Aby zachować pobieranie najnowszych zmian danych ze źródła, skonfiguruj automatyczne odświeżanie stron dla raportów w usłudze Power BI. Automatyczne odświeżanie strony można wykonywać w stałych interwałach, takich jak pięć sekund lub dziesięć minut. Po osiągnięciu tego określonego interwału wszystkie wizualizacje na tej stronie wysyłają zapytanie aktualizacji do źródła danych i odpowiednio aktualizują. Możesz też odświeżyć wizualizacje na stronie na podstawie wykrywania zmian w danych. Takie podejście wymaga miary wykrywania zmian, która następnie jest używana przez usługę Power BI do sondowania źródła danych pod kątem zmian. Wykrywanie zmian jest obsługiwane tylko w obszarach roboczych, które są częścią pojemności Premium. Aby dowiedzieć się więcej, zobacz Automatyczne odświeżanie strony w usłudze Power BI.