Techniki redukcji danych na potrzeby modelowania importu

W tym artykule elementy docelowe są przeznaczone dla osób modelujących dane programu Power BI Desktop tworzących modele importu. Opisuje różne techniki, które ułatwiają zmniejszenie ilości danych załadowanych do modeli importu.

Modele importu są ładowane z danymi skompresowanymi i zoptymalizowanymi, a następnie przechowywanymi na dysku przez aparat magazynu VertiPaq. Gdy dane źródłowe są ładowane do pamięci, można zobaczyć kompresję 10x, dlatego rozsądnie jest oczekiwać, że 10 GB danych źródłowych może skompresować do około 1 GB rozmiaru. Ponadto w przypadku utrwalonego dysku można osiągnąć dodatkową redukcję o 20%.

Pomimo wydajności osiągniętej przez aparat magazynu VertiPaq, ważne jest, aby zminimalizować dane, które mają zostać załadowane do modeli. Jest to szczególnie ważne w przypadku dużych modeli lub modeli, które przewidujesz, że w miarę upływu czasu staną się duże. Oto cztery przekonujące powody:

  • Większe rozmiary modeli mogą nie być obsługiwane przez pojemność. Pojemność udostępniona może hostować modele o rozmiarze do 1 GB, natomiast pojemności Premium mogą hostować większe modele w zależności od jednostki SKU. Aby uzyskać więcej informacji, przeczytaj artykuł Obsługa usługi Power BI Premium dla dużych modeli semantycznych. (Modele semantyczne były wcześniej znane jako zestawy danych).
  • Mniejsze rozmiary modeli zmniejszają rywalizację o zasoby pojemności, w szczególności pamięć. Umożliwia ona jednoczesne ładowanie większej liczby modeli przez dłuższy czas, co skutkuje niższymi współczynnikami eksmisji.
  • Mniejsze modele umożliwiają szybsze odświeżanie danych, co powoduje mniejsze opóźnienia raportowania, wyższą przepływność odświeżania modelu semantycznego oraz mniejsze obciążenie systemu źródłowego i zasobów pojemności.
  • Mniejsze liczby wierszy tabeli mogą spowodować szybsze obliczenia, co może zapewnić lepszą ogólną wydajność zapytań.

W tym artykule opisano osiem różnych technik redukcji danych. Te techniki obejmują:

Usuwanie zbędnych kolumn

Kolumny tabeli modelu służą dwóm głównym celom:

  • Raportowanie w celu osiągnięcia projektów raportów, które mają odpowiedni filtr, grupowanie i podsumowywanie danych modelu
  • Struktura modelu, obsługując relacje modelu, obliczenia modelu, role zabezpieczeń, a nawet formatowanie kolorów danych

Prawdopodobnie można usunąć kolumny, które nie obsługują tych celów. Usuwanie kolumn jest nazywane filtrowaniem pionowym.

Zalecamy projektowanie modeli z dokładnie odpowiednią liczbą kolumn na podstawie znanych wymagań raportowania. Wymagania mogą ulec zmianie w miarę upływu czasu, ale pamiętaj, że łatwiej jest dodać kolumny później niż później. Usuwanie kolumn może uszkodzić raporty lub strukturę modelu.

Usuwanie niepotrzebnych wierszy

Tabele modelu powinny być ładowane z jak najmniejszą liczbą wierszy. Można to osiągnąć, ładując przefiltrowane zestawy wierszy do tabel modelu z dwóch różnych powodów: filtrowanie według jednostki lub według czasu. Usuwanie wierszy jest określane jako filtrowanie poziome.

