К содержанию

Wiki · Технологии разработки

TimescaleDB

TimescaleDB – это расширение для PostgreSQL, которое помогает хранить и анализировать временные ряды: значения, у каждого из которых есть отметка времени. Это метрики серверов, показания датчиков, цены, статистика посещений по минутам.

Если искать просто «timescale», поиск выдаст в основном игровую команду host_timescale, которая меняет скорость игры. Нам нужна база данных. Её обычно предлагает администратор, когда мониторинг серверов начинает тормозить, или разработчик, когда приложение пишет показания тысяч устройств и таблица растёт быстрее, чем успевают работать отчёты.

Чем TimescaleDB отличается от обычного PostgreSQL

TimescaleDB не отдельная база, а расширение. Внутри остаётся обычный PostgreSQL: тот же SQL, те же драйверы и инструменты, а обычные таблицы с заказами и пользователями живут рядом с таблицами метрик. Расширение добавляет несколько вещей:

  • Гипертаблицы. Для вас это одна таблица, а внутри база режет её на куски (chunks) по времени. Запрос за последний час открывает только свежие куски, а не всю историю.
  • Колоночное хранение для старых данных. Куски, которые уже не меняются, переводят в сжатый колоночный формат, и они занимают в разы меньше места.
  • Непрерывные агрегаты: сводки по часам или дням, которые база пересчитывает в фоне, причём заново считает лишь изменившиеся данные.
  • Политики хранения: старые данные удаляются целыми кусками по расписанию.

Таблица превращается в гипертаблицу одним параметром при создании:

CREATE TABLE sensor_data (
  time TIMESTAMPTZ NOT NULL,
  sensor_id TEXT NOT NULL,
  temperature DOUBLE PRECISION
) WITH (tsdb.hypertable);
Схема гипертаблицы TimescaleDB: свежие куски для записи, старые сжаты в колоночный формат, устаревшие удаляются целиком по политике хранения
Как гипертаблица хранит данные

Почему удалять старые данные кусками быстрее

Условный пример. Система мониторинга хранит показатели серверов за 90 дней. В обычной таблице каждую ночь нужно удалить DELETE-запросом сутки записей, это миллионы строк, после которых базе ещё приходится чистить место. В гипертаблице сутки лежат в отдельном куске, и политика хранения просто удаляет его файл с диска. Если при этом нужны сводки за год, их держат в непрерывных агрегатах: сырые данные уходят, часовые средние остаются.

Расширение для Zabbix

Частая причина знакомства с TimescaleDB – система мониторинга Zabbix. Она хранит историю и тренды метрик в таблицах history и trends, и в документации Zabbix есть отдельный раздел о настройке TimescaleDB для них. Таблицы становятся гипертаблицами, а чистка старой истории идёт кусками, а не построчно. Перед обновлением Zabbix или PostgreSQL сверяйте, какие версии TimescaleDB поддерживает ваша версия Zabbix.

TimescaleDB или ClickHouse

СитуацияЧто обычно подходит
Проект уже на PostgreSQL, метрики нужно хранить рядом с основными даннымиTimescaleDB
Нужны JOIN с обычными таблицами, транзакции, правки отдельных строкTimescaleDB
Отдельное аналитическое хранилище на миллиарды событий, отчёты по сырым даннымClickHouse
Сырые данные Метрики и сквозная аналитикаClickHouse

Главный довод за TimescaleDB простой: команда уже знает PostgreSQL, и второй системы баз данных в проекте не появится.

Схема выбора: TimescaleDB как расширение для проекта на PostgreSQL, ClickHouse как отдельное хранилище для миллиардов событий и отчётов в BI
TimescaleDB или ClickHouse

Лицензия, версии и кто развивает

TimescaleDB делает компания Timescale, в июне 2025 года она сменила название на Tiger Data, а продукт остался TimescaleDB. Часть кода открыта под Apache 2.0, остальное входит в Community Edition под лицензией Timescale License: её можно бесплатно использовать в своих проектах, но нельзя продавать как облачную базу данных для третьих лиц. На октябрь 2026 года свежие версии 2.29 и 2.30 работают с PostgreSQL 16, 17 и 18, а поддержку PostgreSQL 15 закончила ветка 2.28. Учтите это при выборе сервера: не каждая управляемая база PostgreSQL в облаке разрешает ставить это расширение.

Zabbix, версии PostgreSQL и выбор вместо ClickHouse

Как подключить TimescaleDB к Zabbix?

К Zabbix TimescaleDB подключают на уровне базы: ставят расширение в PostgreSQL, включают его в базе Zabbix и запускают скрипт из поставки Zabbix, который превращает таблицы истории и трендов в гипертаблицы. Порядок действий и поддерживаемые версии смотрите в разделе TimescaleDB setup документации своей версии Zabbix.

Какие версии PostgreSQL поддерживает TimescaleDB?

На октябрь 2026 года TimescaleDB 2.29 и 2.30 поддерживают PostgreSQL 16, 17 и 18. Версия 2.28 последняя с поддержкой PostgreSQL 15, так что на старом сервере сначала обновляют PostgreSQL.

Когда вместо TimescaleDB лучше взять ClickHouse?

ClickHouse удобнее, когда нужно отдельное хранилище для аналитики на миллиарды событий, например сырые данные Метрики, а правки строк почти не нужны. Если же проект уже работает на PostgreSQL и метрики должны лежать рядом с заказами и пользователями, проще поставить расширение.

Если проект уже работает на TimescaleDB или PostgreSQL, берём его на доработку и техническую поддержку. Перед доработкой нагруженной системы можно провести нагрузочное тестирование.

Источники

См. также: Docker, Хостинг.

Остались вопросы по теме «TimescaleDB»?

Напишите нам в Telegram или MAX. Ответит специалист, который отвечает за эту тему, или руководитель проектов в рабочее время.

Сергей ЧерняковОтвечает по темеСергей ЧерняковWeb-разработчик

Посчитайте стоимость проекта за 2 минуты

Калькулятор соберёт смету по нашим тарифам: сайт, дизайн, интеграции и поддержка.