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 podzieleniu tabeli na partycje w usługa 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ą teraz w trybie hybrydowym, co oznacza, że działają w trybie importowania i trybu DirectQuery. Wszystkie tabele z relacjami z tak przyrostowo odświeżaną tabelą hybrydową muszą używać trybu podwójnego, aby można było ich używać w trybie importowania i trybu DirectQuery bez kar za wydajność. 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 Edytor 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 problem może być spowodowany niezgodnością typu danych, gdzie Date/Time
jest wymaganym typem danych dla RangeStart
parametrów i RangeEnd
, ale kolumna daty tabeli, w której zastosowano filtry, nie Date/Time
jest typem danych ani odwrotnie. 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, nie można składać kwerendy.
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 Date/Time
typu danych, ale zamiast tego używa typu danych całkowitych, możesz utworzyć funkcję, która konwertuje wartość daty/godziny w RangeStart
parametrach i RangeEnd
w celu dopasowania do klucza zastępczego liczby całkowitej 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 temacie 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 z składaniem zapytań mogą być znacząco złożone. Takie podejście jest szczególnie ważne w przypadku uwzględniania danych w czasie rzeczywistym w zasadach odświeżania przyrostowego, ponieważ partycja DirectQuery w czasie rzeczywistym wymaga składania zapytań.
Rozwiązanie: Weryfikowanie i testowanie zapytań
W większości przypadków w oknie dialogowym zasad odświeżania przyrostowego jest wyświetlane ostrzeżenie wskazujące, czy zapytanie do wykonania względem źródła danych nie obsługuje 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
elementach i RangeEnd
musi być wykonywane w jednym zapytaniu.
Można również określić krótki okres daty/godziny w RangeStart
parametrach i RangeEnd
, które zawierają nie więcej niż kilka tysięcy wierszy. Jeśli obciążenie przefiltrowanych danych ze źródła danych do modelu trwa długo i trwa intensywne przetwarzanie, prawdopodobnie oznacza to, że zapytanie nie jest składane.
Jeśli okaże się, że zapytanie nie jest 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ń i jak lub jeśli źródło danych może nawet 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 obsługują przy użyciu narzędzi, takich 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: Początkowy limit czasu odświeżania
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ą składane
Podczas gdy problemy z składaniem zapytań zwykle można określić w programie Power BI Desktop przed opublikowaniem w usłudze, istnieje możliwość, że zapytania odświeżania modelu nie są składane, co prowadzi do nadmiernego czasu odświeżania i wykorzystania zasobów aparatu mashupu zapytania. 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, aparat 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 składanie zapytań występuje w modelu programu Power BI Desktop podczas ładowania niewielkiej odfiltrowanej ilości danych do modelu. Jeśli tak nie jest, najpierw pobierz go w modelu, przeprowadź aktualizację metadanych tylko do modelu (przy użyciu punktu końcowego XMLA) lub jeśli model usługi Power BI Pro w pojemności udostępnionej, usuń niekompletny model w usłudze, opublikuj ponownie i spróbuj wykonać operację odświeżania początkowego ponownie.
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 ilością danych, które muszą być odpytywane i ładowane do partycji modelu, przekraczają limity czasu nałożone przez pojemność. Zmniejsz rozmiar lub złożoność modelu lub rozważ podzielenie modelu na mniejsze elementy.
Rozwiązanie: Włączanie formatu magazynu dużego modelu
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: przesłanianie 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 po zmianie
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 po (transakcji) nie zostały zmienione.
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 1:N
odświeżaniem przyrostowym jest używana w relacji z inną tabelą jako 1
po stronie 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 poprzednich danych z dat, możliwe rozwiązaniem jest użycie programu SSMS do odświeżenia wszystkich partycji z punktu, w którym zmiana znajduje się w bieżącej partycji odświeżania, dzięki czemu 1
strona relacji jest 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 Szczegółowe informacje, mają limit 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 w przypadku innych osób, takich jak Log Analytics i Application Szczegółowe informacje, zwracane dane są obcinane.
Rozwiązanie: określ mniejsze okresy odświeżania i przechowywania
Określ mniejsze okresy odświeżania i przechowywania w zasadach. Jeśli na przykład określono okres odświeżania w ciągu jednego roku, a zwracany jest błąd zapytania lub zwracane dane zostaną obcięte, spróbuj odświeżyć okres 12 miesięcy. Chcesz upewnić się, że zapytania dotyczące bieżącej partycji odświeżania lub żadnych partycji historycznych na podstawie okresów Odświeżanie i Przechowywanie nie zwracają więcej niż 64 MB danych.
Problem: Odświeżanie kończy się niepowodzeniem z powodu konfliktów klucza 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ługa 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 (wersja zapoznawcza)
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.
Problem: Wydajność zapytań jest niska
Przyczyna: Powiązane tabele nie są w trybie podwójnym
Tabele hybrydowe działające w trybie importowania i trybu DirectQuery wymagają wszelkich powiązanych tabel do działania w trybie podwójnym, aby mogły działać jako buforowane lub niebuforowane, w zależności od kontekstu zapytania przesł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.
Rozwiązanie: Konwertowanie powiązanych tabel na tryb podwójny
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.
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 w polu listy 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 Trybu 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ługa 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.