Udostępnij za pośrednictwem


Omówienie oceny zapytań i zapytań składanych w Power Query

Ten artykuł zawiera podstawowe omówienie sposobu przetwarzania zapytań M i zamieniania ich w żądania źródła danych.

Skrypt Power Query M

Każde zapytanie, niezależnie od tego, czy zostało utworzone przez dodatek Power Query, ręcznie napisane przez Ciebie w edytorze zaawansowanym, czy wprowadzone przy użyciu pustego dokumentu, składa się z funkcji i składni języka formuł Power Query M. To zapytanie jest interpretowane i oceniane przez aparat Power Query w celu wyprowadzenia wyników. Skrypt języka M służy jako zestaw instrukcji potrzebnych do oceny zapytania.

Wskazówka

Skrypt języka M można traktować jako przepis opisujący sposób przygotowywania danych.

Najczęstszym sposobem tworzenia skryptu języka M jest użycie edytora Power Query. Na przykład po nawiązaniu połączenia ze źródłem danych, takim jak baza danych programu SQL Server, zwróć uwagę na to, że po prawej stronie ekranu znajduje się sekcja o nazwie zastosowane kroki. W tej sekcji przedstawiono wszystkie kroki lub przekształcenia używane w zapytaniu. W tym sensie edytor Power Query służy jako interfejs, który ułatwia tworzenie odpowiedniego skryptu języka M dla przekształceń, które są używane, i zapewnia, że używany kod jest prawidłowy.

Uwaga / Notatka

Skrypt języka M jest używany w edytorze Power Query w celu:

  • Wyświetl zapytanie jako serię kroków i zezwól na tworzenie lub modyfikowanie nowych kroków.
  • Wyświetl widok diagramu.

Zrzut ekranu przedstawiający zastosowane kroki i widok podglądu danych.

Na poprzedniej ilustracji przedstawiono sekcję 'Wykonane kroki', która zawiera następujące czynności:

  • Źródło: nawiązuje połączenie ze źródłem danych. W takim przypadku jest to połączenie z bazą danych programu SQL Server.
  • Nawigacja: przechodzi do określonej tabeli w bazie danych.
  • Usunięto inne kolumny: wybiera kolumny z tabeli, które mają być zachowywane.
  • Posortowane wiersze: sortuje tabelę przy użyciu co najmniej jednej kolumny.
  • Zachowane górne wiersze: filtruje tabelę, aby zachować tylko niektóre wiersze z początku tabeli.

Ten zestaw nazw kroków to przyjazny sposób wyświetlania skryptu języka M utworzonego przez dodatek Power Query. Istnieje kilka sposobów wyświetlania pełnego skryptu języka M. W programie Power Query możesz wybrać pozycję Edytor zaawansowany na karcie Widok. Możesz również wybrać pozycję Edytor zaawansowany w grupie Zapytanie na karcie Narzędzia główne. W niektórych wersjach Power Query możesz również zmienić widok paska formuły, aby wyświetlić skrypt zapytania, przechodząc do karty Widok, a następnie z grupy Układ wybierz pozycję Widok skryptu.

Zrzut ekranu zawierający pełny skrypt języka M i odpowiadające im nazwy zastosowanych kroków.

Większość nazw znalezionych w okienku Zastosowane kroki jest również używana tak samo, jak w skrypcie języka M. Kroki zapytania są nazywane przy użyciu identyfikatorów w języku M. Czasami dodatkowe znaki są opakowane wokół nazw kroków w języku M, ale te znaki nie są wyświetlane w zastosowanych krokach. Przykładem jest #"Kept top rows", który jest klasyfikowany jako identyfikator cytowany z powodu tych dodatkowych znaków. Identyfikator cytowany może pozwalać na używanie dowolnej liczby znaków Unicode jako identyfikatora, w tym słów kluczowych, spacji, komentarzy, operatorów i znaków interpunkcyjnych. Aby dowiedzieć się więcej na temat identyfikatorów w języku M, przejdź do struktury leksykalnej.

Wszelkie zmiany wprowadzone w zapytaniu za pośrednictwem edytora Power Query automatycznie aktualizują skrypt języka M dla zapytania. Na przykład użycie poprzedniego obrazu jako punktu początkowego, jeśli zmienisz nazwę kroku Zachowaj pierwsze wiersze na 20 pierwszych wierszy, ta zmiana zostanie automatycznie zaktualizowana w widoku skryptu.

