Techniki kompresji LuckyTemplates w DAX Studio

W tym samouczku poznasz różne techniki kompresji usługi LuckyTemplates w , które pomogą zoptymalizować raport.

Po załadowaniu danych segment po segmencie przez usługi Analysis Services w LuckyTemplates Power Pivot i SSAS występują dwa zdarzenia. Po pierwsze, próbują użyć różnych metod kodowania do kompresji kolumn, aby zmniejszyć ogólny rozmiar pamięci RAM . Drugi polega na tym, że próbują sfinansować najlepszą kolejność sortowania, która łączy powtarzające się wartości. Ta metoda zwiększa również kompresję, co z kolei zmniejsza nacisk na pamięć.

Istnieją różne techniki kompresji używane przez usługi Analysis Services. Ten samouczek obejmuje trzy metody, w szczególności: kodowanie wartości, kodowanie długości przebiegu i kodowanie słownikowe. W ostatniej sekcji tego samouczka zostanie omówiony sposób sortowania kolejności prac w usługach Analysis Services.

Spis treści

Technika kompresji usługi LuckyTemplates nr 1: kodowanie wartości

Pierwszy nazywa się kodowaniem wartości.

Kodowanie wartości wyszukuje matematyczny związek między każdą wartością w kolumnie, aby zmniejszyć ilość pamięci. Oto przykład w programie Microsoft Excel:

Ta kolumna wymaga 16 384 bitów do przechowywania wartości.

Techniki kompresji LuckyTemplates w DAX Studio

Aby obliczyć wymagane bity, najpierw użyj funkcji MAX() w programie Excel, aby uzyskać najwyższą wartość w kolumnach. W tym przypadku jest to 9144. Następnie użyj funkcji POWER(), aby obliczyć wymagane bity. Użyj argumentu POTĘGA(2, X), gdzie X jest dowolną wartością dodatnią, która zwróci odpowiedź większą niż wartość MAX. X w tym przypadku reprezentuje również wymagane bity. Tak więc w tym przykładzie wartość X wynosi 14, co daje 16,384 . Dlatego kolumna wymaga 14 bitów pamięci.

Aby zredukować liczbę wymaganych bitów za pomocą kodowania wartości, VertiPaq wyszukuje wartość MIN w kolumnie i odejmuje ją od każdej wartości. W tym przypadku wartość MIN w kolumnie to 9003. Jeśli odejmiesz tę wartość od kolumny, zwróci ona następujące wartości:

Techniki kompresji LuckyTemplates w DAX Studio

Korzystając z tych samych funkcji i argumentów, możesz zobaczyć, że dla nowej kolumny wartość MAX wynosi 141. A użycie 8 jako wartości X daje w wyniku 256 . Dlatego nowa kolumna wymaga tylko 8 bitów.

Możesz zobaczyć, jak skompresowana jest druga kolumna w porównaniu z pierwszą kolumną.

Gdy dane zostaną skompresowane i spróbujesz wysłać zapytanie do nowej kolumny, Storage Engine lub Vertipaq skanuje tę kolumnę. Nie zwrócą po prostu nowych wartości kolumny. Zamiast tego dodają odjętą wartość przed zwróceniem wyniku użytkownikowi.

Jednak kodowanie wartości działa tylko w przypadku kolumn zawierających liczby całkowite lub wartości ze stałymi liczbami dziesiętnymi.

Technika kompresji usługi LuckyTemplates nr 2: kodowanie długości przebiegu

Druga metoda kodowania nosi nazwę Run Length Encoding.

Run Length Encoding tworzy strukturę danych, która zawiera odrębną wartość, kolumnę Start i kolumnę Count.

Weźmy przykład:

Techniki kompresji LuckyTemplates w DAX Studio

W tym przypadku oznacza to, że w pierwszym wierszu dostępna jest jedna wartość koloru czerwonego . Następnie dowiaduje się, że wartość Black zaczyna się w drugim wierszu i jest dostępna dla następnych czterech komórek. Przechodzi do trzeciej wartości, Blue , która zaczyna się w szóstym wierszu i jest dostępna dla następnych trzech wierszy. I to trwa, dopóki nie osiągnie ostatniej wartości w kolumnie.

Dlatego zamiast przechowywać całą kolumnę, tworzy strukturę danych, która zawiera tylko informacje o tym, gdzie zaczyna się i kończy dana wartość oraz ile ma duplikatów.

