Blog JSystems - uwalniamy wiedzę!

Szukaj

Power Query w Power BI

Wyświetl zapytanie natywne jest wyszarzone - składanie zapytania przerwane

W skrócie

  • Na kroku zapytania do bazy pozycja Wyświetl zapytanie natywne jest wyszarzona, choć na wcześniejszych krokach była aktywna, a odświeżanie trwa dłużej, niż powinno.
  • Krok, którego źródło nie umie wykonać, przerywa składanie zapytania, a dalsze kroki liczy od niego Power Query na komputerze. Wyszarzona opcja nie zawsze to oznacza, bo część łączników jej nie udostępnia.
  • Znajdź pierwszy krok z wyszarzoną opcją, przenieś go na koniec za filtry i grupowanie, a gdy łącznik nie pokazuje zapytania natywnego, sprawdź składanie diagnostyką zapytań.

Pozycja Wyświetl zapytanie natywne w menu kroku to najprostszy test składania zapytań (ang. query folding), czyli zamiany kroków Power Query na jedno zapytanie wykonywane przez bazę danych. Gdy jest wyszarzona, część pracy przeszła z serwera na Twój komputer. Pokazujemy, jak znaleźć krok, który przerwał składanie, jak go przestawić i kiedy wyszarzona opcja nie świadczy o problemie.

Jak to wygląda w praktyce

W Power BI Desktop klikasz prawym przyciskiem ostatni krok na liście Zastosowane kroki, a pozycja Wyświetl zapytanie natywne jest szara i nie da się jej wybrać. Na wcześniejszych krokach była aktywna i otwierała okno z kodem SQL. Komunikatu o błędzie nie ma, a skutek widać po czasie odświeżania i ilości pobieranych danych.

W lekcji o składaniu zapytań na tabeli FaktSprzedaz z SQL Server filtr, usunięcie kolumn i grupowanie złożyły się w jedno zapytanie SQL. Serwer zwracał 15 wierszy, po jednym na sklep, zamiast 11 669 linii sprzedaży. Po dodaniu kolumny indeksu pozycja Wyświetl zapytanie natywne na nowym kroku stała się wyszarzona.

Menu kontekstowe kroku Dodano indeks w edytorze Power Query w Power BI Desktop z wyszarzoną pozycją Wyświetl zapytanie natywne
Po dodaniu kolumny indeksu pozycja Wyświetl zapytanie natywne jest wyszarzona. Składanie zakończyło się na grupowaniu, a indeks liczy już Power Query na komputerze.

Dlaczego tak się dzieje

Składanie zaczyna się od źródła i obejmuje kolejne kroki. Dopóki krok da się wyrazić w języku źródła, Power Query dopisuje go do zapytania wysyłanego do bazy. Krok, którego źródło nie umie wykonać, przerywa składanie, a od niego dalsze kroki liczy silnik Power Query na komputerze. Zwykle przerywają je kolumna indeksu, scalanie zapytań z dwóch różnych źródeł, funkcje niestandardowe wywoływane dla każdego wiersza, część operacji tekstowych i kolumn z przykładów, Table.Buffer oraz własna instrukcja SQL wpisana w oknie łącznika bez opcji EnableFolding.

Microsoft opisuje to tak: jeśli opcja jest wyłączona na kroku, a źródło normalnie ją udostępnia, utworzyłeś krok, który zatrzymuje składanie. Dostępność polecenia zależy jednak od łącznika. Przy źródle, które tej opcji nie obsługuje, wyszarzenie nie mówi nic o składaniu. Pliki CSV, Excel i foldery nie składają się wcale, bo nie mają silnika, który mógłby wykonać krok.

Ten sam krok szkodzi różnie zależnie od miejsca. Indeks dodany do 15 pogrupowanych wierszy nie ma znaczenia. Ten sam indeks przed filtrem zmusza Power Query do pobrania całej tabeli i przefiltrowania jej lokalnie.

