Włączanie statystyk skanowania dla zapytań
Ważny
Usługa Azure HDInsight w usłudze AKS została wycofana 31 stycznia 2025 r. Dowiedz się więcej z tego ogłoszenia .
Aby uniknąć nagłego kończenia obciążeń, należy przeprowadzić migrację obciążeń do usługi Microsoft Fabric lub równoważnego produktu platformy Azure.
Ważny
Ta funkcja jest obecnie dostępna w wersji zapoznawczej. Dodatkowe warunki użytkowania platformy Microsoft Azure zawierają więcej warunków prawnych, które dotyczą funkcji Azure w wersji beta, zapoznawczej lub inaczej jeszcze niedostępnych do powszechnego użytku. Aby uzyskać informacje na temat tej konkretnej wersji zapoznawczej, zobacz informacje o wersji zapoznawczej Azure HDInsight na AKS. W przypadku pytań lub sugestii dotyczących funkcji, prosimy o przesłanie zapytania na AskHDInsight, a żeby otrzymywać więcej aktualizacji, śledź nas na społeczności Azure HDInsight.
Często zespoły danych są wymagane do zbadania wydajności lub optymalizacji zapytań w celu zwiększenia wykorzystania zasobów lub spełnienia wymagań biznesowych.
W aplikacji Trino for HDInsight w usłudze AKS dodano nową funkcję, która umożliwia użytkownikowi przechwytywanie statystyk skanowania dla dowolnego łącznika. Ta funkcja zapewnia bardziej szczegółowy wgląd w profil wydajności zapytań poza to, co jest dostępne w statystykach generowanych przez Trino.
Tę funkcję można włączyć przy użyciu właściwości sesji collect_raw_scan_statistics
, i wykonując następujące polecenie Trino:
SET SESSION collect_raw_scan_statistics=true
Po włączeniu operatory źródłowe w zapytaniu, takie jak TableScanOperator
, ScanFilterAndProject
itp. mają statystyki dotyczące skanowania danych, stopień szczegółowości jest dla każdego wystąpienia operatora w potoku.
Napiwek
Statystyki skanowania są przydatne podczas identyfikowania wąskich gardeł, gdy klaster lub zapytanie nie są ograniczone przez CPU, a wydajność odczytu zapytania wymaga analizy. Pomaga również zrozumieć profil wykonywania zapytania z perspektywy podziału na poziomy.
Notatka
Obecnie liczba podziałów przypadająca na pracownika jest ograniczona do 1000 ze względu na ograniczenia rozmiaru generowanych danych. Jeśli liczba podziałów na proces roboczy dla zapytania przekroczy ten limit, zwracane jest 1000 najdłużej działających podziałów.
Jak uzyskać dostęp do statystyk skanowania
Po ustawieniu właściwości sesji kolejne zapytania w sesji zaczynają przechwytywać statystyki od operatorów źródłowych zawsze, gdy są dostępne. Istnieje wiele sposobów, w jaki użytkownicy mogą używać i analizować statystyki skanowania wygenerowane dla zapytania.
wykonywanie zapytań w formacie Json
Karta Json na stronie Szczegóły zapytania zawiera reprezentację zapytania w formacie JSON, która zawiera statystyki na każdym etapie, potok zapytania. Po ustawieniu właściwości sesji plik json zawiera nowe pole o nazwie scanStats
w queryStats.operatorSummaries[*]
. Tablica zawiera jeden obiekt na wystąpienie operatora.
W poniższym przykładzie pokazano JSON dla zapytania z włączonym hive connector
i włączonymi statystykami skanowania.
Notatka
Podsumowanie statystyk skanowania zawiera informacje splitInfo, które są wypełniane przez łącznik. Dzięki temu użytkownicy mogą kontrolować, jakie informacje o sklepie chcą uwzględnić w swoich łącznikach niestandardowych.
Interfejs użytkownika statystyk skanowania
Nową kartę o nazwie Scan Stats
można znaleźć na stronie Szczegóły zapytania, która wizualizuje statystyki stworzone przez tę funkcję i udostępnia szczegółowe informacje dotyczące wydajności podziału ziarna każdego procesu roboczego. Strona umożliwia użytkownikom wyświetlanie profilu wykonania Trino dla zapytania, z informacjami takimi jak równoczesne operacje odczytu w czasie i wydajność.
Poniższy przykład przedstawia stronę zapytania z włączonymi statystykami skanowania.
Korzystanie z rejestratora Microsoft Query**
Program Microsoft Query logger ma wbudowane wsparcie dla tej funkcji. Po włączeniu tej funkcji wtyczka rejestratora zapytań wypełnia tabelę o nazwie operatorstats
wraz z tabelą zdarzeń zapytania, ta tabela jest zdenormalizowana, tak aby każde wystąpienie operatora było jednym wierszem dla każdego zapytania.