Zrzut ekranu przedstawiający zmianę nazwy zastosowanego kroku na Top 20 wierszy, co również aktualizuje skrypt w języku M.

Chociaż zalecamy użycie edytora Power Query do utworzenia wszystkich lub większości skryptu języka M, możesz ręcznie dodać lub zmodyfikować fragmenty skryptu języka M. Aby dowiedzieć się więcej na temat języka M, przejdź do oficjalnej witryny dokumentacji języka M.

Uwaga / Notatka

Skrypt języka M, nazywany również kodem M, jest terminem używanym dla dowolnego kodu, który używa języka Power Query M. W kontekście tego artykułu skrypt języka M odnosi się również do kodu znajdującego się wewnątrz zapytania Power Query i dostępnego za pośrednictwem okna edytora zaawansowanego lub widoku skryptu na pasku formuły.

Ocena zapytań w Power Query

Na poniższym diagramie przedstawiono proces, który występuje, gdy zapytanie jest oceniane w dodatku Power Query.

Diagram przedstawiający ścieżkę oceny zapytania z skryptu języka M do końcowych danych wyjściowych.

  1. Skrypt języka M znajdujący się w edytorze zaawansowanym jest przesyłany do silnika Power Query. Uwzględniono również inne ważne informacje, takie jak poświadczenia i poziomy prywatności źródła danych.
  2. Dodatek Power Query określa, jakie dane mają zostać wyodrębnione ze źródła danych i przesyła żądanie do źródła danych.
  3. Źródło danych odpowiada na żądanie Power Query, przesyłając żądane dane do Power Query.
  4. Power Query odbiera dane przychodzące ze źródła danych i wykonuje wszelkie przekształcenia przy użyciu silnika Power Query, jeśli to konieczne.
  5. Wyniki pochodzące z poprzedniego punktu są ładowane do miejsca docelowego.

Uwaga / Notatka

W tym przykładzie pokazano zapytanie z usługą SQL Database jako źródłem danych, ale pojęcie dotyczy zapytań z lub bez źródła danych.

Gdy dodatek Power Query odczytuje skrypt języka M, uruchamia skrypt za pośrednictwem procesu optymalizacji, aby wydajniej ocenić zapytanie. W tym procesie określa, które kroki (przekształcenia) z zapytania można przenieść do źródła danych. Określa również, które inne kroki należy ocenić przy użyciu silnika Power Query. Ten proces optymalizacji jest nazywany składaniem zapytań, gdzie Power Query stara się przenieść jak najwięcej możliwych działań do źródła danych w celu zoptymalizowania wykonania zapytania.

Ważne

Wszystkie reguły z języka formuł Power Query M (nazywanego również językiem M) są przestrzegane. Co istotne, leniwe obliczanie odgrywa ważną rolę podczas procesu optymalizacji. W tym procesie dodatek Power Query rozumie, jakie konkretne przekształcenia z zapytania należy ocenić. Power Query rozumie również, które transformacje nie trzeba oceniać, ponieważ nie są potrzebne w wyniku zapytania.

Ponadto w przypadku uwzględnienia wielu źródeł poziom prywatności danych każdego źródła danych jest brany pod uwagę podczas oceniania zapytania. Więcej informacji: Za kulisami zapory prywatności danych

Na poniższym diagramie przedstawiono kroki, które mają miejsce w tym procesie optymalizacji.

Diagram przedstawiający proces optymalizacji podczas oceny zapytania.

  1. Skrypt języka M znajdujący się w edytorze zaawansowanym jest przesyłany do silnika Power Query. Podano również inne ważne informacje, takie jak poświadczenia i poziomy prywatności źródła danych.
  2. Mechanizm składania zapytań przesyła żądania metadanych do źródła danych w celu określenia możliwości źródła danych, schematów tabel, relacji między różnymi tabelami w źródle danych i nie tylko.
  3. Na podstawie odebranych metadanych mechanizm przetwarzania zapytań określa, jakie informacje mają być wyodrębnione ze źródła danych i jaki zestaw przekształceń należy wykonać wewnątrz silnika Power Query. Wysyła instrukcje do dwóch innych komponentów, które pobierają dane ze źródła danych i przekształcają przychodzące dane w aparacie Power Query, jeśli to konieczne.
  4. Gdy wewnętrzne składniki dodatku Power Query otrzymają instrukcje, dodatek Power Query wysyła żądanie do źródła danych przy użyciu zapytania źródła danych.
  5. Źródło danych odbiera żądanie z Power Query i przesyła dane do aparatu Power Query.
  6. Kiedy dane są już w Power Query, aparat transformacji wewnątrz Power Query (znany również jako aparat mashup) wykonuje przekształcenia, których nie można przenosić z powrotem ani zlecić do źródła danych.
  7. Wyniki pochodzące z poprzedniego punktu są ładowane do miejsca docelowego.

