Odwoływanie się do zapytań Dodatku Power Query

Ten artykuł jest przeznaczony dla Ciebie jako modeler danych pracujący z programem Power BI Desktop. Zawiera ona wskazówki dotyczące definiowania zapytań Dodatku Power Query odwołujących się do innych zapytań.

Wyjaśnijmy, co to oznacza: gdy zapytanie odwołuje się do drugiego zapytania, jest tak, jakby kroki w drugim zapytaniu zostały połączone z i uruchamiane przed krokami w pierwszym zapytaniu.

Rozważ kilka zapytań: zapytanie Query1 źródła danych z usługi internetowej i jego obciążenie jest wyłączone. Wszystkie zapytania Query2, Query3 i Query4 odwołują się do zapytania Query1, a ich dane wyjściowe są ładowane do modelu danych.

Diagram showing the Query Dependencies view, displaying queries described in the previous paragraph.

Po odświeżeniu modelu danych często zakłada się, że dodatek Power Query pobiera wynik zapytania Query1 i że jest ponownie używany przez przywoływane zapytania. To myślenie jest nieprawidłowe. W rzeczywistości dodatek Power Query wykonuje zapytania Query2, Query3 i Query4 oddzielnie.

Możesz myśleć, że zapytanie Query2 zawiera kroki osadzone w zapytaniu Query1 . Dotyczy to również zapytań Query3 i Query4. Na poniższym diagramie przedstawiono jaśniejszy obraz sposobu wykonywania zapytań.

Diagram showing a modified version of the Query Dependencies view, displaying Query 2, Query 3, and Query 4.

Zapytanie Query1 jest wykonywane trzy razy. Wiele wykonań może spowodować powolne odświeżanie danych i negatywny wpływ na źródło danych.

Użycie funkcji Table.Buffer w zapytaniu Query1 nie spowoduje wyeliminowania dodatkowego pobierania danych. Ta funkcja buforuje tabelę do pamięci, a buforowana tabela może być używana tylko w ramach tego samego wykonywania zapytania. W tym przykładzie jeśli zapytanie Query1 jest buforowane podczas wykonywania zapytania Query2 , buforowane dane nie mogą być używane podczas wykonywania zapytań Query3 i Query4 . Samodzielnie buforują dane dwa razy więcej. (Ten wynik może w rzeczywistości wiązać się z ujemną wydajnością, ponieważ tabela będzie buforowana przez każde zapytanie odwołujące się).

Uwaga

Architektura buforowania dodatku Power Query jest złożona i nie skupia się na tym artykule. Dodatek Power Query może buforować dane pobierane ze źródła danych. Jednak gdy wykonuje zapytanie, może pobrać dane ze źródła danych więcej niż raz.

Zalecenia

Ogólnie rzecz biorąc, zalecamy odwołowanie się do zapytań, aby uniknąć duplikowania logiki w zapytaniach. Jednak zgodnie z opisem w tym artykule takie podejście projektowe może przyczynić się do spowolnienia odświeżania danych i przeciążenia źródeł danych.

Zalecamy zamiast tego utworzenie przepływu danych. Użycie przepływu danych może poprawić czas odświeżania danych i zmniejszyć wpływ na źródła danych.

Przepływ danych można zaprojektować tak, aby hermetyzować dane źródłowe i przekształcenia. Ponieważ przepływ danych jest trwałym magazynem danych w usługa Power BI, pobieranie danych jest szybkie. Dlatego nawet w przypadku odwoływania się do zapytań wiele żądań dla przepływu danych można poprawić czas odświeżania danych.

Jeśli w tym przykładzie zapytanie Query1 zostanie przeprojektowane jako jednostka przepływu danych, zapytania Query2, Query3 i Query4 mogą używać go jako źródła danych. W przypadku tego projektu jednostka źródłowa przez zapytanie Query1 będzie oceniana tylko raz.

Aby uzyskać więcej informacji związanych z tym artykułem, zapoznaj się z następującymi zasobami: