Udostępnij za pośrednictwem


Zarządzanie trybem przechowywania w programie Power BI Desktop

W programie Microsoft Power BI Desktop można określić tryb przechowywania tabeli. Tryb przechowywania umożliwia kontrolowanie, czy program Power BI Desktop buforuje dane tabeli w pamięci dla raportów. Buforowanie oznacza tymczasowe przechowywanie danych w pamięci.

Ustawienie trybu przechowywania zapewnia wiele zalet. Tryb przechowywania dla każdej tabeli można ustawić indywidualnie w modelu. Ta akcja umożliwia korzystanie z pojedynczego modelu semantycznego, który zapewnia następujące korzyści:

  • wydajność zapytań: gdy użytkownicy wchodzą w interakcje z wizualizacjami w raportach usługi Power BI, zapytania języka DAX (Data Analysis Expressions) są przesyłane do modelu semantycznego. Buforowanie danych do pamięci przez prawidłowe ustawienie trybu przechowywania może zwiększyć wydajność zapytań i interakcyjność raportów.

  • duże modele semantyczne: tabele, które nie są buforowane, nie zużywają pamięci na potrzeby buforowania. Możesz włączyć interaktywną analizę dużych modeli semantycznych, które są zbyt duże lub kosztowne, aby całkowicie buforować w pamięci. Możesz wybrać tabele, które warto buforować, a które nie.

  • Optymalizacja odświeżania danych: Nie musisz odświeżać tabel, które nie są buforowane. Możesz skrócić czas odświeżania, buforując tylko dane niezbędne do spełnienia umów dotyczących poziomu usług i wymagań biznesowych.

  • wymagania prawie w czasie rzeczywistym: tabele z wymaganiami prawie w czasie rzeczywistym powinny nie być buforowane, aby zmniejszyć opóźnienie danych.

  • Writeback: Funkcja Writeback umożliwia użytkownikom biznesowym eksplorowanie scenariuszy co-jeśli przez zmianę wartości komórek. Aplikacje niestandardowe mogą stosować zmiany do źródła danych. Tabele, które nie są buforowane, mogą natychmiast wyświetlać zmiany, co umożliwia natychmiastową analizę efektów.

Ustawienie trybu przechowywania w programie Power BI Desktop jest jedną z trzech powiązanych funkcji:

  • modele kompozytowe: umożliwia raportowi korzystanie z co najmniej dwóch połączeń danych, w tym połączeń trybu DirectQuery lub importu, w dowolnej kombinacji. Aby uzyskać więcej informacji, zobacz Używanie modeli złożonych w programie Power BI Desktop.

  • Relacje wiele-do-wielu: Dzięki modelom złożonym można ustanowić relacje wiele-do-wielu między tabelami. W relacji wiele-do-wielu nie ma wymogu unikatowych wartości w tabelach. Usuwa również wcześniejsze obejścia, takie jak wprowadzenie nowych tabel tylko w celu ustanowienia relacji. Aby uzyskać więcej informacji, zobacz relacje wiele-do-wielu w programie Power BI Desktop.

  • tryb przechowywania: w trybie przechowywania można teraz określić, które wizualizacje wymagają zapytania do źródeł danych zaplecza. Wizualizacje, które nie wymagają zapytania, są importowane, nawet jeśli są oparte na trybie DirectQuery. Ta funkcja pomaga zwiększyć wydajność i zmniejszyć obciążenie zaplecza. Wcześniej nawet proste wizualizacje, takie jak fragmentatory, inicjowały zapytania wysyłane do źródeł zapleczowych.

Użyj właściwości trybu przechowywania

Właściwość Tryb przechowywania jest właściwością, którą można ustawić dla każdej tabeli w modelu i określa sposób buforowania danych tabeli w usłudze Power BI.

Aby ustawić właściwość "tryb przechowywania" lub wyświetlić jej bieżące ustawienie:

  1. W widoku Model wybierz tabelę, której właściwości chcesz wyświetlić lub ustawić.

  2. W panelu Właściwości , rozwiń sekcję Zaawansowane i rozwiń listę rozwijaną Tryb przechowywania.

    Zrzut ekranu przedstawiający widok Relacji z wyróżnioną listą rozwijaną opcji w celu zmiany trybu przechowywania.

