TimescaleDB — это база данных с открытым исходным кодом, предназначенная для масштабирования SQL для данных временных рядов. Он создан на основе PostgreSQL и упакован как расширение PostgreSQL, обеспечивающее автоматическое секционирование во времени и пространстве (ключ разделения), а также полную поддержку SQL.
Если вы предпочитаете не устанавливать и не администрировать свой экземпляр TimescaleDB, попробуйте 30-дневную бесплатную пробную версию Timescale, нашего полностью управляемого облачного предложения. Сроки — оплата по факту. Мы не взимаем плату за хранилище, которое вы не используете, резервные копии, снимки, входящие и исходящие данные.
Чтобы определить, какой вариант лучше всего подходит для вас, см. раздел «Продукты Timescale» для получения дополнительной информации о нашей версии Apache-2, сообществе TimescaleDB (локальное размещение) и Timescale Cloud (размещение), включая сравнение функций, часто задаваемые вопросы, документацию и поддержку.
Ниже представлено введение в TimescaleDB. Для получения дополнительной информации посетите другие ресурсы:
Документация разработчика
Слабый канал
Форум сообщества Timescale
Примечания к выпуску и планы на будущее
Для справки и ясности все файлы кода в этом репозитории ссылаются на лицензию в своем заголовке (либо лицензия Apache-2 с открытым исходным кодом, либо лицензия Timescale (TSL)). Лицензионные двоичные файлы Apache-2 можно собрать, передав -DAPACHE_ONLY=1
в команду bootstrap
.
Авторы приветствуются.
(Чтобы собрать TimescaleDB из исходного кода, см. инструкции в разделе Сборка из исходного кода .)
TimescaleDB масштабирует PostgreSQL для данных временных рядов посредством автоматического разделения по времени и пространству (ключ разделения), сохраняя при этом стандартный интерфейс PostgreSQL.
Другими словами, TimescaleDB предоставляет то, что выглядит как обычные таблицы, но на самом деле является лишь абстракцией (или виртуальным представлением) многих отдельных таблиц, содержащих фактические данные. Это представление одной таблицы, которое мы называем гипертаблицей, состоит из множества фрагментов, которые создаются путем разделения данных гипертаблицы в одном или двух измерениях: по временному интервалу и (необязательно) «ключу разделения», например идентификатор устройства, местоположение, идентификатор пользователя и т. д.
Практически все взаимодействия пользователя с TimescaleDB осуществляются с помощью гипертаблиц. Создание таблиц и индексов, изменение таблиц, вставка данных, выбор данных и т. д. — все это может (и должно) выполняться в гипертаблице.
С точки зрения использования и управления TimescaleDB просто выглядит и ощущается как PostgreSQL, и им можно управлять и запрашивать его как таковой.
Стандартные настройки PostgreSQL обычно слишком консервативны для современных серверов и TimescaleDB. Вы должны убедиться, что ваши настройки postgresql.conf
настроены либо с помощью timescaledb-tune, либо вручную.
-- Не забудьте создать расширение timescaledbCREATE EXTENSION timescaledb;-- Начнем с создания обычной SQL-таблицы условий CREATE TABLE (время TIMESTAMPTZ NOT NULL, местоположение ТЕКСТ НЕ NULL, температура ДВОЙНОЙ ТОЧНОСТИ НУЛЬ, влажность DOUBLE PRECISION NULL); -- Затем мы преобразуем ее в гипертаблицу, разделенную по времени.SELECT create_hypertable('conditions', 'time');
Быстрый старт: создание гипертаблиц
Справочные примеры
Вставка данных в гипертаблицу осуществляется с помощью обычных команд SQL:
INSERT INTO условия(время, местоположение, температура, влажность) ЗНАЧЕНИЯ (NOW(), 'office', 70.0, 50.0);SELECT * FROMconditions ORDER BY time DESC LIMIT 100;SELECT time_bucket('15 минут', время) AS пятнадцать_минут , местоположение, COUNT(*),MAX(температура) AS max_temp,MAX(влажность) AS max_hum ИЗ условий ГДЕ время > СЕЙЧАС() - интервал '3 часа' ГРУППИРОВАТЬ ПО пятнадцати_минутам, местоположению ORDER BY пятнадцать_минут DESC, max_temp DESC;
Кроме того, TimescaleDB включает дополнительные функции для анализа временных рядов, которых нет в стандартном PostgreSQL. (Например, функция time_bucket
выше.)
Быстрый старт: основные операции
Справочные примеры
API TimescaleDB
Timescale, полностью управляемая база данных TimescaleDB в облаке, доступна в рамках бесплатной пробной версии. Создайте базу данных PostgreSQL в облаке с предустановленной TimescaleDB, чтобы вы могли использовать TimescaleDB в своем приложении без затрат на управление.
TimescaleDB также доступен в предварительно упакованном виде для нескольких платформ, таких как Linux, Windows, MacOS, Docker и Kubernetes. Дополнительные сведения см. в разделе Установка TimescaleDB.
Чтобы выполнить сборку из исходного кода, см. раздел Сборка из исходного кода.
Основные возможности TimescaleDB
Расширенные возможности TimescaleDB
Тестирование TimescaleDB
timescaledb-tune: помогает установить параметры конфигурации PostgreSQL в зависимости от ресурсов вашей системы.
timescaledb-parallel-copy: распараллельте первоначальную массовую загрузку, используя COPY
PostgreSQL для нескольких рабочих процессов.
Зачем использовать TimescaleDB?
Миграция с PostgreSQL
Запись данных
Запросы и анализ данных
Учебные пособия и примеры данных
Слабый канал
Проблемы с Github
Поддержка по временной шкале: см. варианты поддержки (сообщество и подписка).
Примечания к выпуску по шкале времени: просмотрите подробную информацию о текущих и прошлых версиях и подпишитесь на уведомления о новых выпусках, исправлениях и программах раннего доступа/бета-тестирования.
Инструкции для участников
Руководство по стилю кода