Yandex Cloud
Поиск
Связаться с намиПопробовать бесплатно
  • Кейсы
  • Документация
  • Блог
  • Все сервисы
  • Статус работы сервисов
  • Marketplace
    • Доступны в регионе
    • Инфраструктура и сеть
    • Платформа данных
    • Искусственный интеллект
    • Безопасность
    • Инструменты DevOps
    • Бессерверные вычисления
    • Управление ресурсами
  • Все решения
    • По отраслям
    • По типу задач
    • Экономика платформы
    • Безопасность
    • Техническая поддержка
    • Каталог партнёров
    • Обучение и сертификация
    • Облако для стартапов
    • Облако для крупного бизнеса
    • Центр технологий для общества
    • Партнёрская программа
    • Поддержка IT-бизнеса
    • Облако для фрилансеров
    • Обучение и сертификация
    • Блог
    • Документация
    • Мероприятия и вебинары
    • Контакты, чаты и сообщества
    • Идеи
    • Калькулятор цен
    • Тарифы
    • Акции и free tier
  • Кейсы
  • Документация
  • Блог
Создавайте контент и получайте гранты!Готовы написать своё руководство? Участвуйте в контент-программе и получайте гранты на работу с облачными сервисами!
Подробнее о программе
Проект Яндекса
© 2026 ТОО «Облачные Сервисы Казахстан»
Yandex MPP Analytics for PostgreSQL
KZ
  • Начало работы
    • Все инструкции
    • Подключение к внешнему файловому серверу (gpfdist)
      • Просмотр логов кластера
      • Просмотр операций кластера
      • Диагностика производительности
      • Мониторинг состояния кластера и хостов
      • Передача логов кластера в Yandex Cloud Logging
      • Чтение логов через SQL
    • Вспомогательные утилиты
  • Управление доступом
  • Правила тарификации
  • Справочник Terraform
  • Метрики Monitoring
  • Аудитные логи Audit Trails
  • Публичные материалы
  • История изменений
  • Обучающие курсы

В этой статье:

  • Как это работает
  • Перед началом работы
  • Чтение логов
  • Фильтрация по времени
  • Поиск ошибок
  • Поиск медленных запросов
  • Фильтрация по базе данных
  • Структура представления
  • Особенности и ограничения
  • Примеры аналитических запросов
  • Количество ошибок по базам данных за последние сутки
  • Активность пользователей по часам
  • Топ-10 самых частых сообщений об ошибках
  • См. также
  1. Пошаговые инструкции
  2. Логи и мониторинг
  3. Чтение логов через SQL

Чтение логов кластера через SQL

Статья создана
Yandex Cloud
Обновлена 30 марта 2026 г.
  • Как это работает
  • Перед началом работы
  • Чтение логов
    • Фильтрация по времени
    • Поиск ошибок
    • Поиск медленных запросов
    • Фильтрация по базе данных
  • Структура представления
  • Особенности и ограничения
  • Примеры аналитических запросов
    • Количество ошибок по базам данных за последние сутки
    • Активность пользователей по часам
    • Топ-10 самых частых сообщений об ошибках
  • См. также

Yandex MPP Analytics for PostgreSQL предоставляет доступ к логам кластера непосредственно через SQL-запросы. Это позволяет анализировать логи с помощью стандартных SQL-инструментов: фильтровать, агрегировать и соединять данные с другими таблицами.

Примечание

Функция доступна для кластеров на базе Greenplum® версии 6.29 и выше, а также Apache Cloudberry™.

Как это работаетКак это работает

В базе данных postgres в схеме mdb_toolkit автоматически создается представление gp_log, которое объединяет логи мастер-узла и всех первичных сегментов кластера. Представление обновляется автоматически при изменении топологии кластера (расширение, восстановление из резервной копии, переключение мастера).

Перед началом работыПеред началом работы

Для чтения логов через SQL пользователю необходимо иметь роль mdb_log_reader. Выдать ее может администратор кластера (gpadmin или пользователь с правами SUPERUSER):

GRANT mdb_log_reader TO <имя_пользователя>;

Чтение логовЧтение логов

Подключитесь к базе данных postgres и выполните запрос к представлению mdb_toolkit.gp_log:

SELECT * FROM mdb_toolkit.gp_log
ORDER BY logtime DESC
LIMIT 100;

Фильтрация по времениФильтрация по времени

SELECT logtime, logseverity, logmessage, logdatabase, loguser
FROM mdb_toolkit.gp_log
WHERE logtime >= NOW() - INTERVAL '1 hour'
ORDER BY logtime DESC;

Поиск ошибокПоиск ошибок

SELECT logtime, logseverity, logmessage, logdatabase, loguser, loghost
FROM mdb_toolkit.gp_log
WHERE logseverity IN ('ERROR', 'FATAL', 'PANIC')
  AND logtime >= NOW() - INTERVAL '24 hours'
ORDER BY logtime DESC;

Поиск медленных запросовПоиск медленных запросов