Techniki kompresji LuckyTemplates w DAX Studio

W przypadku kolumn o tej samej strukturze dane można dodatkowo skompresować, ustawiając wartości w porządku rosnącym lub malejącym.

Techniki kompresji LuckyTemplates w DAX Studio

Dzięki tej prawidłowo posortowanej kolumnie widać, że metoda Run Length Encoding zwraca teraz strukturę danych o jeden wiersz mniej.

Techniki kompresji LuckyTemplates w DAX Studio

Jeśli więc masz do czynienia z wieloma różnymi wartościami, zaleca się posortowanie kolumny w możliwie najbardziej optymalny sposób. To da ci strukturę danych z mniejszymi wierszami, co z kolei zajmuje mniej pamięci RAM.

Kodowania długości przebiegu nie można zastosować do kluczy podstawowych, ponieważ kolumny klucza podstawowego zawierają tylko unikatowe wartości. Więc zamiast przechowywać jeden wiersz dla każdej wartości, będzie przechowywać kolumnę bez zmian.

Technika kompresji usługi LuckyTemplates nr 3: kodowanie słownikowe

Trzecia metoda kodowania nazywa się kodowaniem słownikowym.

Kodowanie słownikowe tworzy strukturę podobną do słownika, która zawiera odrębną wartość kolumny. Przypisuje również indeks do tej unikalnej wartości.

Korzystając z poprzedniego przykładu, przyjrzyjmy się, jak działa kodowanie słownikowe. W tym przypadku wartościom Czerwonym, Czarnym i Niebieskim przypisywany jest odpowiednio indeks 0, 1 i 2.

Techniki kompresji LuckyTemplates w DAX Studio

Następnie tworzy strukturę danych podobną do Run Length Encoding. Jednak zamiast przechowywania rzeczywistych wartości, Dictionary Encoding przechowuje przypisany indeks każdej wartości.

Techniki kompresji LuckyTemplates w DAX Studio

To jeszcze bardziej zmniejsza zużycie pamięci RAM, ponieważ liczby zajmują mniej miejsca niż wartości łańcuchowe.

Kodowanie słownikowe sprawia również, że typ danych tabelarycznych jest niezależny. Oznacza to, że niezależnie od tego, czy masz kolumnę, którą można przechowywać w różnych typach danych, nie będzie to miało znaczenia, ponieważ struktura danych będzie przechowywać tylko wartość indeksu.

Jednak nawet jeśli jest niezależny, typ danych nadal będzie miał wpływ na rozmiar słownika. W zależności od typu danych, w którym chcesz zapisać kolumnę, rozmiar słownika (lub struktury danych) będzie się zmieniał. Ale rozmiar samej kolumny pozostanie taki sam.

W zależności od tego, jaki typ danych wybierzesz, po zastosowaniu kodowania słownikowego w kolumnie można później zastosować kodowanie długości przebiegu.

W takim przypadku usługi Analysis Services utworzą dwie struktury danych. Najpierw utworzy słownik, a następnie zastosuje do niego Run Length Encoding, aby jeszcze bardziej zwiększyć kompresję kolumny.

Kolejność sortowania w usługach Analysis Services

W ostatniej części tego samouczka omówimy sposób, w jaki usługi Analysis Services decydują o najbardziej optymalnym sposobie sortowania danych.

Jako przykład przyjrzyjmy się kolumnie zawierającej wartości Red, Blue, Black, Green i Pink. Przypisano im również numery od 1 do 5. To działa jak słownik naszej kolumny.

Techniki kompresji LuckyTemplates w DAX Studio

Teraz wypełnij całą kolumnę w programie Excel tymi wartościami. Użyj tego argumentu, aby wygenerować losowo kolumnę zawierającą te wartości.

Techniki kompresji LuckyTemplates w DAX Studio

Przeciągnij formułę do ostatniego wiersza. Kliknij OK , jeśli pojawi się wyskakujące okienko Duża operacja . Tak to teraz będzie wyglądać:

Techniki kompresji LuckyTemplates w DAX Studio

Następnie skopiuj całą kolumnę i wklej ją jako Value .

Techniki kompresji LuckyTemplates w DAX Studio

Teraz, jeśli przejdziesz do opcji Plik w dokumencie programu Excel i klikniesz Informacje , zobaczysz, że kolumna zajmuje 14,1 MB .

