Blog JSystems - uwalniamy wiedzę!

Szukaj

Power Query w Excelu, Power BI i Fabric

Edytor Power Query zacina się przy każdym kliknięciu - podgląd i pamięć podręczna

W skrócie

  • Edytor Power Query wolno działa: po kliknięciu kroku, dodaniu filtra czy zmianie typu długo czekasz na podgląd, choć edytor pokazuje tylko pierwsze wiersze.
  • Podgląd liczy się od źródła, a sortowanie, grupowanie i scalanie muszą przeczytać wszystkie wiersze. Do tego dochodzi profilowanie całego zestawu danych i pobieranie podglądów innych zapytań w tle.
  • Profiluj 1000 wierszy, ogranicz dane parametrem albo krokiem Zachowaj pierwsze wiersze na czas budowy, ciężkie kroki przenieś na koniec i ustaw podglądy w tle oraz pamięć podręczną w Opcjach zapytania.

Edytor Power Query wolno działa zwłaszcza wtedy, gdy zapytanie czyta duże pliki, folder z wieloma plikami albo API. Każde kliknięcie kroku na liście Zastosowane kroki oznacza wtedy nowe liczenie podglądu. Pokazujemy, skąd bierze się to czekanie, które ustawienia edytora na nie wpływają i jak budować zapytanie na mniejszej próbce danych, nie zmieniając wyniku końcowego.

Jak to wygląda w praktyce

Klikasz krok na liście Zastosowane kroki, dodajesz filtr albo zmieniasz typ kolumny i czekasz, aż podgląd się wypełni. Po prawej stronie paska stanu edytora pojawia się godzina pobrania podglądu, a po przełączeniu na inne zapytanie wszystko zaczyna się od nowa. Przy wyłączonych podglądach w tle możesz zobaczyć komunikat: „Odświeżanie podglądu zostało anulowane. Jeśli wyłączyłeś pobieranie podglądów danych w tle, to jest oczekiwane, ponieważ w danej chwili będzie można odświeżać tylko jedną wersję zapoznawczą. Nie ma to wpływu na załadowane dane.” (ang. „Preview refresh was canceled.”).

Bywa też odwrotnie: podgląd pojawia się szybko, ale pokazuje stare dane, a u góry okna edytora widać żółty pasek z informacją „Ten podgląd może pochodzić maksymalnie sprzed 3 dni.” (ang. „This preview may be up to 3 days old.”).

Dlaczego tak się dzieje

Podgląd w edytorze liczy się od źródła dla każdego kroku. Microsoft opisuje, że operacje takie jak filtrowanie działają strumieniowo i czytają tylko tyle danych, ile potrzeba do wypełnienia podglądu. Sortowanie, grupowanie, scalanie i przestawianie muszą najpierw przeczytać wszystkie wiersze, bo pierwsze posortowane wiersze mogą leżeć na końcu źródła. Krok sortowania postawiony wcześnie spowalnia więc każdy kolejny podgląd. Przy źródłach składających zapytania nowy krok bywa wysyłany do źródła od nowa, zamiast korzystać z poprzedniego wyniku.

Edytor domyślnie pokazuje i profiluje pierwsze 1000 wierszy. Po przełączeniu profilowania na cały zestaw danych każdy krok przetwarza wszystkie wiersze. Gdy pobieranie podglądów w tle jest włączone, Power Query może odświeżać podglądy kilku zapytań naraz. Po jego wyłączeniu, jak wynika z komunikatu edytora, w danej chwili odświeża się tylko jeden.

Power Query przechowuje kopie wyników podglądu na dysku lokalnym, żeby szybciej je wyświetlać, i według Microsoftu nie odświeża tej pamięci podręcznej automatycznie. Stąd szybki, ale nieaktualny podgląd z żółtym paskiem.