SELECT logtime, logdatabase, loguser, logmessage
FROM mdb_toolkit.gp_log
WHERE logmessage LIKE '%duration:%'
  AND logtime >= NOW() - INTERVAL '1 hour'
ORDER BY logtime DESC;

Фильтрация по базе данныхФильтрация по базе данных

SELECT logtime, logseverity, logmessage
FROM mdb_toolkit.gp_log
WHERE logdatabase = '<имя_базы_данных>'
  AND logtime >= NOW() - INTERVAL '6 hours'
ORDER BY logtime DESC;

Структура представленияСтруктура представления

Представление mdb_toolkit.gp_log содержит следующие столбцы:

Столбец Тип Описание
logtime timestamp with time zone Время события
loguser text Имя пользователя
logdatabase text Имя базы данных
logpid text Идентификатор процесса
logthread text Идентификатор потока
loghost text Имя хоста (мастер или сегмент)
logport text Порт
logsessiontime timestamp with time zone Время начала сессии
logtransaction int Идентификатор транзакции
logsession text Идентификатор сессии
logcmdcount text Счетчик команд в сессии
logsegment text Идентификатор сегмента
logslice text Идентификатор среза
logdistxact text Идентификатор распределенной транзакции
loglocalxact text Идентификатор локальной транзакции
logsubxact text Идентификатор вложенной транзакции
logseverity text Уровень серьезности (DEBUG, INFO, WARNING, ERROR, FATAL, PANIC)
logstate text Код состояния SQLSTATE
logmessage text Текст сообщения
logdetail text Детальное описание ошибки
loghint text Подсказка по устранению ошибки
logquery text Текст SQL-запроса
logquerypos int Позиция в запросе
logcontext text Контекст выполнения
logdebug text Отладочная информация
logcursorpos int Позиция курсора
logfunction text Имя функции
logfile text Имя исходного файла
logline int Номер строки в исходном файле
logstack text Трассировка стека

Особенности и ограниченияОсобенности и ограничения

  • Глубина хранения логов: CSV-логи на узлах кластера ротируются ежедневно. По умолчанию хранятся последние 10 ротаций, то есть не более 10 последних дней. Запросы к более старым данным вернут пустой результат.

  • Маскирование чувствительных данных: в столбцах logmessage, logdetail, logquery и logdebug автоматически скрываются пароли из команд CREATE/ALTER ROLE ... PASSWORD и URL-адреса внешних таблиц (PXF, S3, gpfdist). Это сделано для защиты учетных данных.

  • Только база данных postgres: представление mdb_toolkit.gp_log доступно только в базе данных postgres. Для работы с ним подключитесь именно к этой базе.

  • Нагрузка на кластер: запросы без фильтра по logtime читают все доступные логи со всех узлов кластера, что может создавать значительную нагрузку. Рекомендуется всегда указывать временной диапазон в условии WHERE.

  • Параллельное чтение: данные читаются параллельно со всех первичных сегментов и мастера, поэтому порядок строк без ORDER BY не гарантирован.

  • Актуальность топологии: при изменении топологии кластера (расширение, восстановление из резервной копии) представление автоматически обновляется в течение нескольких минут.

Примеры аналитических запросовПримеры аналитических запросов

Количество ошибок по базам данных за последние суткиКоличество ошибок по базам данных за последние сутки

SELECT logdatabase, logseverity, COUNT(*) AS cnt
FROM mdb_toolkit.gp_log
WHERE logseverity IN ('ERROR', 'FATAL', 'PANIC')
  AND logtime >= NOW() - INTERVAL '24 hours'
GROUP BY logdatabase, logseverity
ORDER BY cnt DESC;

Активность пользователей по часамАктивность пользователей по часам

SELECT DATE_TRUNC('hour', logtime) AS hour,
       loguser,
       COUNT(*) AS events
FROM mdb_toolkit.gp_log
WHERE logtime >= NOW() - INTERVAL '7 days'
  AND logdatabase = '<имя_базы_данных>'
GROUP BY 1, 2
ORDER BY 1 DESC, 3 DESC;

Топ-10 самых частых сообщений об ошибкахТоп-10 самых частых сообщений об ошибках

SELECT logmessage, COUNT(*) AS cnt
FROM mdb_toolkit.gp_log
WHERE logseverity = 'ERROR'
  AND logtime >= NOW() - INTERVAL '7 days'
GROUP BY logmessage
ORDER BY cnt DESC
LIMIT 10;

См. такжеСм. также

  • Просмотр логов кластера Greenplum®
  • Передача логов кластера Greenplum® в Yandex Cloud Logging

Была ли статья полезна?

Предыдущая
Передача логов кластера в Yandex Cloud Logging
Следующая
Вспомогательные утилиты
Создавайте контент и получайте гранты!Готовы написать своё руководство? Участвуйте в контент-программе и получайте гранты на работу с облачными сервисами!
Подробнее о программе
Проект Яндекса
© 2026 ТОО «Облачные Сервисы Казахстан»