Filtrowanie według jednostki obejmuje ładowanie podzestawu danych źródłowych do modelu. Na przykład zamiast ładowania faktów sprzedaży dla wszystkich regionów sprzedaży tylko załaduj fakty dla jednego regionu. Takie podejście projektowe spowoduje powstanie wielu mniejszych modeli i może również wyeliminować konieczność zdefiniowania zabezpieczeń na poziomie wiersza (ale będzie wymagać udzielenia określonych uprawnień do modelu semantycznego w usługa Power BI i utworzenia "zduplikowanych" raportów łączących się z poszczególnymi modelami semantycznymi). Aby uprościć zarządzanie i publikację, możesz użyć parametrów dodatku Power Query i plików szablonów usługi Power BI. Aby uzyskać więcej informacji, przeczytaj wpis w blogu Szczegółowe omówienie parametrów zapytań i szablonów usługi Power BI

Filtrowanie według czasu obejmuje ograniczenie ilości historii danych załadowanych do tabel faktów (i ograniczenie wierszy dat załadowanych do tabel dat modelu). Zalecamy, aby nie ładować automatycznie całej dostępnej historii, chyba że jest to znane wymaganie dotyczące raportowania. Warto zrozumieć, że filtry Power Query oparte na czasie mogą być sparametryzowane, a nawet ustawić użycie względnych okresów czasu (na przykład w stosunku do daty odświeżania, na przykład w ciągu ostatnich pięciu lat). Należy również pamiętać, że zmiany retrospektywne filtrów czasu nie będą przerywać raportów; spowoduje to tylko mniej (lub więcej) historii danych dostępnych w raportach.

Grupuj według i podsumuj

Być może najbardziej efektywną techniką zmniejszenia rozmiaru modelu jest ładowanie wstępnie podsumowanych danych. Ta technika może służyć do podniesienia ziarna tabel faktów. Istnieje jednak wyraźny kompromis, co powoduje utratę szczegółów.

Na przykład źródłowa tabela faktów sprzedaży przechowuje jeden wiersz na wiersz zamówienia. Znaczne zmniejszenie ilości danych można osiągnąć, podsumowując wszystkie metryki sprzedaży, grupując według daty, klienta i produktu. Rozważmy, że można osiągnąć jeszcze bardziej znaczącą redukcję danych, grupując według daty na poziomie miesiąca. Może to spowodować zmniejszenie rozmiaru modelu o 99%, ale raportowanie na poziomie dnia (lub na poziomie indywidualnego zamówienia) nie jest już możliwe. Podjęcie decyzji o podsumowaniu danych faktów zawsze wiąże się z kompromisami. Kompromis można ograniczyć przez projekt modelu mieszanego, a ta opcja jest opisana w technice Przełączanie do trybu mieszanego.

Optymalizowanie typów danych kolumn

Aparat magazynu VertiPaq używa oddzielnych struktur danych dla każdej kolumny. Zgodnie z projektem te struktury danych umożliwiają uzyskanie najwyższych optymalizacji dla danych kolumn liczbowych, które używają kodowania wartości. Jednak tekst i inne dane nieliczbowe używają kodowania skrótów. Aparat magazynu wymaga przypisania identyfikatora liczbowego do każdej unikatowej wartości tekstowej zawartej w kolumnie. Jest to następnie identyfikator liczbowy, który jest następnie przechowywany w strukturze danych, co wymaga wyszukiwania skrótu podczas przechowywania i wykonywania zapytań.

W niektórych konkretnych przypadkach można przekonwertować dane tekstowe źródła na wartości liczbowe. Na przykład numer zamówienia sprzedaży może być stale poprzedzony wartością tekstową (na przykład "SO123456"). Prefiks można usunąć, a wartość numeru zamówienia przekonwertowana na liczbę całkowitą. W przypadku dużych tabel może to spowodować znaczne zmniejszenie ilości danych, zwłaszcza gdy kolumna zawiera unikatowe lub wysokie wartości kardynalności.

W tym przykładzie zalecamy ustawienie domyślnej właściwości podsumowania kolumny na "Nie sumuj". Pomaga zminimalizować niewłaściwe podsumowanie wartości numeru zamówienia.

Preferencje dotyczące kolumn niestandardowych