Ustaw właściwość Storage mode na jedną z następujących trzech wartości:

  • Import: zaimportowane tabele z tym ustawieniem są buforowane. Zapytania przesyłane do semantycznego modelu usługi Power BI, które zwracają dane z tabel importu, mogą być realizowane tylko z buforowanych danych.

  • DirectQuery: tabele z tym ustawieniem nie są buforowane. Zapytania przesyłane do modelu semantycznego usługi Power BI — na przykład zapytania języka DAX — i zwracające dane z tabel DirectQuery mogą być realizowane tylko przez wykonywanie zapytań na żądanie do źródła danych. Zapytania przesyłane do źródła danych używają języka zapytań dla tego źródła danych, na przykład SQL.

  • Podwójne: tabele z tym ustawieniem mogą działać jako buforowane lub niebuforowane, w zależności od kontekstu zapytania przesłanego do modelu semantycznego usługi Power BI. W niektórych przypadkach zapytania są wypełniane z buforowanych danych. W innych przypadkach te zapytania są realizowane poprzez zapytanie na żądanie do źródła danych.

Zmiana trybu przechowywania tabeli na Import jest operacją nieodwracalną . Po ustawieniu tej właściwości nie można jej później zmienić na tryb DirectQuery lub tryb podwójny.

Notatka

Możesz użyć trybu podwójnego przechowywania w programie Power BI Desktop i usłudze Power BI.

Ograniczenia dotyczące tabel DirectQuery i Dual

Tabele podwójne mają te same ograniczenia funkcjonalne co tabele DirectQuery. Te ograniczenia obejmują ograniczone przekształcenia języka M i ograniczone funkcje języka DAX w kolumnach obliczeniowych. Aby uzyskać więcej informacji, zobacz ograniczenia trybu DirectQuery.

Propagacja ustawienia podwójnego

Rozważmy następujący model, w którym wszystkie tabele pochodzą z jednego źródła, które obsługuje tryb Import i DirectQuery.

Zrzut ekranu przedstawiający przykładowy widok relacji dla trybu przechowywania.

Załóżmy, że wszystkie tabele w tym modelu są początkowo ustawione na Tryb DirectQuery. Jeśli zmienisz tryb przechowywania tabeli SurveyResponse na Import, zostanie wyświetlone następujące okno ostrzegawcze:

Zrzut ekranu przedstawiający okno ostrzegawcze opisujące wyniki zmiany trybu przechowywania na Import.

Tabele wymiarów (Customer, Geographyi Date) można ustawić na Podwójne, aby zmniejszyć liczbę ograniczonych relacji w modelu semantycznym i zwiększyć wydajność. Ograniczone relacje zwykle obejmują co najmniej jedną tabelę DirectQuery, w której logika połączeń nie może być przenoszona do systemów źródłowych. Ponieważ tabele podwójne mogą działać jako tabele DirectQuery lub Import, ta sytuacja jest unikana.

Logika propagacji została zaprojektowana, aby pomóc w pracy z modelami zawierającymi wiele tabel. Załóżmy, że masz model z 50 tabelami, a tylko niektóre tabele faktów (transakcyjne) muszą być buforowane. Logika w programie Power BI Desktop oblicza minimalny zestaw tabel wymiarów, które muszą być ustawione na Podwójne, więc nie trzeba tego robić.

Logika propagacji obejmuje tylko jedną stronę relacji jeden-do-wielu.

Przykład użycia trybu przechowywania

Wyobraź sobie zastosowanie następujących ustawień właściwości trybu przechowywania:

Stół Tryb przechowywania
Sprzedaż Zapytanie bezpośrednie
SurveyResponse Import
Data Podwójny
Klient Podwójny
Geografia Podwójny

Ustawienie tych właściwości trybu przechowywania powoduje następujące zachowania przy założeniu, że tabela Sales ma znaczną ilość danych:

  • Program Power BI Desktop buforuje tabele wymiarów: Date, Customeri Geography, więc czasy ładowania początkowych raportów są krótsze, gdy pobierają wartości segmentatora do wyświetlenia.

  • Program Power BI Desktop nie buforuje tabeli Sales. Program Power BI Desktop udostępnia następujące wyniki, nie buforując tej tabeli:

    • Czasy odświeżania danych są lepsze, a zużycie pamięci jest mniejsze.
    • Zapytania raportów oparte na tabeli Sales są wykonywane w trybie DirectQuery. Te zapytania mogą trwać dłużej, ale są bliżej czasu rzeczywistego, ponieważ nie wprowadzono opóźnienia buforowania.
  • Zapytania raportów oparte na tabeli SurveyResponse są zwracane z pamięci podręcznej, dzięki czemu są stosunkowo szybkie.

Zapytania trafiające lub omijające pamięć podręczną

Jeśli połączysz program SQL Profiler z portem diagnostycznym programu Power BI Desktop, zobaczysz, które zapytania trafią lub przegapią pamięć podręczną w pamięci, wykonując ślad oparty na następujących zdarzeniach:

  • Zdarzenia zapytań\Rozpoczęcie zapytania
  • Przetwarzanie zapytań\Początek zapytania Vertipaq SE
  • Przetwarzanie zapytań\Początek zapytania bezpośredniego

