Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Jednym z najczęstszych powodów używania Diagnostyki zapytań jest lepsze zrozumienie, które operacje Power Query deleguje do źródła danych zaplecza w celu ich wykonania. Ten proces jest również nazywany składaniem. Aby zobaczyć, jakie operacje składają się, przyjrzyj się najbardziej konkretnym zapytaniom lub zapytaniom, które Power Query wysyłają do źródła danych zaplecza. Ten proces można zbadać zarówno pod kątem ODATA, jak i SQL.
Operacja opisana w temacie Rejestrowanie diagnostyki zapytań w Power BI wykonuje cztery kroki:
- Nawiązuje połączenie ze źródłem danych
- Pobiera tabelę klienta
- Filtruje rolę „Identyfikator klienta” według parametru
Sales Representative - Grupy według
Country
Ponieważ łącznik ODATA nie obsługuje obecnie składania operacji COUNT() po stronie punktu końcowego, a sam punkt końcowy ma również ograniczony zakres obsługiwanych operacji, nie oczekujemy, że ten ostatni krok zostanie złożony. Z drugiej strony filtrowanie jest stosunkowo proste. Jest to dokładnie to, co widzimy, jeśli przyjrzymy się najbardziej konkretnego zapytania emitowanego:
Request:
GET https://services.odata.org/V4/Northwind/Northwind.svc/Customers?$filter=ContactTitle eq 'Sales Representative'&$select=CustomerID%2CCountry HTTP/1.1
Response:
https://services.odata.org/V4/Northwind/Northwind.svc/Customers?$filter=ContactTitle eq 'Sales Representative'&$select=CustomerID%2CCountry
HTTP/1.1 200 OK
Widzimy, że filtrujemy tabelę według ContactTitle, gdzie ContactTitle jest równe Sales Representative, i zwracamy tylko dwie kolumny: Customer ID i Country.
Country jest wymagany do operacji grupowania, która musi być wykonywana lokalnie, ponieważ nie jest wykonywana przez punkt końcowy ODATA. Możemy wywnioskować, co się składa i co się nie składa tutaj.
Podobnie, jeśli przyjrzymy się konkretnego i końcowego zapytania emitowanego w diagnostyce SQL, zobaczymy coś nieco innego:
count(1) as [Count]
from
(
select [_].[Country]
from [dbo].[Customers] as [_]
where [_].[ContactTitle] = 'Sales Representative' and [_].[ContactTitle] is not null
) as [rows]
group by [Country]
Możesz zobaczyć, że Power Query tworzy podzbiór, w którym ContactTitle jest filtrowane do Sales Representative, a następnie grupuje według Country na tym podzbiorze. Wszystkie nasze operacje zostały zamknięte.
Korzystając z diagnostyki zapytań, możemy sprawdzić, jakiego rodzaju operacje zostały złożone. W przyszłości mamy nadzieję, że ta funkcja będzie łatwiejsza w użyciu.