Выпуск СУБД TimescaleDB 1.7

TimescaleDB 1.7 Новости

Опубликован выпуск СУБД TimescaleDB 1.7, предназначенной для хранения и обработки данных в форме временного ряда (срезы значений параметров через заданные промежутки времени, запись образует время и набор соответствующих этому времени значений). Подобная форма хранения оптимальна для таких применений как системы мониторинга, торговые платформы, системы сбора метрик и состояний датчиков. Предоставляются средства для интеграции с проектом Grafana и Prometheus.

Проект TimescaleDB реализован в виде расширения к PostgreSQL и распространяется под лицензией Apache 2.0. Часть кода с расширенными возможностями поставляется под отдельной проприетарной лицензией Timescale (TSL), не допускающей внесение изменений, запрещающей использование кода в сторонних продуктах и не разрешающей бесплатное использование в облачных БД (database-as-a-service).

Среди изменений в TimescaleDB 1.7:

  • Добавлена поддержка интеграции с СУБД PostgreSQL 12. Объявлена устаревшей поддержка PostgreSQL 9.6.x и 10.x (в Timescale 2.0 останется поддержка только PostgreSQL 11+).
  • Изменено поведение запросов с непрерывно выполняемыми агрегатными функциями (агрегирование непрерывно поступающих данных в режиме реального времени). Подобные запросы теперь комбинируют материализированные представления с недавно поступившими данными, которые ещё не материализированы (ранее агрегирование охватывало только уже материализированные данные). Новое поведение применяется для вновь создаваемых непрерывных агрегирований, для существующих представлений следует выставить параметр “timescaledb.materialized_only=false” через “ALTER VIEW”.
  • В Community-версию из коммерческой редакции перенесены некоторые расширенные средства управления жизненным циклом данных, включая возможности по перегруппировке данных и обработке политик вытеснения устаревших данных (позволяют хранить только актуальные данные и автоматически удалять, агрегировать или архивировать устаревшие записи).

Напомним, что СУБД TimescaleDB позволяет применять полноценные SQL-запросы для анализа накопленных данных, сочетая удобство работы, свойственное реляционным СУБД, с масштабированием и возможностями, присущими специализированным NoSQL-системам. Структура хранения оптимизирована для обеспечения высокой скорости добавления данных. Поддерживается пакетное добавления наборов данных, использование размещаемых в оперативной памяти индексов, загрузка исторических срезов задним числом, применение транзакций.

Ключевой особенностью TimescaleDB является поддержка автоматического секционирования (партицирования) массива данных. Входной поток данных автоматически распределяется по секционированным таблицам. Секции создаются в зависимости от времени (в каждой секции хранятся данные за определённый промежуток времени) или в привязке к произвольному ключу (например, идентификатору устройства, местоположению и т.п.). Для оптимизации производительности секционированные таблицы могут распределяться по разным дискам.

Для запросов секционированная БД выглядит как одна большая таблица, именуемая гипертаблицей. Гипертаблица представляет собой виртуальное представление множества отдельных таблиц, в которых накапливаются поступающие данные. Гипертаблица используется не только для запросов и добавления данных, но и для таких операций, как создание индексов и изменение структуры (“ALTER TABLE”), скрывая от разработчика низкоуровневую сегментированную структуру БД. C гипертаблицей можно использовать любые агрегатные функции, подзапросы, операции слияния (JOIN) с обычными таблицами и оконные функции.

Publisher
Оцените автора
AsaDagar
Добавить комментарий