Выпуск СУБД 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) с обычными таблицами и оконные функции.
Источник: http://www.opennet.ru/opennews/art.shtml? num=52759
© OpenNet