Jak to rozwiązać krok po kroku

  1. Wróć do profilowania 1000 wierszy. Kliknij napis o profilowaniu na pasku stanu edytora i wybierz Profilowanie kolumn w oparciu o następującą liczbę pierwszych wierszy: 1000. Pełny zestaw danych włączaj tylko na chwilę kontroli jakości.
  2. Ogranicz dane na czas budowy. Na karcie Strona główna rozwiń Zarządzaj parametrami, wybierz Nowy parametr, nazwij go LimitWierszy, ustaw typ liczbowy i wartość bieżącą 1000. Kliknij prawym przyciskiem pierwszy krok, który zwraca wiersze danych (przy pliku CSV zwykle Źródło), wybierz Wstaw krok po i wpisz w pasku formuły = if LimitWierszy > 0 then Table.FirstN(Źródło, LimitWierszy) else Źródło, podstawiając nazwę tego kroku. Wartość 0 przywraca pełne dane.
  3. Albo użyj kroku tymczasowego. Microsoft zaleca prostszy wariant: zaraz po wczytaniu danych użyj Zachowaj wiersze, Zachowaj pierwsze wiersze, a po dodaniu wszystkich kroków usuń ten krok. Przy łączeniu plików z folderu zamiast wierszy ogranicz pliki: parametr ścieżki, jak w lekcji o parametrach, skieruj na folder z jednym plikiem próbnym.
  4. Ciężkie kroki przenieś na koniec. Filtry i usuwanie kolumn ustaw jak najwcześniej, a sortowanie, grupowanie i scalanie jak najpóźniej. Kolejność zmienisz poleceniami Przenieś przed i Przenieś po w menu kroku.
  5. Wyłącz podglądy w tle dla ciężkiego pliku. W Excelu na karcie Dane rozwiń Pobierz dane i wybierz Opcje dodatku Query. W części Bieżący skoroszyt otwórz Ładowanie danych i odznacz Zezwalaj na pobieranie podglądów danych w tle. Edytor będzie wtedy odświeżał tylko podgląd zapytania, które oglądasz.
  6. Zarządzaj pamięcią podręczną. W tym samym oknie, w sekcji Opcje zarządzania pamięcią podręczną danych, sprawdzisz, ile miejsca zajmują zapisane podglądy (Obecnie używane:), i usuniesz je przyciskiem Wyczyść pamięć podręczną. Gdy podgląd jest nieaktualny, wystarczy na karcie Strona główna kliknąć Odśwież podgląd.
Pasek stanu edytora Power Query z wyborem zakresu profilowania kolumn: pierwsze 1000 wierszy albo cały zestaw danych
Przełącznik zakresu profilowania na pasku stanu edytora: profilowanie w oparciu o pierwsze 1000 wierszy albo o cały zestaw danych.

Jak sprawdzić, że zadziałało

Kliknij po kolei kilka kroków na liście Zastosowane kroki. Z ograniczeniem do 1000 wierszy podgląd powinien pojawiać się wyraźnie szybciej niż wcześniej, a godzina pobrania podglądu na pasku stanu zmienia się po każdym odświeżeniu. Formułę ograniczającą sprawdziliśmy w Excelu: przy wartości 3 z pięciu wierszy zostały 3, przy wartości 0 wszystkie 5.

Przed załadowaniem wyniku ustaw parametr LimitWierszy na 0 albo usuń krok Zachowano pierwsze wiersze, a po odświeżeniu porównaj liczbę wierszy w okienku Zapytania i połączenia z oczekiwaną. To główna pułapka tej metody: zapomniane ograniczenie ładuje do arkusza tylko próbkę.

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

Baner szkolenia Microsoft Excel - Power Query w JSystems z edytorem Power Query na ekranie laptopa

Szkolenie Microsoft Excel - Power Query --> Dwa dni warsztatów z Excela: pobieranie danych z plików, folderów, SharePointa i baz SQL, ich czyszczenie i łączenie w Power Query, praca w języku M, a na koniec model danych i oparta na nim tabela przestawna. Prowadzi Sebastian Stasiak.

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

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

Najczęściej zadawane pytania

Dlaczego podgląd w edytorze Power Query liczy się długo, skoro pokazuje tylko 1000 wierszy?
Bo część kroków musi przeczytać całe źródło, zanim pokaże pierwszy wiersz. Microsoft wymienia tu sortowanie, a do tej samej grupy należą grupowanie, scalanie i przestawianie. Podgląd spowalnia też profilowanie przełączone na cały zestaw danych.
Czy wyłączenie pobierania podglądów danych w tle coś psuje?
Nie psuje załadowanych danych. Edytor odświeża wtedy tylko jeden podgląd naraz, więc po przełączeniu zapytania może pokazać komunikat, że odświeżanie podglądu zostało anulowane. Power Query opisuje to jako oczekiwane zachowanie, bez wpływu na dane w arkuszu.
Kiedy czyścić pamięć podręczną Power Query?
Gdy podgląd pokazuje nieaktualne dane albo zapisane podglądy zajmują dużo miejsca na dysku. Power Query trzyma kopie wyników podglądu lokalnie i nie odświeża ich sam. Po wyczyszczeniu albo po kliknięciu Odśwież podgląd edytor pobierze dane ze źródła od nowa.
Czy ograniczenie wierszy na czas budowy zmieni wynik w arkuszu?
Tak, jeśli zostawisz je w zapytaniu. Krok ograniczający działa też przy ładowaniu, więc przed załadowaniem ustaw parametr na 0 albo usuń krok z pierwszymi wierszami i sprawdź liczbę załadowanych wierszy w okienku Zapytania i połączenia.

Komentarze (0)

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

Brak komentarzy...