Aparat magazynu VertiPaq przechowuje kolumny obliczeniowe modelu (zdefiniowane w języku DAX), podobnie jak zwykłe kolumny źródłowe dodatku Power Query. Jednak struktury danych są przechowywane nieco inaczej i zwykle osiągają mniej wydajną kompresję. Ponadto są one tworzone po załadowaniu wszystkich tabel dodatku Power Query, co może spowodować wydłużenie czasu odświeżania danych. W związku z tym mniej wydajne jest dodawanie kolumn tabeli jako kolumn obliczeniowych niż kolumny obliczeniowe dodatku Power Query (zdefiniowane w języku M).

Preferencja powinna być tworzenie kolumn niestandardowych w dodatku Power Query. Gdy źródło jest bazą danych, można osiągnąć większą wydajność ładowania na dwa sposoby. Obliczenia można zdefiniować w instrukcji SQL (przy użyciu natywnego języka zapytań dostawcy) lub można je zmaterializować jako kolumnę w źródle danych.

Jednak w niektórych przypadkach kolumny obliczeniowe modelu mogą być lepszym wyborem. Może to być przypadek, gdy formuła obejmuje ocenę miar lub wymaga określonych funkcji modelowania obsługiwanych tylko w funkcjach języka DAX. Aby uzyskać informacje na temat jednego z takich przykładów, zapoznaj się z artykułem Understanding functions for parent-child hierarchies in DAX (Opis funkcji dla hierarchii nadrzędny-podrzędny w języku DAX ).

Wyłączanie ładowania zapytań Dodatku Power Query

Zapytania Power Query, które mają obsługiwać integrację danych z innymi zapytaniami, nie powinny być ładowane do modelu. Aby uniknąć ładowania zapytania do modelu, pamiętaj, aby wyłączyć ładowanie zapytań w tych wystąpieniach.

Screenshot of Power Query showing

Wyłączanie automatycznej daty/godziny

Program Power BI Desktop zawiera opcję o nazwie Automatyczna data/godzina. Po włączeniu tej funkcji tworzy ukrytą tabelę automatycznej daty/godziny dla kolumn dat, aby obsługiwać autorów raportów podczas konfigurowania filtrów, grupowania i przechodzenia do szczegółów dla okresów kalendarzowych. Ukryte tabele są w rzeczywistości tabelami obliczeniowych, które zwiększą rozmiar modelu. Aby uzyskać wskazówki dotyczące korzystania z tej opcji, zapoznaj się ze wskazówkami dotyczącymi automatycznej daty/godziny w programie Power BI Desktop .

Przełączanie do trybu mieszanego

W programie Power BI Desktop projekt trybu mieszanego tworzy model złożony. Zasadniczo umożliwia określenie trybu przechowywania dla każdej tabeli. W związku z tym każda tabela może mieć właściwość Tryb przechowywania ustawioną jako Import lub DirectQuery (Podwójne jest inną opcją).

Skuteczną techniką zmniejszenia rozmiaru modelu jest ustawienie właściwości Tryb przechowywania dla większych tabel z danymi typu fakt na wartość DirectQuery. Należy wziąć pod uwagę, że takie podejście projektowe może działać dobrze w połączeniu z techniką Grupowanie według i podsumowywanie wprowadzone wcześniej. Na przykład podsumowane dane sprzedaży mogą służyć do osiągnięcia raportowania "podsumowania" o wysokiej wydajności. Strona przeglądania szczegółowego może wyświetlać szczegółową sprzedaż dla określonego (i wąskiego) kontekstu filtru, wyświetlając wszystkie zamówienia sprzedaży w kontekście. W tym przykładzie strona przeglądania szczegółowego zawiera wizualizacje oparte na tabeli DirectQuery w celu pobrania danych zamówienia sprzedaży.

Istnieje jednak wiele konsekwencji związanych z zabezpieczeniami i wydajnością związanych z modelami złożonymi. Aby uzyskać więcej informacji, przeczytaj artykuł Używanie modeli złożonych w programie Power BI Desktop .

Aby uzyskać więcej informacji na temat projektowania modelu importu usługi Power BI, zobacz następujące artykuły: