Optymalizowanie modeli DirectQuery przy użyciu magazynu na poziomie tabeli

Ukończone

DirectQuery to jeden ze sposobów pobierania danych do programu Power BI Desktop. Metoda DirectQuery polega na bezpośrednim połączeniu z danymi w repozytorium źródłowym z poziomu programu Power BI Desktop. Jest to alternatywa dla importowania danych do programu Power BI Desktop.

Zrzut ekranu przedstawiający sposób pobierania danych przy użyciu opcji DirectQuery.

Gdy używana jest metoda DirectQuery, ogólny komfort użytkowania w dużym stopniu zależy od wydajności bazowego źródła danych. Długi czas odpowiedzi na zapytanie prowadzi do niskiego komfortu użytkowania, a w najgorszym przypadku do przekraczania limitu czasu zapytań. Ponadto liczba użytkowników otwierających raporty w danym momencie będzie miała wpływ na obciążenie źródła danych. Na przykład jeśli raport zawiera 20 wizualizacji, a z raportu korzysta 10 osób, powstanie co najmniej 200 zapytań względem źródła danych, ponieważ każda wizualizacja wyśle co najmniej jedno zapytanie.

Niestety na wydajność modelu usługi Power BI wpływ będzie miała nie tylko wydajność bazowego źródła danych, ale także inne niekontrolowane czynniki takie jak:

  • Opóźnienie sieci — szybsze sieci szybciej zwracają dane.

  • Wydajność serwera źródła danych oraz liczba innych obciążeń na tym serwerze. Rozważmy na przykład implikacje odświeżenia serwera, gdy setki osób używają tego samego serwera z różnych powodów.

W tym przypadku użycie metody DirectQuery stanowi zagrożenie dla wydajności modelu. Aby zoptymalizować wydajność w tej sytuacji, musisz mieć kontrolę nad źródłową bazą danych lub dostęp do niej.

Aby uzyskać szczegółowe informacje, zobacz Wskazówki dotyczące modelu DirectQuery w programie Power BI Desktop.

Implikacje użycia metody DirectQuery

Najlepszym rozwiązaniem jest zaimportowanie danych do programu Power BI Desktop, ale może być konieczne użycie w organizacji trybu łączności danych DirectQuery z jednego z następujących powodów (zalety metody DirectQuery):

  • Jest odpowiednia w przypadkach, w których dane często się zmieniają i jest wymagane raportowanie niemal w czasie rzeczywistym.

  • Może obsługiwać duże ilości danych bez konieczności wstępnego agregowania.

  • Stosuje ograniczenia dotyczące niezależności danych w celu zapewnienia zgodności z wymogami prawnymi.

  • Może być używana z wielowymiarowym źródłem danych zawierającym miary takie jak SAP Business Warehouse (BW).

Jeśli Twoja organizacja chce używać metody DirectQuery, musisz doskonale znać zachowanie tej metody w programie Power BI Desktop oraz jej ograniczenia. Dopiero wtedy będziesz w stanie podjąć odpowiednie działania w celu jak najlepszej optymalizacji modelu DirectQuery.

Zachowanie połączeń DirectQuery

W przypadku korzystania z metody DirectQuery w celu połączenia z danymi w programie Power BI Desktop to połączenie zachowuje się w następujący sposób:

  • Gdy pierwszy raz użyjesz funkcji Pobierz dane w programie Power BI Desktop, wybierzesz źródło. Jeśli łączysz się ze źródłem relacyjnym, możesz wybrać zestaw tabel, a każda z nich określi zapytanie, które logicznie zwraca zestaw danych. Jeśli wybierzesz źródło wielowymiarowe, takie jak SAP BW, możesz wybrać tylko źródło.

  • Podczas ładowania danych żadne dane nie są importowane do programu Power BI Desktop; ładowany jest tylko schemat. Podczas tworzenia wizualizacji w programie Power BI Desktop zapytania są wysyłane do źródła bazowego w celu pobrania niezbędnych danych. Czas potrzebny na odświeżenie wizualizacji zależy od wydajności bazowego źródła danych.

  • Jeśli do danych bazowych zostaną wprowadzone zmiany, nie zostaną one natychmiast odzwierciedlone w istniejących wizualizacjach w usłudze Power BI z powodu buforowania. Aby zobaczyć te zmiany, należy przeprowadzić odświeżenie. Niezbędne zapytania są obecne dla każdej wizualizacji, a wizualizacje są odpowiednio aktualizowane.

  • Gdy opublikujesz raport w usłudze Power BI, zostanie w niej utworzony zestaw danych, tak samo jak w przypadku importowania. Jednak do tego zestawu danych nie są dołączane żadne dane.

  • Gdy otworzysz istniejący raport w usłudze Power BI, lub utworzysz nowy, względem źródła bazowego ponownie zostaną wykonane zapytania o niezbędne dane. W zależności od lokalizacji oryginalnego źródła może być konieczne skonfigurowanie lokalnej bramy danych.

  • Możesz przypinać wizualizacje lub całe strony raportu jako kafelki pulpitu nawigacyjnego. Kafelki są automatycznie odświeżane zgodnie z harmonogramem, na przykład co godzinę. Częstotliwość tego odświeżania można kontrolować, aby zapewnić zgodność z wymaganiami. Po otwarciu pulpitu nawigacyjnego kafelki odzwierciedlają dane w momencie ostatniego odświeżenia i mogą nie zawierać najnowszych zmian wprowadzonych w bazowym źródle danych. Zawsze możesz odświeżyć otwarty pulpit nawigacyjny, aby upewnić się, że jest on aktualny.

