24.12.2020
Часть кода с расширенными возможностями поставляется под отдельной проприетарной лицензией Timescale (TSL), изначально не допускавшей внесение изменений, запрещавшей использование кода в сторонних продуктах и не разрешавшей бесплатное использование в облачных БД (database-as-a-service). В версии 2.0 в лицензию TSL были добавлены изменения, предоставляющие пользователям больше прав и позволяющие бесплатно использовать все возможности enterprise-версии, включая сжатие, распределение хранилища на несколько узлов и непрерывное агрегирование. В лицензии убраны ограничения области применения Community-сборки, предоставлено право на внесение улучшений и изменений, убраны платные привязки. В Community-редакцию перенесены все возможности, ранее предлагавшиеся в TimescaleDB Enterprise.
Основные изменения в TimescaleDB 2.0:
Напомним, что СУБД TimescaleDB позволяет применять полноценные SQL-запросы для анализа накопленных данных, сочетая удобство работы, свойственное реляционным СУБД, с масштабированием и возможностями, присущими специализированным NoSQL-системам. Структура хранения оптимизирована для обеспечения высокой скорости добавления данных. Поддерживается пакетное добавления наборов данных, использование размещаемых в оперативной памяти индексов, загрузка исторических срезов задним числом, применение транзакций.
Ключевой особенностью TimescaleDB является поддержка автоматического секционирования (партицирования) массива данных. Входной поток данных автоматически распределяется по секционированным таблицам. Секции создаются в зависимости от времени (в каждой секции хранятся данные за определённый промежуток времени) или в привязке к произвольному ключу (например, идентификатору устройства, местоположению и т.п.). Для оптимизации производительности секционированные таблицы могут распределяться по разным дискам.
Для запросов секционированная БД выглядит как одна большая таблица, именуемая гипертаблицей. Гипертаблица представляет собой виртуальное представление множества отдельных таблиц, в которых накапливаются поступающие данные. Гипертаблица используется не только для запросов и добавления данных, но и для таких операций, как создание индексов и изменение структуры ("ALTER TABLE"), скрывая от разработчика низкоуровневую сегментированную структуру БД. C гипертаблицей можно использовать любые агрегатные функции, подзапросы, операции слияния (JOIN) с обычными таблицами и оконные функции.