Aby zmniejszyć ilość zużywanej pamięci RAM, możesz posortować kolumnę od A do Z. Jeśli ponownie sprawdzisz rozmiar, zobaczysz, że został on zmniejszony do 12,5 MB .

Zmniejszenie o 1,9 MB może nie wydawać się dużo. Dzieje się tak, ponieważ w przykładzie wykorzystano pojedynczą kolumnę w programie Excel do zademonstrowania. Excel jest ograniczony tylko do 1 miliona wierszy. Jednak w usłudze LuckyTemplates Twoje dane mogą zawierać miliardy wierszy i kolumn. Zmniejszenie zajmowanej przestrzeni rośnie wykładniczo.

Wniosek

Po posortowaniu danych w najbardziej optymalny sposób usługi Analysis Services stosują jedną z trzech technik kompresji w zależności od typu danych.

Zwiększa to kompresję danych, co znacznie zmniejsza ilość pamięci zużywanej w urządzeniu. Dzięki temu Twój raport jest bardziej optymalny, co ułatwia uruchamianie i ładowanie.

Leave a Comment

Dodawaj, usuwaj i zmieniaj nazwy kolumn w R za pomocą Dplyr

Dodawaj, usuwaj i zmieniaj nazwy kolumn w R za pomocą Dplyr

W tym samouczku omówimy pakiet dplyr, który umożliwia sortowanie, filtrowanie, dodawanie i zmianę nazw kolumn w języku R.

Funkcje zbierania w Microsoft Power Automate

Funkcje zbierania w Microsoft Power Automate

Odkryj różnorodne funkcje zbierania, które można wykorzystać w Power Automate. Zdobądź praktyczne informacje o funkcjach tablicowych i ich zastosowaniu.

Oceń wydajność kodu DAX w DAX Studio

Oceń wydajność kodu DAX w DAX Studio

Z tego samouczka dowiesz się, jak ocenić wydajność kodów DAX przy użyciu opcji Uruchom test porównawczy w DAX Studio.

Czym jest self w Pythonie: przykłady z życia wzięte

Czym jest self w Pythonie: przykłady z życia wzięte

Czym jest self w Pythonie: przykłady z życia wzięte

Jak zapisać i załadować plik RDS w R

Jak zapisać i załadować plik RDS w R

Dowiesz się, jak zapisywać i ładować obiekty z pliku .rds w R. Ten blog będzie również omawiał sposób importowania obiektów z R do LuckyTemplates.

Powrót do pierwszych N dni roboczych — rozwiązanie języka kodowania DAX

Powrót do pierwszych N dni roboczych — rozwiązanie języka kodowania DAX

Z tego samouczka języka kodowania DAX dowiesz się, jak używać funkcji GENERUJ i jak dynamicznie zmieniać tytuł miary.

Zaprezentuj spostrzeżenia przy użyciu wielowątkowej techniki dynamicznych wizualizacji w usłudze LuckyTemplates

Zaprezentuj spostrzeżenia przy użyciu wielowątkowej techniki dynamicznych wizualizacji w usłudze LuckyTemplates

W tym samouczku omówiono sposób korzystania z techniki wielowątkowych wizualizacji dynamicznych w celu tworzenia szczegółowych informacji na podstawie dynamicznych wizualizacji danych w raportach.

Wprowadzenie do filtrowania kontekstu w usłudze LuckyTemplates

Wprowadzenie do filtrowania kontekstu w usłudze LuckyTemplates

W tym artykule omówię kontekst filtra. Kontekst filtrowania to jeden z głównych tematów, z którym każdy użytkownik usługi LuckyTemplates powinien zapoznać się na początku.

Najlepsze wskazówki dotyczące korzystania z aplikacji w usłudze online LuckyTemplates

Najlepsze wskazówki dotyczące korzystania z aplikacji w usłudze online LuckyTemplates

Chcę pokazać, jak usługa online LuckyTemplates Apps może pomóc w zarządzaniu różnymi raportami i spostrzeżeniami generowanymi z różnych źródeł.

Analizuj zmiany marży zysku w godzinach nadliczbowych — Analizuj za pomocą LuckyTemplates i DAX

Analizuj zmiany marży zysku w godzinach nadliczbowych — Analizuj za pomocą LuckyTemplates i DAX

Dowiedz się, jak obliczyć zmiany marży zysku przy użyciu technik, takich jak rozgałęzianie miar i łączenie formuł języka DAX w usłudze LuckyTemplates.