Ograniczenia połączeń DirectQuery

Użycie modelu DirectQuery może mieć negatywne skutki. Ograniczenia różnią się w zależności od używanego źródła danych. Należy wziąć pod uwagę następujące kwestie:

  • Wydajność — jak wspomniano wcześniej, ogólny komfort użytkowania w dużym stopniu zależy od wydajności bazowego źródła danych.

  • Bezpieczeństwo — jeśli używasz wielu źródeł danych w modelu DirectQuery, ważne jest, aby rozumieć, w jaki sposób dane przemieszczają się między bazowymi źródłami danych, oraz wpływ na bezpieczeństwo. Należy również ustalić, czy reguły zabezpieczeń mają zastosowanie do danych w źródle bazowym, ponieważ w usłudze Power BI każdy użytkownik może wyświetlać te dane.

  • Przekształcanie danych — w porównaniu z zaimportowanymi danymi dane, które pochodzą z modelu DirectQuery, mają ograniczenia dotyczące stosowania technik przekształcania danych w edytorze Power Query. Na przykład w przypadku nawiązania połączenia ze źródłem OLAP, takim jak SAP BW, w ogóle nie można wykonać żadnych transformacji; cały model zewnętrzny jest pobierany ze źródła danych. Jeśli chcesz wykonać przekształcenia danych, należy to zrobić w bazowym źródle danych.

  • Modelowanie — niektóre funkcje modelowania, których można używać na zaimportowanych danych, nie są dostępne, lub są ograniczone, w przypadku korzystania z modelu DirectQuery.

  • Raportowanie — prawie wszystkie funkcje raportowania, których można używać na zaimportowanych danych, są również obsługiwane w przypadku modeli DirectQuery, o ile bazowe źródło danych zapewnia odpowiedni poziom wydajności. Jednak po opublikowaniu raportu w usługa Power BI funkcje Szybki wgląd w szczegółowe informacje i Q&A nie są obsługiwane. Ponadto funkcja Eksploruj w programie Excel prawdopodobnie będzie działała z niższą wydajnością.

Aby uzyskać bardziej szczegółowe informacje na temat ograniczeń związanych z używaniem modelu DirectQuery, zobacz Konsekwencje używania modelu DirectQuery.

Teraz, gdy znasz już podstawy działania modelu DirectQuery i związane z nim ograniczenia, możesz podjąć działania w celu poprawienia wydajności.

Optymalizowanie wydajności

Wracając do scenariusza z firmą Tailwind Traders, podczas przeglądu modelu danych zauważasz, że zapytanie połączyło program Power BI Desktop z danymi źródłowymi przy użyciu modelu DirectQuery. Użycie modelu DirectQuery to przyczyna niskiej wydajności raportu odczuwanej przez użytkowników. Ładowanie stron w raporcie trwa zbyt długo, a tabele nie są odświeżane wystarczająco szybko, gdy wybierane są pewne elementy. Należy podjąć działania w celu zoptymalizowania wydajności modelu DirectQuery.

Możesz sprawdzić zapytania wysyłane do źródła bazowego i spróbować zidentyfikować przyczynę niskiej wydajności zapytań. Następnie możesz wprowadzić zmiany w programie Power BI Desktop i bazowym źródle danych, aby zoptymalizować ogólną wydajność.

Optymalizowanie danych w programie Power BI Desktop

