Включение статистики сканирования для запросов
Важный
Служба Azure HDInsight на платформе AKS была прекращена 31 января 2025 г. Узнайте больше с этим объявлением.
Необходимо перенести рабочие нагрузки в Microsoft Fabric или эквивалентный продукт Azure, чтобы избежать резкого завершения рабочих нагрузок.
Важный
Эта функция сейчас доступна в предварительной версии. Дополнительные условия использования для предварительных версий Microsoft Azure включают дополнительные юридические термины, применимые к функциям Azure, которые находятся в бета-версии, в предварительной версии или в противном случае еще не выпущены в общую доступность. Сведения об этой конкретной предварительной версии см. в информации о предварительном просмотре Azure HDInsight на AKS. Для вопросов или предложений функций отправьте запрос на AskHDInsight с подробными сведениями и следуйте за дополнительными обновлениями в Azure HDInsight Community.
Часто команды данных требуются для изучения производительности или оптимизации запросов для улучшения использования ресурсов или удовлетворения бизнес-требований.
Добавлена новая возможность в Trino для HDInsight в AKS, которая позволяет пользователю записывать статистику сканирования для любого соединителя. Эта возможность обеспечивает более подробную информацию о профиле производительности запросов за пределами того, что доступно в статистике, созданной Trino.
Эту функцию можно включить с помощью свойства сеанса collect_raw_scan_statistics
и следующей команды Trino:
SET SESSION collect_raw_scan_statistics=true
После включения исходные операторы в запросе, например TableScanOperator
, ScanFilterAndProject
и т. д., имеют статистику по сканированию данных, степень детализации зависит от экземпляра оператора в конвейере.
Кончик
Статистика сканирования полезна для выявления узких мест, когда кластер или запрос не ограничен ЦП, и необходимо провести исследование производительности чтения запроса. Он также помогает понять профиль выполнения запроса с точки зрения разделения уровня.
Заметка
В настоящее время захваченное количество разбиений для каждого рабочего ограничено 1000 из-за ограничений размера получаемых данных. Если количество разбиений на рабочую роль для запроса превышает это ограничение, возвращаются первые 1000 наиболее длительных разбиений.
Как получить доступ к статистике сканирования
После установки свойства сеанса последующие запросы в сеансе начинают записывать статистику из исходных операторов всякий раз, когда они доступны. Существует несколько способов использования и анализа статистики сканирования, созданной для запроса.
запрос JSON
Вкладка JSON на странице сведений о запросе предоставляет JSON представление запроса, которое включает статистику на каждом этапе и конвейер запроса. Если задано свойство сеанса, json включает новое поле с именем scanStats
в queryStats.operatorSummaries[*]
. Массив содержит один объект для каждой инстанции оператора.
В следующем примере показан json для запроса с помощью hive connector
и включена статистика сканирования.
Заметка
Сводка статистики сканирования включает в себя splitInfo, который заполняется соединителем. Это позволяет пользователям контролировать, какую информацию о магазине они хотят включить в свои пользовательские соединители.
Интерфейс статистики сканирования
Вы можете найти новую вкладку с именем Scan Stats
на странице сведений о запросе, которая визуализирует статистику, созданную этой функцией, и предоставляет аналитические сведения о производительности при разделении задач для каждого рабочего. Страница позволяет пользователям просматривать профиль выполнения Trino для запроса, с информацией, например, об одновременном чтении по времени и пропускной способности.
В следующем примере показана страница запроса с включенной статистикой сканирования.
Использование средства ведения журнала Microsoft Query**
Средство ведения журнала запросов Microsoft имеет встроенную поддержку этой функции. При включении этой функции подключаемый модуль средства ведения журнала запросов заполняет таблицу с именем operatorstats
вместе с таблицей событий запроса, эта таблица денормализована таким образом, чтобы каждый экземпляр оператора был одной строкой для каждого запроса.