M365Con 2027 – bezpłatna konferencja online · 11–22 Jan 2027 · 120 sessions→ m365con.net

Blog · Mirko Peters

Opanowanie query folding w Power BI: przenieś obciążenie na źródło danych

By ·

Podczas pracy z Power BI niewiele rzeczy jest bardziej frustrujących niż patrzenie, jak odświeżanie danych trwa w nieskończoność, albo, co gorsza, jak kończy się niepowodzeniem, bo zabrakło zasobów…

Automatically translated with AI from the original post. Read the English original

▶ BLOGMastering Query Foldingin Power BI: Push the…M365.FM
Titelbild: Mastering Query Folding in Power BI: Push the Work to Your Data Source

Podczas pracy z Power BI niewiele rzeczy jest bardziej frustrujących niż patrzenie, jak odświeżanie danych trwa w nieskończoność, albo, co gorsza, jak kończy się niepowodzeniem, bo zabrakło zasobów. Jeśli pobierasz miliony wierszy ze zdalnej bazy SQL, korporacyjnej hurtowni danych lub usługi chmurowej, znaczenie ma to, jak obsługujesz transformacje. Każdy krok, który wykonujesz w Power Query, może zostać przetworzony wydajnie przez potężny serwer, na którym znajdują się dane, albo ospale przez Twój lokalny komputer lub silnik pamięci usługi Power BI. Tutaj wkracza magia query folding.

W tym wpisie szczegółowo omówimy query folding: jak optymalizuje transformacje danych, praktyczne techniki zapewniające poprawne składanie kroków, typowe pułapki, które przerywają łańcuch folding, oraz sposoby na znaczną poprawę ogólnej wydajności odświeżania raportów. Przenieśmy pracę tam, gdzie jej miejsce: do źródła danych.

Wprowadzenie do query folding

W istocie query folding to mechanizm, dzięki któremu Power Query tłumaczy kroki transformacji danych, budowane w interfejsie użytkownika, na natywny język zapytań, zazwyczaj SQL, i wysyła to zapytanie z powrotem do bazy źródłowej w celu wykonania. Zamiast pobierać każdy pojedynczy wiersz, tabelę i kolumnę do pamięci Power BI, a następnie filtrować, grupować lub łączyć je lokalnie, Power BI zleca bazie danych wykonanie ciężkiej pracy.

Wyobraź sobie zakupy spożywcze. Jeśli pójdziesz do ogromnego magazynu, wybierzesz wszystko, co jest w sklepie, przeniesiesz to do swojej kuchni, a potem wyrzucisz 90% produktów, bo są przeterminowane albo nie są tym, czego potrzebowałeś, stracisz mnóstwo czasu i energii. Tak właśnie dzieje się bez query folding. Gdy query folding jest włączone, dajesz pracownikowi magazynu konkretną listę: „Daj mi tylko jabłka cięższe niż pół kilo, pogrupowane według koloru”. Pracownik sortuje towar w magazynie i wręcza Ci małe pudełko zawierające wyłącznie to, o co prosiłeś. Twoja kuchnia pozostaje czysta, a gotowanie kończysz znacznie szybciej.

Jak query folding optymalizuje transformacje danych

Query folding jest fundamentem skalowalnej architektury Power BI. Gdy działa prawidłowo, minimalizuje transfer danych przez sieć, znacznie ogranicza zużycie pamięci w fazie odświeżania i przyspiesza pracę nad rozwiązaniem.

Gdy stosujesz transformacje, takie jak filtrowanie wierszy, usuwanie kolumn, sortowanie czy podstawowe agregacje, na początku kroków zastosowanych w Power Query, łącznik sprawdza, czy źródło danych może wykonać daną operację natywnie. Jeśli tak, kroki są zamieniane w jedno, wysoce zoptymalizowane zapytanie, które jest wysyłane do źródła. Silnik bazy danych wykonuje je, korzystając z istniejących indeksów, dzięki czemu może przeszukać miliony wierszy w ciągu milisekund.

I odwrotnie, gdy query folding zostaje przerwane, Power BI jest zmuszony pobrać cały nieskompresowany, nieprzefiltrowany zbiór danych przez sieć do silnika oceny Power Query (mashup engine). Gdy dane znajdą się lokalnie, Power BI stosuje filtry i transformacje, wykorzystując lokalny procesor i pamięć RAM. W przypadku dużych korporacyjnych zbiorów danych to przepis na przekroczenia limitu czasu bramy, błędy braku pamięci i ospałe aktualizacje raportów.

Praktyczne techniki zapewniające poprawne składanie kroków

Nie wszystkie kroki Power Query są sobie równe i nie wszystkie źródła danych obsługują query folding. Relacyjne bazy danych, takie jak SQL Server, Oracle czy PostgreSQL, mają rozbudowane możliwości folding, natomiast pliki płaskie, takie jak CSV czy skoroszyty Excel, nie składają się w ten sam sposób, ponieważ nie posiadają natywnego procesora zapytań.

Aby zapewnić prawidłowe składanie kroków, musisz ułożyć zastosowane kroki w określonej kolejności i zwracać uwagę na używane funkcje. Oto praktyczne techniki, które pozwolą utrzymać folding zapytań:

Typowe pułapki, które przerywają składanie zapytań

Jednym z najbardziej podstępnych aspektów składania zapytań jest jego kruchość. Pojedynczy niewinny krok transformacji umieszczony w niewłaściwej kolejności może całkowicie przerwać łańcuch składania, powodując, że wszystkie kolejne kroki będą wykonywane lokalnie, nawet jeśli baza danych jest w pełni zdolna je obsłużyć.