Po wprowadzeniu wszystkich możliwych optymalizacji w źródle danych możesz podjąć dodatkowe działanie w programie Power BI Desktop, używając Analizatora wydajności, w którym możesz wyizolować zapytania w celu sprawdzenia planów zapytań.

Możesz przeanalizować czas trwania zapytań wysyłanych do źródła bazowego, aby identyfikować zapytania, których ładowanie zajmuje dużo czasu. Innymi słowy, możesz zidentyfikować, gdzie występują wąskie gardła.

Podczas optymalizowania modelu DirectQuery nie musisz stosować specjalnego podejścia; możesz zastosować te same techniki optymalizacji, których użyto na zaimportowanych danych, aby dostroić dane ze źródła modelu DirectQuery. Możesz na przykład zmniejszyć liczbę wizualizacji na stronie raportu lub zmniejszyć liczbę pól używanych w wizualizacji. Możesz również usunąć niepotrzebne kolumny i wiersze.

Aby uzyskać bardziej szczegółowe wskazówki dotyczące optymalizowania zapytania DirectQuery, zobacz Wskazówki dotyczące modelu DirectQuery w Power BI Desktop i Wskazówki dotyczące pomyślnego korzystania z zapytania bezpośredniego.

Optymalizowanie bazowego źródła danych (połączona baza danych)

Pierwszym punktem jest źródło danych. Należy jak najlepiej dostroić źródłową bazę danych, ponieważ wszystkie czynności poprawiające wydajność tej źródłowej bazy danych poprawią także wydajność modelu DirectQuery w usłudze Power BI. Czynności wykonane na bazie danych przyniosą najwięcej korzyści.

Rozważ użycie następujących standardowych rozwiązań z zakresu baz danych, które mają zastosowanie w większości sytuacji:

  • Unikaj stosowania złożonych kolumn obliczeniowych, ponieważ wyrażenie obliczeniowe zostanie osadzone w zapytaniach źródłowych. Bardziej wydajne jest wypchnięcie wyrażenia z powrotem do źródła, ponieważ pozwala to uniknąć wypychania do dołu. Możesz również rozważyć dodanie kolumn klucza zastępczego do tabel typu wymiaru.

  • Przejrzyj indeksy i sprawdź, czy bieżące indeksowanie jest poprawne. Jeśli chcesz utworzyć nowe indeksy, upewnij się, że są one odpowiednie.

Zapoznaj się ze wskazówkami zawartymi w dokumentacji źródła danych i zaimplementuj zalecenia dotyczące wydajności.

Dostosowywanie opcji redukcji zapytania

Program Power BI Desktop umożliwia wysyłanie mniejszej liczby zapytań i wyłączenie pewnych interakcji, które pogarszają komfort użytkowania, jeśli uruchomienie wynikowych zapytań zajmuje dużo czasu. Zastosowanie tych opcji uniemożliwia nieprzerwane wykonywanie zapytań względem źródła danych, co powinno poprawić wydajność.

W tym przykładzie dokonasz edycji ustawień domyślnych, aby zastosować dostępne opcje redukcji danych do modelu. Aby uzyskać dostęp do ustawień, wybierz pozycję Opcje pliku>i ustawienia>Opcje, przewijając stronę w dół, a następnie wybierając opcję Redukcja zapytania .

Dostępne są następujące opcje redukcji zapytania:

  • Zmniejsz liczbę zapytań wysyłanych przez — domyślnie każda wizualizacja wchodzi w interakcję z każdą inną wizualizacją. Zaznaczenie tego pola wyboru spowoduje wyłączenie tej domyślnej interakcji. Następnie możesz wybrać, które wizualizacje będą wzajemnie wchodzić w interakcje, korzystając z funkcji Edytuj interakcje.

  • Fragmentatory — domyślnie wybrana jest opcja Natychmiast stosuj zmiany fragmentatora. Aby wymusić na użytkownikach raportu ręczne stosowanie zmian fragmentatora, wybierz opcję Dodaj przycisk Zastosuj do każdego fragmentatora, aby stosować zmiany w wybranym czasie.

  • Filtry — domyślnie wybrana jest opcja Natychmiast stosuj zmiany w filtrze podstawowym. Aby wymusić na użytkownikach raportu ręczne stosowanie zmian w filtrze, wybierz jedną z opcji:

    • Dodaj przycisk Zastosuj do wszystkich filtrów podstawowych, aby stosować zmiany, gdy wszystko będzie gotowe

    • Dodaj jeden przycisk Zastosuj do okienka filtru, aby stosować zmiany jednocześnie (wersja zapoznawcza)

Uzyskiwanie dostępu do ustawień redukcji zapytań