Перейти к основному содержимому
Версия: 2.0.x

Обзор Query Profile

Введение

Query Profile записывает информацию о выполнении на всех рабочих узлах, участвующих в запросе, помогая быстро идентифицировать узкие места, влияющие на производительность запросов. Это мощный инструмент для диагностики и настройки производительности запросов в Selena.

Начиная с версии v1.5.2, Selena поддерживает предоставление Query Profile для загрузки данных с помощью INSERT INTO FILES() и Broker Load. Подробности о задействованных метриках см. в разделе OlapTableSink Operator.

Как включить Query Profile

Включение Query Profile

Вы можете включить Query Profile, установив переменную enable_profile в значение true:

SET enable_profile = true;
SET GLOBAL enable_profile = true;

Query Profile для медленных запросов

Не рекомендуется включать Query Profile глобально в production на длительные периоды, так как это может создать дополнительную нагрузку на систему. Чтобы захватывать и анализировать только медленные запросы, установите переменную big_query_profile_threshold на значение времени больше 0s. Например, установка значения 30s означает, что только запросы, превышающие 30 секунд, будут запускать Query Profile.

-- 30 секунд
SET global big_query_profile_threshold = '30s';

-- 500 миллисекунд
SET global big_query_profile_threshold = '500ms';

-- 60 минут
SET global big_query_profile_threshold = '60m';

Runtime Query Profile

Для долго выполняющихся запросов может быть сложно определить прогресс или обнаружить проблемы до завершения. Функция Runtime Query Profile (v1.5.2+) собирает и отправляет данные Query Profile через фиксированные интервалы во время выполнения, обеспечивая информацию в реальном времени о прогрессе запроса и узких местах.

Когда Query Profile включен, Runtime Query Profile автоматически активируется с интервалом отчетности по умолчанию в 10 секунд. Настройте интервал с помощью runtime_profile_report_interval:

SET runtime_profile_report_interval = 30;

Конфигурации

Параметр конфигурацииТипДопустимые значенияПо умолчаниюОписание
enable_profileSession Vartrue/falsefalseВключить Query Profile
pipeline_profile_levelSession Var1/211: объединить метрики; 2: сохранить исходную структуру (отключает инструменты визуализации)
runtime_profile_report_intervalSession VarПоложительное число10Интервал отчетности Runtime Query Profile (секунды)
big_query_profile_thresholdSession VarString0sВключить Query Profile для запросов, превышающих эту продолжительность (например, '30s', '500ms', '60m')
enable_statistics_collect_profileFE Dynamictrue/falsefalseВключить Query Profile для запросов, связанных со сбором статистики

Как получить Query Profile

Через веб-интерфейс

  1. Откройте в браузере http://<fe_ip>:<fe_http_port>.
  2. Нажмите queries в верхней навигации.
  3. В списке Finished Queries выберите запрос, который хотите проанализировать, и нажмите на ссылку в столбце Profile.

img

Вы будете перенаправлены на детальную страницу выбранного Query Profile.

img

Через SQL-функцию (get_query_profile)

Пример рабочего процесса:

  • last_query_id(): Возвращает ID последнего выполненного запроса в вашей сессии. Полезно для быстрого получения profile вашего последнего запроса.
  • show profilelist;: Выводит список последних запросов вместе с их ID и статусом. Используйте это, чтобы найти query_id, необходимый для анализа profile.
  • get_query_profile('<query_id>'): Возвращает детальный profile выполнения для указанного запроса. Используйте это для анализа того, как запрос был выполнен и где было потрачено время или ресурсы.
-- Включите функцию profiling.
set enable_profile = true;
-- Выполните простой запрос.
select 1;
-- Получите query_id запроса.
select last_query_id();
+--------------------------------------+
| last_query_id() |
+--------------------------------------+
| bd3335ce-8dde-11ee-92e4-3269eb8da7d1 |
+--------------------------------------+
-- Получите список profiles
show profilelist;
-- Получите query profile.
select get_query_profile('502f3c04-8f5c-11ee-a41f-b22a2c00f66b')\G

В управляемой версии

В окружениях Selena Managed (Enterprise) вы можете удобно получить доступ к query profiles непосредственно из истории запросов в веб-консоли. Управляемый UI предоставляет интуитивное визуальное представление profile выполнения каждого запроса, упрощая анализ производительности и идентификацию узких мест без ручных SQL-команд.

Интерпретация Query Profile

Explain Analyze

Большинству пользователей может быть сложно анализировать необработанный текст напрямую. Selena предоставляет метод текстового анализа Query Profile с визуализацией для более интуитивного понимания.

Управляемая версия

В Selena Enterprise Edition (EE) управляемая версия предоставляет встроенный инструмент визуализации для query profiles. Этот инструмент предлагает интерактивный графический интерфейс, который значительно упрощает интерпретацию сложных деталей выполнения запросов по сравнению с необработанным текстовым выводом.

Ключевые возможности инструмента визуализации включают:

  • Разбивка на уровне операторов: Просмотр плана выполнения в виде дерева или графа, с четким отображением метрик каждого оператора (время, строки, память).
  • Подсветка узких мест: Быстрая идентификация медленных или ресурсоемких операторов с помощью цветовых индикаторов.
  • Возможность детализации: Нажмите на любой оператор, чтобы увидеть детальную статистику, включая входные/выходные строки, время CPU, использование памяти и многое другое.

Как использовать:

  1. Откройте веб-консоль Selena Managed.
  2. Перейдите в раздел Query или Query History.
  3. Выберите запрос и нажмите кнопку Profile или Visualize.
  4. Изучите визуализированный profile для анализа производительности и определения возможностей оптимизации.

Этот инструмент визуализации эксклюзивен для Managed/Enterprise Edition и разработан для ускорения устранения неполадок и настройки производительности для сложных рабочих нагрузок.