Przyjrzyjmy się kilku najczęstszym błędom, które przerywają składanie zapytań:

  1. Wstawienie natywnego SQL i dopiero potem transformacje: Jeśli napiszesz natywne zapytanie SQL na samym początku kroku źródła danych, Power Query traktuje ten zestaw wyników jako czarną skrzynkę. Kolejne transformacje dodawane przez interfejs Power Query zwykle nie będą się składać, ponieważ Power Query nie może wiarygodnie wstawiać kroków interfejsu do niestandardowego bloku SQL.
  2. Zbyt wczesne lub niewłaściwie ułożone konwersje typów: Zmiana typów danych jest niezbędna, ale wykonanie jej przed filtrowaniem lub operacjami kolidującymi z regułami typowania bazy danych może przerwać składanie. Na przykład zmiana kolumny liczbowej na tekstową, a następnie próba filtrowania jej po zakresie liczbowym, może uniemożliwić bazie danych optymalizację zapytania.
  3. Dodawanie kolumn indeksu lub używanie numerów wierszy: Funkcje zależne od pozycji wiersza, takie jak „Dodaj kolumnę indeksu” lub operacje odwołujące się do sąsiednich wierszy przez bezwzględny indeks, wymagają wczytania całego zbioru danych do pamięci w celu określenia pozycji. Natychmiast zatrzymuje to składanie zapytań.
  4. Łączenie różnych źródeł danych: Jeśli scalisz tabelę z bazy SQL z tabelą z pliku Excel, składanie zapytań zatrzyma się na granicy, w której oba źródła się łączą, ponieważ Excel nie potrafi natywnie przetwarzać zapytań SQL.

Poprawa wydajności odświeżania w Power BI

Gdy opanujesz składanie zapytań, jego efekty odczuwalne są w całej architekturze danych. Czasy odświeżania raportów, które kiedyś trwały godzinami, mogą spaść do minut, a nawet sekund. Ta wydajność nie tylko oszczędza zasoby obliczeniowe w bramach chmurowych lub na serwerach, ale także pozwala deweloperom szybciej iterować.

Aby zmaksymalizować wydajność odświeżania, połącz składanie zapytań z innymi podstawowymi sprawdzonymi metodami modelowania. Na przykład upewnij się, że tabele bazy danych mają odpowiednio zdefiniowane indeksy dla kolumn, po których często filtrujesz lub łączysz dane. Jeśli tabele SQL nie mają indeksów, nawet składane zapytanie spowoduje, że silnik bazy danych wykona kosztowne skanowania tabel. Dodatkowo połącz składanie zapytań z czystym modelem danych w schemacie gwiazdy, usuwając zbędne kolumny i wdrażając zasady odświeżania przyrostowego dla dużych zbiorów danych historycznych.

Monitorowanie i rozwiązywanie problemów z zapytaniami Power BI

Nie naprawisz tego, czego nie mierzysz. Przy wolnych odświeżaniach lub nieoczekiwanych błędach zapytań potrzebne jest systematyczne podejście do diagnozowania, gdzie leży wąskie gardło. Zacznij od narzędzia Diagnostyka Power Query w Power BI Desktop. Ta funkcja pozwala śledzić czas wykonania poszczególnych kroków krok po kroku, pokazując dokładnie, ile trwa każda transformacja i czy dane są pobierane zdalnie, czy przetwarzane lokalnie.

Ponadto monitoruj logi bramy oraz profilery baz danych (takie jak SQL Server Profiler lub zdarzenia rozszerzone), aby obserwować dokładne zapytania wysyłane z Power BI do źródła danych. Jeśli widzisz ogromne instrukcje SELECT pobierające surowe, nieprzefiltrowane tabele zamiast ukierunkowanych zapytań z klauzulami WHERE i GROUP BY, od razu wiesz, że składanie zapytań zawiodło gdzieś w zastosowanych krokach.

Aby zapoznać się z kompleksowym omówieniem kolejności wykonywania, typowych pułapek operacyjnych i zaawansowanych przepływów optymalizacji, koniecznie obejrzyj powiązany odcinek podcastu i przeczytaj notatki na temat Power Query Folding and Execution Order in Power BI. Zrozumienie leżącej u podstaw kolejności operacji da Ci pewność, że za każdym razem zbudujesz solidne, błyskawicznie działające modele.

Podsumowanie

Opanowanie query folding to jedna z najbardziej wpływowych umiejętności, jakie może zdobyć deweloper Power BI. Przenosząc obciążenie obliczeniowe z lokalnego komputera lub usługi Power BI z powrotem na wydajne, wysoce zoptymalizowane silniki źródeł danych, eliminujesz wąskie gardła wydajności, ograniczasz przeciążenie sieci i sprawiasz, że odświeżanie raportów przebiega płynnie i niezawodnie. Świadomie planując kolejność kroków, regularnie sprawdzając natywne zapytania oraz unikając typowych pułapek, takich jak przedwczesne indeksowanie czy łączenie niezgodnych źródeł, możesz w pełni wykorzystać potencjał swojego środowiska business intelligence.

Aby poznać szczegółowo te zagadnienia i dowiedzieć się, jak kolejność wykonywania zapytań wpływa na wydajność Twojej przestrzeni roboczej, posłuchaj pełnej dyskusji w odcinku podcastu Power Query Folding and Execution Order in Power BI. Wdrażaj te strategie już dziś, a zobaczysz, jak wydajność Twoich raportów znacząco się poprawi!

Power BI Power Query Power BI Service Connector Microsoft To Do Semantic model

Related articles

RSS