Персистентная история запросов 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#

Тип хранилища. Допустимые значения: file, jdbc.

cedrusdata.persistent-query-history.store.file.path#

Путь к директории истории запросов при использовании хранилища типа 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#

JDBC URL базы данных при использовании хранилища типа jdbc. В настоящее время поддерживается только СУБД Postgres. Например: jdbc:postgresql://<host>:<port>/<database>.

cedrusdata.persistent-query-history.store.jdbc.username#

Имя пользователя для подключения к СУБД при использовании хранилища типа jdbc.

cedrusdata.persistent-query-history.store.jdbc.password#

Пароль для подключения к СУБД при использовании хранилища типа jdbc.