Uwaga / Notatka

W zależności od przekształceń i źródła danych używanych w skryscie języka M dodatek Power Query określa, czy przesyła strumieniowo lub buforuje dane przychodzące.

Omówienie składania zapytań

Celem składania zapytań jest zlecenie lub przesunięcie jak największej części oceny zapytania do źródła danych, które potrafi przeprowadzić przekształcenia zapytania.

Mechanizm składania zapytań osiąga ten cel, tłumacząc skrypt języka M na język, który źródło danych może interpretować i wykonywać. Następnie przekazuje ocenę do źródła danych i wysyła wynik tej oceny do Power Query.

Ta operacja często zapewnia szybsze wykonywanie zapytań niż wyodrębnianie wszystkich wymaganych danych ze źródła danych i uruchamianie wszystkich przekształceń wymaganych w silniku Power Query.

Gdy używasz środowiska pobierania danych, dodatek Power Query przeprowadzi Cię przez proces, który ostatecznie umożliwia nawiązanie połączenia ze źródłem danych. W tym celu dodatek Power Query używa serii funkcji w języku M sklasyfikowanych jako uzyskiwanie dostępu do funkcji danych. Te konkretne funkcje używają mechanizmów i protokołów do nawiązywania połączenia ze źródłem danych przy użyciu języka, który może zrozumieć źródło danych.

Jednak kroki, które należy wykonać w zapytaniu, to kroki lub przekształcenia, które mechanizm składania zapytań próbuje zoptymalizować. Następnie sprawdza, czy można je przekierować do źródła danych zamiast przetwarzać przy użyciu aparatu Power Query.

Ważne

Wszystkie funkcje źródła danych, często wyświetlane jako krok źródłowy zapytania, wysyłają zapytania do danych w źródle danych w jego języku natywnym. Mechanizm składania zapytań jest wykorzystywany we wszystkich transformacjach zastosowanych do zapytania po funkcji źródła danych. Następnie można je przetłumaczyć i połączyć w jedno zapytanie źródła danych lub w wiele przekształceń, które można przekazać do źródła danych.

W zależności od struktury zapytania może istnieć trzy możliwe wyniki dla mechanizmu składania zapytań:

  • Pełne składanie zapytań: gdy wszystkie przekształcenia zapytań są przekazywane z powrotem do źródła danych, a minimalne przetwarzanie odbywa się w silniku Power Query.
  • Częściowe składanie zapytań: gdy tylko kilka przekształceń w zapytaniu, a nie wszystkie, może być przeniesione z powrotem do źródła danych. W takim przypadku tylko podzbiór przekształceń odbywa się w źródle danych, a pozostałe przekształcenia zapytań są wykonywane w silniku Power Query.
  • Brak składania zapytań: jeśli zapytanie zawiera przekształcenia, których nie można przetłumaczyć na natywny język zapytań źródła danych, ponieważ przekształcenia nie są obsługiwane lub łącznik nie obsługuje składania zapytań. W tym przypadku dodatek Power Query pobiera nieprzetworzone dane ze źródła danych i używa aparatu Power Query do osiągnięcia żądanych danych wyjściowych przez przetwarzanie wymaganych przekształceń na poziomie aparatu Power Query.

Uwaga / Notatka

Mechanizm składania zapytań jest dostępny głównie w łącznikach dla źródeł danych ustrukturyzowanych, takich jak, ale nie ograniczając się do, Microsoft SQL Server i OData Feed. W fazie optymalizacji aparat może czasami zmienić kolejność kroków w zapytaniu.

Użycie źródła danych, które ma więcej zasobów przetwarzania i możliwości zagnieżdżania zapytań, może przyspieszyć czas ładowania zapytań, ponieważ przetwarzanie odbywa się w źródle danych, a nie w silniku Power Query.

Aby uzyskać szczegółowe przykłady trzech możliwych wyników mechanizmu składania zapytań, zobacz Przykłady składania zapytań.

Aby uzyskać informacje na temat wskaźników składania zapytań znalezionych w okienku Zastosowane kroki , przejdź do sekcji Wskaźniki składania zapytań