rilascio del DBMS , progettato per la memorizzazione e l'elaborazione dei dati sotto forma di serie temporali (campionamento dei valori dei parametri a intervalli di tempo stabiliti, dove il tempo e il set di valori corrispondenti a quel tempo formano un record). Questa forma di archiviazione è ottimale per applicazioni come sistemi di monitoraggio, piattaforme di trading, sistemi di raccolta metriche e stati dei sensori. Sono forniti strumenti per l'integrazione con il progetto e .
Il progetto TimescaleDB è realizzato come un'estensione di PostgreSQL e sotto licenza Apache 2.0. con funzionalità avanzate è fornita sotto una licenza proprietaria separata (TSL), che non consente modifiche, vieta l'uso del codice in prodotti di terze parti e non permette un utilizzo gratuito in database cloud (database-as-a-service).
Tra le novità di TimescaleDB 1.7:
- È stata aggiunta la compatibilità con il DBMS . È stata dichiarata obsoleta la supporto per PostgreSQL 9.6.x e 10.x (con Timescale 2.0 resterà solo il supporto per PostgreSQL 11+).
- Comportamento delle query con funzioni aggregative in esecuzione continua modificato (aggregazione di dati in tempo reale). Queste query ora combinano le viste materializzate con i dati recentemente ricevuti che non sono ancora materializzati (in precedenza, l'aggregazione copriva solo i dati già materializzati). Il nuovo comportamento si applica per le aggregazioni continue create di recente; per le viste esistenti, è necessario impostare il parametro "timescaledb.materialized_only=false" tramite "ALTER VIEW".
- Nella versione Community sono stati trasferiti alcuni strumenti avanzati di gestione del ciclo di vita dei dati dalla versione commerciale, inclusi i meccanismi per la ripartizione dei dati e la gestione delle politiche di espulsione dei dati obsoleti (consentendo di mantenere solo i dati attuali e di rimuovere, aggregare o archiviare automaticamente le voci obsolete).
Ricordiamo che il database TimescaleDB consente di eseguire query SQL complete per l'analisi dei dati accumulati, combinando la facilità d'uso tipica dei database relazionali con la scalabilità e le funzionalità degli specifici sistemi NoSQL. La struttura di archiviazione è ottimizzata per garantire un'alta velocità di inserimento dei dati. Supporta l'inserimento batch di set di dati, l'uso di indici memorizzati in RAM, il caricamento retroattivo di campioni storici e l'applicazione di transazioni.
Una caratteristica chiave di TimescaleDB è il supporto per la partizionamento automatico dei dati. Il flusso di dati in ingresso viene automaticamente distribuito su tabelle partizionate. Le partizioni sono create in base al tempo (in ogni partizione vengono archiviati dati per un determinato intervallo di tempo) o legate a una chiave arbitraria (ad esempio, l'identificatore del dispositivo, la posizione, ecc.). Per ottimizzare le prestazioni, le tabelle partizionate possono essere distribuite su dischi diversi.
Per le query, un database suddiviso appare come un'unica grande tabella, chiamata ipertabella. L'ipertabella è una rappresentazione virtuale di molte tabelle separate, in cui vengono accumulate le informazioni. Viene utilizzata non solo per le query e l'aggiunta di dati, ma anche per operazioni come la creazione di indici e la modifica della struttura («ALTER TABLE»), nascondendo all'utente la complessa struttura segmentata del database. Con l'ipertabella è possibile utilizzare qualsiasi funzione aggregata, sottoruspe, operazioni di join con tabelle normali e funzioni finestra.
Fonte: opennet.ru