Jak to rozwiązać krok po kroku

  1. Znajdź krok, który przerywa składanie. Klikaj prawym przyciskiem kolejne kroki na liście Zastosowane kroki, zaczynając od kroku Nawigacja. Pierwszy krok z wyszarzoną pozycją Wyświetl zapytanie natywne to ten, który przerwał składanie.
  2. Upewnij się, że źródło w ogóle składa zapytania. Jeśli opcja jest szara już na pierwszym kroku po nawigacji, a źródłem jest plik, folder albo łącznik bez tej funkcji, przejdź od razu do diagnostyki z kroku 5.
  3. Przenieś krok na koniec. Kliknij go prawym przyciskiem i wybieraj Przenieś po, aż znajdzie się za filtrami, usuwaniem kolumn i grupowaniem. Kolejność zmienisz też przeciąganiem. Po każdej zmianie sprawdź ostatni krok przed przeniesionym: Wyświetl zapytanie natywne powinno być aktywne.
  4. Zastąp krok, którego nie da się przenieść. Gdy krok musi stać wcześnie, sprawdź, czy da się go wykonać inaczej: filtrem zamiast indeksu, scaleniem tabel z tej samej bazy zamiast z pliku, operacją wbudowaną zamiast funkcji wywoływanej dla wierszy. Jeśli używasz własnej instrukcji SQL w oknie łącznika bez opcji EnableFolding, umieść w niej jak najwięcej logiki, bo kolejnych kroków silnik już nie złoży.
  5. Sprawdź składanie diagnostyką. W edytorze Power BI Desktop na karcie Narzędzia zaznacz krok i kliknij Diagnozuj krok. W zapytaniu z końcówką Detailed, w grupie Diagnostyka, kolumna Data Source Query pokazuje dokładny tekst zapytania wysłanego do źródła.
  6. W Power Query Online patrz na wskaźniki. W Dataflow Gen2 przy każdym kroku stoi wskaźnik składania z podpowiedzią, czy krok zostanie oceniony w źródle danych. Microsoft zaznacza, że wskaźnik niezłożenia oznacza, że nie składa się wszystko, a nie że nie składa się nic.

Jak sprawdzić, że zadziałało

Po zmianie kolejności kliknij prawym przyciskiem ostatni krok, który ma się składać, i wybierz Wyświetl zapytanie natywne. W oknie Zapytanie natywne filtr powinien być widoczny jako where, wybrane kolumny jako lista w select, a grupowanie jako sum i group by, tak jak w lekcji o składaniu. Porównaj też czas odświeżenia przed zmianą i po niej, a przy wątpliwościach powtórz Diagnozuj krok.

Żeby problem nie wracał, buduj zapytania do baz w stałej kolejności: najpierw filtry i wybór kolumn, potem grupowanie i scalania w obrębie tej samej bazy, na końcu indeksy, kolumny z przykładów i scalenia z plikami. Po każdym nowym kroku zajrzyj do menu kroku i sprawdź, czy opcja nadal jest aktywna.

Wróć do listy: 88 najczęstszych pytań i problemów związanych z Power Query

Baner szkolenia Kompleksowe szkolenie Power BI - Desktop, DAX i Online + Copilot w JSystems

Szkolenie Power BI - Desktop, DAX i Online --> Pięć dni od pierwszego raportu do publikacji w usłudze Power BI: Power Query, model danych z wielu tabel, DAX, wizualizacje i Copilot. To szkolenie ma terminy gwarantowane.

To szkolenie może być dofinansowane dla Ciebie z KFS lub BUR.

★★★★★Średnia ocena naszych szkoleń w Google: 5/5

Najczęściej zadawane pytania

Czy wyszarzona pozycja Wyświetl zapytanie natywne zawsze oznacza brak składania?
Nie. Microsoft podaje, że dostępność tego polecenia zależy od łącznika. Jeśli źródło normalnie je udostępnia, a na danym kroku jest wyszarzone, ten krok zatrzymał składanie. Przy łącznikach bez tej funkcji składanie sprawdzisz diagnostyką zapytań albo wskaźnikami w Power Query Online.
Które kroki najczęściej przerywają składanie zapytania?
Zwykle kolumna indeksu, scalanie zapytań z dwóch różnych źródeł, funkcje niestandardowe wywoływane dla każdego wiersza, część operacji tekstowych i kolumn z przykładów, Table.Buffer oraz własna instrukcja SQL w oknie łącznika. To reguła ogólna, a o wyniku decyduje łącznik i kolejność kroków.
Czy w Excelu sprawdzę składanie zapytań tak samo jak w Power BI?
Częściowo. Polecenie Wyświetl zapytanie natywne działa w Power BI Desktop i w Excelu, ale edytor Power Query w Excelu nie ma karty Narzędzia z diagnostyką zapytań. Zapytania do plików CSV, skoroszytów i folderów nie składają się w żadnym z tych programów.
Czy kolejność kroków ma wpływ na składanie?
Tak. Krok przerywający składanie postawiony na początku sprawia, że Power Query pobiera całą tabelę i resztę kroków liczy lokalnie. Ten sam krok na końcu, po filtrach i grupowaniu, działa na już zmniejszonych danych, a wcześniejsze kroki wykonuje serwer.

Komentarze (0)

Musisz być zalogowany by móc dodać komentarz. Zaloguj się przez Google

Brak komentarzy...