Dla każdego zdarzenia Query Begin sprawdź inne zdarzenia o tym samym ActivityID. Jeśli na przykład nie istnieje zdarzenie DirectQuery Begin, ale istnieje zdarzenie Vertipaq SE Query Begin, zapytanie zostanie obsłużone z pamięci podręcznej.

Zapytania odwołujące się do tabel podwójnych zwracają dane z pamięci podręcznej, jeśli to możliwe; w przeciwnym razie przywracają tryb DirectQuery.

Poniższe zapytanie jest kontynuowane z poprzedniej tabeli. Odwołuje się tylko do kolumny z tabeli Data, która jest w trybie dualnym. W związku z tym zapytanie powinno trafić do pamięci podręcznej:

Zrzut ekranu przedstawiający tekst zapytania, który odwołuje się do tabeli Date (Data).

Poniższe zapytanie odwołuje się tylko do kolumny z tabeli Sales, która jest w trybie DirectQuery. W związku z tym nie powinno trafić do pamięci podręcznej.

Zrzut ekranu przedstawiający tekst zapytania odwołującego się do tabeli Sales.

Poniższe zapytanie jest interesujące, ponieważ łączy obie kolumny. To zapytanie nie trafia do pamięci podręcznej. Początkowo można oczekiwać pobrania wartości CalendarYear z pamięci podręcznej i SalesAmount wartości ze źródła, a następnie połączenia wyników, ale takie podejście jest mniej wydajne niż przesyłanie operacji SUM/GROUP BY do systemu źródłowego. Jeśli operacja zostanie wypchnięta do źródła, liczba zwróconych wierszy będzie prawdopodobnie znacznie mniejsza:

Zrzut ekranu przedstawiający tekst zapytania, który odwołuje się zarówno do tabeli Date, jak i tabeli Sales.

Notatka

To zachowanie różni się od relacji wiele-do-wielu w programie Power BI Desktop w przypadku łączenia tabel buforowanych i niebuforowanych.

Bufory powinny być utrzymywane w synchronizacji

Zapytania wyświetlane w poprzedniej sekcji pokazują, że tabele podwójne czasami trafiają do pamięci podręcznej, a czasami nie. W związku z tym, jeśli pamięć podręczna jest nieaktualna, mogą być zwracane różne wartości. Wykonywanie zapytań nie będzie próbowało maskować problemów z danymi, na przykład przez filtrowanie wyników DirectQuery w celu dopasowania do buforowanych wartości. Twoim zadaniem jest zapoznanie się z przepływami danych i odpowiednie projektowanie. Istnieją ustalone techniki obsługi takich przypadków w źródle, w razie potrzeby.

Tryb przechowywania dwuelementowego to optymalizacja wydajności. Należy go używać tylko w sposób, który nie narusza możliwości spełnienia wymagań biznesowych. Aby uzyskać alternatywne zachowanie, rozważ użycie technik opisanych w relacjach wiele do wielu w programie Power BI Desktop.

Widok tabeli

Jeśli co najmniej jedna tabela w modelu semantycznym ma tryb przechowywania ustawiony na wartość Import lub Dual, karta widok tabeli jest wyświetlana.

Zrzut ekranu z wyróżnioną ikoną Widoku tabeli.

Po wybraniu Tabel podwójnych i Importu w widoku tabeli , wyświetlają one dane z pamięci podręcznej. Tabele trybu DirectQuery nie pokazują danych i zostanie wyświetlony komunikat informujący, że tabele DirectQuery nie mogą być wyświetlane.

Zagadnienia i ograniczenia

Istnieje kilka ograniczeń dotyczących bieżącej wersji trybu przechowywania i korelacji z modelami złożonymi.

Następujących źródeł połączenia na żywo (wielowymiarowych) nie można używać z modelami złożonymi:

  • SAP HANA
  • SAP Business Warehouse

Po nawiązaniu połączenia z tymi wielowymiarowymi źródłami przy użyciu trybu DirectQuery nie można nawiązać połączenia z innym źródłem DirectQuery ani połączyć go z zaimportowanymi danymi.

Istniejące ograniczenia dotyczące używania trybu DirectQuery nadal mają zastosowanie w przypadku korzystania z modeli złożonych. Wiele z tych ograniczeń dotyczy teraz konkretnych tabel, w zależności od trybu przechowywania tabeli. Na przykład kolumna obliczeniowa w zaimportowanej tabeli może odwoływać się do innych tabel, ale kolumna obliczeniowa w tabeli DirectQuery jest nadal ograniczona do odwoływania się tylko do kolumn w tej samej tabeli. Inne ograniczenia dotyczą modelu jako całości, jeśli którakolwiek z tabel w modelu to Zapytanie bezpośrednie.

Aby uzyskać więcej informacji na temat modeli złożonych i trybu DirectQuery, zobacz następujące artykuły: