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.
Podczas optymalizowania modelu danych i języka DAX dla usługi LuckyTemplates warto pamiętać, że w tle działają dwa silniki — aparat formuł i aparat magazynu .
Te dwa silniki współpracują ze sobą, aby zwrócić użytkownikowi potrzebne wyniki. Dostarczają zestaw wyników w postaci tabeli lub wartości skali.
Spis treści
Rola silnika formuł
W tym artykule skupimy się na silniku formuł.
Mechanizm formuł to mechanizm najwyższego poziomu, który zarządza całą architekturą zapytania.
Niezależnie od tego, co robisz podczas wykonywania zapytania, tworzenia kolumny obliczeniowej lub tabeli obliczeniowej, włącza się mechanizm formuł.
Mechanizm formuł rozumie zapytania otrzymane nie tylko w języku DAX, ale także w MDX. Na przykład, gdy używasz programu Excel, tworzysz modele przestawne na podstawie tabel przestawnych, a tabele przestawne faktycznie używają języka MDX.
W tym miejscu do akcji wkracza aparat formuł. Ponieważ obsługuje on zarówno język DAX, jak i MDX, możesz użyć innego modelu usługi LuckyTemplates. Zapytania wysyłane z tego modelu danych będą korzystały z języka DAX, podczas gdy zapytania pochodzące z modelu przestawnego będą korzystały z języka MDX.
Jak działa silnik Formuły
Zrozumienie zapytań pochodzących ze źródła MDX lub źródła DAX to tylko jeden z czynników wpływających na wydajność aparatu formuł. Przechodzi również przez inne kroki, które pomogą Ci pracować nad zapytaniami.
Najpierw musi wygenerować plan zapytań zrozumiały dla mechanizmu pamięci masowej . Jako silnik niższego poziomu, silnik magazynu tak naprawdę nie wie, czy zapytanie zostało wykonane przez tabelę przestawną w programie Excel, czy wizualizację w usłudze LuckyTemplates.
Podczas tworzenia planu kwerend aparat formuł najpierw tworzy logiczny plan kwerend, a następnie tworzy fizyczny plan kwerend. Zarówno logiczny, jak i fizyczny plan zapytań powinny wyglądać podobnie.
Po wykonaniu fizycznego planu zapytań narzędzie użytkownika lub klienta otrzymuje zestaw wyników. Stamtąd narzędzie klienckie dyktuje, w jaki sposób wykorzysta wyniki lub zestaw danych do wyświetlenia wyniku końcowego użytkownikowi.
Główne ograniczenia silnika formuł
Aparat formuł odgrywa ogromną rolę podczas optymalizowania języka DAX pod kątem usługi LuckyTemplates przy użyciu DAX Studio. Wiąże się to jednak również z pewnymi ograniczeniami.
Po pierwsze, silnik formuł zawsze używa jednego rdzenia do zarządzania całą operacją, niezależnie od liczby rdzeni procesora dostępnych w systemie .
Kiedy otworzę Menedżera zadań, zobaczysz, że mój procesor ma sześć rdzeni.
Pomimo tego, silnik formuł nadal wybierze jeden z tych sześciu rdzeni do pracy, podczas gdy silnik pamięci masowej będzie korzystał z reszty.
Po drugie, silnik formuł nie ma bezpośredniego dostępu do Twojej bazy danych . Z powodu tego ograniczenia musiałbyś przechowywać dane albo w pamięci wewnętrznej, albo w bazie danych i utworzyć DirectQuery w tej bazie danych.
Opiera się również na silniku pamięci masowej, aby uzyskać dane w postaci pamięci podręcznej danych. Silnik formuł następnie iteruje po tej pamięci podręcznej danych, aby kontynuować, zanim będzie mógł dostarczyć wyniki użytkownikowi końcowemu.
Jak silnik formuł pomaga zoptymalizować język DAX pod kątem usługi LuckyTemplates
Czasami, gdy próbujesz zoptymalizować swój model danych lub język DAX dla usługi LuckyTemplates, zauważysz, że aparat pamięci masowej zwalnia podczas wykonywania zapytań. W takim przypadku możesz użyć silnika formuł do wykonania całego obliczenia, aby zoptymalizować proces.
Należy pamiętać, że jeśli silnik formuł sam zbuduje całą tabelę, zestaw wyników utworzony w tym procesie nie zostanie użyty w kolejnych zapytaniach, które zostaną wygenerowane przez narzędzie klienckie, jeśli będą one podobne do wcześniej wykonanych zapytań . Ale w przypadku, gdy silnik pamięci zapewnia pamięć podręczną danych, ta konkretna pamięć podręczna danych może być przechowywana w pamięci, aby mogła optymalizować żądania przychodzące z narzędzia klienckiego.
Jak to będzie działać?
Załóżmy, że piszemy zapytanie, które ma zostać wykonane w całości przez mechanizm składowania, ale z pewnymi aspektami do obliczenia przez mechanizm formuł. W takim przypadku mechanizm przechowywania wyśle pamięć podręczną danych z powrotem do mechanizmu formuły, a pamięć podręczna danych (w przypadku, gdy jest prosta) może być przechowywana w pamięci.
Teraz, jeśli podobne zapytanie pojawi się kilka sekund później, zamiast ponownie skanować cały model danych, silnik formuł lub silnik pamięci użyje tej konkretnej pamięci podręcznej danych, aby skrócić czas zapytania i poprawić wrażenia użytkownika. ulepszony.
Zmniejszenie obciążenia silnika formuły
Ponownie, silnik formuł rozumie kody DAX i MDX.
Więc jeśli używasz , i innych zadań, mechanizm formuł zna wszystkie funkcje używane w języku DAX i będzie w stanie rozwiązać je wszystkie samodzielnie. Może to jednak wpłynąć na wydajność zapytania, zwłaszcza że aparat formuł próbuje zrobić wszystko przy użyciu jednego rdzenia.
Dlatego też musimy pamiętać o zmniejszeniu obciążenia silnika formuły i zwiększeniu obciążenia silnika magazynującego.
Dobrym przykładem tego, jak różne są obliczenia w silniku formuł w porównaniu z silnikiem pamięci masowej, byłoby użycie CROSSJOIN a .
Kiedy korzystasz z CROSSJOIN, tylko ograniczona ilość danych będzie przesyłana przez silnik pamięci masowej. Jeśli chodzi o resztę obliczeń, wszystkie zostaną wykonane przez silnik formuł. Dla porównania, użycie SUMMARIZE oznacza wykonanie całego zapytania w silniku pamięci masowej.
Oczywiście zależałoby to również od sposobu użycia SUMMARIZE.
Jeśli funkcja SUMMARIZE zostanie użyta jako najbardziej wewnętrzna funkcja, to z pewnością zostanie zepchnięta do silnika magazynującego. Ale w niektórych przypadkach SUMMARIZE jest używany w połączeniu z innym kodem, który wymaga działania mechanizmu formuł. W takim przypadku silnik formuły wkroczy i wykona pracę.
Wiedza o tym, gdzie trafia obciążenie, może pomóc zoptymalizować wydajność zapytania, zwłaszcza jeśli pamięta się o pojemności i ograniczeniach dostępnych aparatów.
Narzędzia, które mogą pomóc w optymalizacji języka DAX pod kątem usługi LuckyTemplates
Optymalizacja języka DAX będzie łatwiejsza, jeśli zmaksymalizujesz narzędzia, które to umożliwiają. DAX Studio jest jednym z tych narzędzi.
Weźmy wcześniejszy przykład, w którym silnik formuł bierze na siebie cały ciężar ukończenia obliczeń, gdy używana jest funkcja SUMMARIZE. DAX Studio może pomóc Ci przepisać kod w sposób, który wypchnie SUMMARIZE do mechanizmu magazynu, odciążając aparat formuł. To potencjalnie poprawia wydajność modelu danych i zapytań.
Oczywiście powinno to działać bezproblemowo w przypadku prostych zapytań. Są też bardziej skomplikowane scenariusze.
Można na przykład zbudować modele złożone, które korzystają z dwóch mechanizmów pamięci masowej w ramach samego modelu danych. Jeden mógłby być dla Vertipaq, a drugi dla DirectQuery. W takim przypadku Twoja baza danych musi zostać zoptymalizowana w taki sposób, aby generowane zapytania były budowane dla tego konkretnego relacyjnego modelu danych.
Załóżmy, że w modelu daty masz dwie tabele — tabelę Produkty i tabelę Sprzedaż. Tabela Products znajduje się w magazynie Vertipaq, podczas gdy tabela Sales, która jest większą tabelą, jest przechowywana bezpośrednio w bazie danych za pośrednictwem połączenia DirectQuery.
Załóżmy również, że przeciągasz kolumnę Marka do macierzy, a także miarę Total Sales pochodzącą z tabeli Sales w ramach połączenia DirectQuery.
W takim przypadku aparat formuły będzie musiał wykonać operację między obydwoma silnikami.
Najpierw pobierze kolumny Klucz produktu i Marka z tabeli Produkty. Następnie pobierze kolumny Cena netto, Ilość i Klucz produktu z tabeli Sprzedaż. Po uzyskaniu pamięci podręcznej danych zarówno z Vertipaq, jak i DirectQuery, silnik formuł będzie musiał pobrać pamięć podręczną danych i spróbować dołączyć do nich, aby dostarczyć wyniki użytkownikowi końcowemu.
Techniki i lekcje optymalizacji zapytań DAX
Wydajność zapytań i konfiguracja DAX Studio
Optymalizacja DAX: gdzie znaleźć ukrytą pułapkę DAX
Wniosek
Silnik formuł naprawdę odgrywa ogromną rolę podczas pracy z językiem DAX. Zanim jednak zaczniesz działać, bardzo ważne jest, aby zrozumieć, jak to działa. Opanowanie bezproblemowego współdziałania mechanizmu formuł i mechanizmu pamięci ma kluczowe znaczenie, zwłaszcza jeśli chcesz, aby zapytania DAX działały lepiej.
Jako silnik najwyższego poziomu w architekturze usług analitycznych, silnik formuł musi wykonywać wiele operacji. Ale kiedy już zrozumiesz tajniki mechanizmu przechowywania, możesz dowiedzieć się, którą operację wprowadzić do silnika przechowywania, a którą pozostawić w silniku formuł.
W osobnym samouczku zajmiemy się dokładniej mechanizmem przechowywania.
Wszystkiego najlepszego,
W tym samouczku omówimy pakiet dplyr, który umożliwia sortowanie, filtrowanie, dodawanie i zmianę nazw kolumn w języku R.
Odkryj różnorodne funkcje zbierania, które można wykorzystać w Power Automate. Zdobądź praktyczne informacje o funkcjach tablicowych i ich zastosowaniu.
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
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.
Z tego samouczka języka kodowania DAX dowiesz się, jak używać funkcji GENERUJ i jak dynamicznie zmieniać tytuł miary.
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.
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.
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ł.
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.