Персистентная история запросов CedrusData#
CedrusData позволяет сохранять информацию о выполненных запросах в персистентном хранилище. Данный функционал позволяет восстанавливать историю выполненных запросов после перезапуска координатора.
Общая информация#
CedrusData может сохранять историю запросов в файловой системе или в реляционной СУБД.
При работе с историей запросов на основе файловой системы необходимо задать путь к директории, в которой будут сохранены файлы истории.
Путь необходимо задать в формате URL file://<path>
. Файлы могут быть сохранены в любой файловой системе, доступной координатору.
Например, в локальной файловой системе или NFS. В будущем будет добавлена поддержка
Пример конфигурации файловой истории запросов:
cedrusdata.persistent-query-history.enabled=true
cedrusdata.persistent-query-history.store.type=file
cedrusdata.persistent-query-history.store.file.path=file:///path/to/history/dir
При работе с историей запросов на основе реляционной СУБД необходимо задать JDBC URL для подключения к СУБД, а также имя системного пользователя и его пароль. В настоящее время поддерживается только СУБД PostgreSQL.
Пример конфигурации истории запросов на основе реляционной СУБД Postgres приведен ниже. Для проверки работы данной конфигурации можно запустить Docker-образ Postgres с помощью следующей команды:
docker run -d --rm --name postgres-query-history -e POSTGRES_USER=cedrusdata -e POSTGRES_PASSWORD=cedrusdata_pwd -p 5432:5432 postgres
cedrusdata.persistent-query-history.enabled=true
cedrusdata.persistent-query-history.store.type=jdbc
cedrusdata.persistent-query-history.store.jdbc.url=jdbc:postgresql://localhost:5432/cedrusdata
cedrusdata.persistent-query-history.store.jdbc.username=cedrusdata
cedrusdata.persistent-query-history.store.jdbc.password=cedrusdata_pwd
Статистика работы персистентной истории запросов доступна через JMX таблицу trino.execution.queryhistory:name=queryhistorymanager
:
SELECT * FROM jmx."current"."trino.execution.queryhistory:name=queryhistorymanager";
Конфигурация#
cedrusdata.persistent-query-history.enabled
#
Тип: boolean
Значение по умолчанию:
false
Включает персистентную историю запросов CedrusData.
cedrusdata.persistent-query-history.hard-max-size
#
Тип: integer
Значение по умолчанию:
110000
Максимальное количество записей в истории запросов.
При достижении заданного предела будет удалено несколько наиболее старых записей,
чтобы общее количество записей снизилось до значения cedrusdata.persistent-query-history.soft-max-size
.
Значение 0
отключает ограничение.
cedrusdata.persistent-query-history.soft-max-size
#
Тип: integer
Значение по умолчанию:
100000
До какого количества должно быть снижено количество записей истории при достижении cedrusdata.persistent-query-history.hard-max-size
.
Значение данного параметра должно быть меньше или равно cedrusdata.persistent-query-history.hard-max-size
.
cedrusdata.persistent-query-history.retention
#
Тип: duration
Значение по умолчанию:
7d
(семь дней)
Задает максимальный срок жизни записи в истории запросов.
Значение null
отключает ограничение.
cedrusdata.persistent-query-history.cleanup-frequency
#
Тип: duration
Значение по умолчанию:
1m
(одна минута)
Как часто производить очистку устаревших записей в соответствии со значением параметра cedrusdata.persistent-query-history.retention
.
cedrusdata.persistent-query-history.store.type
#
Тип: string
Тип хранилища. Допустимые значения: file
, jdbc
.
cedrusdata.persistent-query-history.store.file.path
#
Тип: string
Путь к директории истории запросов при использовании хранилища типа file
. Должен быть задан в формате file://<path>
.
cedrusdata.persistent-query-history.store.file.write-format
#
Тип: string
Значение по умолчанию:
cedrusdata
Формат записи данных истории запросов при использовании хранилища типа file
. Допустимые значения: raw
, cedrusdata
.
В режиме raw
информация о каждом запросе будет сохранена в отдельный файл в формате JSON. Содержимое файла аналогично JSON, который можно получить из Trino UI.
Данный режим позволяет легче анализировать файлы истории сторонними утилитами, но требует больше места, так как каждый файл истории может занимать от сотен килобайт
до десятков мегабайт.
В режиме cedrusdata
информация о каждом запросе будет сохранена в отдельный файл в оптимизированном бинарном формате, который занимает в 10-20 раз меньше дискового
пространства, чем формат raw
.
cedrusdata.persistent-query-history.store.jdbc.url
#
Тип: string
JDBC URL базы данных при использовании хранилища типа jdbc
. В настоящее время поддерживается только СУБД Postgres. Например: jdbc:postgresql://<host>:<port>/<database>
.
cedrusdata.persistent-query-history.store.jdbc.username
#
Тип: string
Имя пользователя для подключения к СУБД при использовании хранилища типа jdbc
.
cedrusdata.persistent-query-history.store.jdbc.password
#
Тип: string
Пароль для подключения к СУБД при использовании хранилища типа jdbc
.