Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Table of Contents

TimescaleDB Timescale - БД временных рядов с открытым исходным кодом, основанная на Postgresql. В отличие от InfluxDB, не хранит все индексы в оперативной памяти, поэтому может быть использована для хранения больших объемов метрик. Кроме того, в этом случае используется одна и та же БД Postgresql для хранения метрик, статистики потоков и настроек сбора данных.

Установка и настройка TimescaleDB

В процессе настройки должна быть установлена определенная версия Postgresql (9.6, 10 или 11). Если на сервере установлена более ранняя версия Postgresql (например, из стандартных репозиториев Centos 7 устанавливается Posgresql 9.2), необходимо ее удалить, включая исполняемые файлы в /usr/bin.

...

Code Block
languagebash
themeRDark
\q
exit

Настройка удаления устаревших данных при помощи cron

Для экономии дискового пространства устаревшие данные могут удаляться периодически при помощи cron. Например, проверка таблицы conditions каждые 5 минут и удаление данных старше 12 часов может быть настроена следующим образом:

Code Block
languagebash
themeRDark
*/5 * * * * PGPASSWORD="wcsoam" /usr/pgsql-9.6/bin/psql -h localhost -p 5432 -U wcsoam -d wcsstat -w -c "SELECT drop_chunks(interval '12 hours', 'conditions');"

Структура БД

Postgresql должен содержать следующую таблицу для хранения метрик

ПолеТипПримечание
CONDITIONS
timetimestamptzNOT NULL
node_idbigintNOT NULL
media_idcharacter varying(255)
video_heightbigint
video_widthbigint
video_ratebigint


video_syncbigint
video_fpsbigint
video_nackbigint
video_plibigint
video_codecbigint
audio_syncbigint
audio_ratebigint
audio_lostbigint
audio_codecbigint

Данные метрик фрагментируются и хранятся в подтаблицах, объем каждой из которых определяется заданной при настройке длительностью фрагмента. Для ограничения количества подтаблиц рекомендуется настройка очистки устаревших данных при помощи cron с указанием максимального времени хранения данных.