TimescaleDB è un potente sistema di database gratuito, open source basato su PostgreSQL. È un'estensione di PostgreSQL ed è appositamente progettato per analizzare i dati di serie temporali con PostgreSQL. TimescaleDB è molto simile a PostgreSQL, ma è ottimizzato per velocità e scalabilità. In genere, i database relazionali vengono utilizzati principalmente per archiviare dati e non possono gestire grandi volumi di dati di serie temporali. È qui che TimescaleDB eccelle; combina la velocità dei database NoSQL e la facilità d'uso dei database relazionali.
In questo tutorial, ti mostreremo come installare e utilizzare TimescaleDB su Ubuntu 20.04.
Prerequisiti
- Un nuovo VPS Ubuntu 20.04 sulla piattaforma Atlantic.Net Cloud
- Una password di root configurata sul tuo server
Fase 1:crea un server cloud Atlantic.Net
Per prima cosa, accedi al tuo server Atlantic.Net Cloud. Crea un nuovo server, scegliendo Ubuntu 20.04 come sistema operativo con almeno 1GB di RAM. Collegati al tuo Cloud Server tramite SSH e accedi utilizzando le credenziali evidenziate in alto nella pagina.
Dopo aver effettuato l'accesso al tuo server Ubuntu 20.04, esegui il comando seguente per aggiornare il tuo sistema di base con gli ultimi pacchetti disponibili.
apt-get update -y
Passaggio 2:installazione del database PostgreSQL
Innanzitutto, dovrai installare un server PostgreSQL nel tuo server. Per impostazione predefinita, è disponibile nel repository standard di Ubuntu. Puoi installarlo facilmente usando il seguente comando:
apt-get install postgresql postgresql-contrib -y
Una volta completata l'installazione, accedi a PostgreSQL e imposta la password postgres:
su - postgres psql -c "alter user postgres with password 'password'"
Quindi, esci dalla shell di PostgreSQL con il seguente comando:
exit
Fase 3 – Installa TimescaleDB
Innanzitutto, installa tutte le dipendenze richieste con il seguente comando:
apt-get install gnupg2 software-properties-common curl git unzip -y
Una volta installate tutte le dipendenze, aggiungi il repository TimescaleDB con il seguente comando:
add-apt-repository ppa:timescale/timescaledb-ppa -y
Quindi, installa TimescaleDB eseguendo il comando seguente:
apt-get install timescaledb-postgresql-12 -y
Una volta installato TimescaleDB, si consiglia di ottimizzare alcune configurazioni desiderate. Puoi farlo con il seguente comando:
timescaledb-tune --quiet --yes
Dovresti ottenere il seguente output:
Quindi, riavvia il servizio PostgreSQL per applicare le modifiche alla configurazione:
systemctl restart postgresql
Fase 4:crea un nuovo database e abilita TimescaleDB
In questa sezione creeremo un nuovo database, abiliteremo TimescaleDB e collegheremo il database ad esso.
Innanzitutto, accedi alla shell di PostgreSQL e crea un nuovo database chiamato testdb con il seguente comando:
su - postgres psql CREATE DATABASE testdb;
Quindi, cambia il database in testdb e collegalo a TimescaleDB con il seguente comando:
\c testdb CREATE EXTENSION IF NOT EXISTS timescaledb CASCADE;
Dovresti ottenere il seguente output:
I dati delle serie temporali sono ipertabelle costituite da molte singole tabelle. Creeremo una normale tabella SQL e poi la convertiremo in una hypertable tramite la funzione create_hypertable.
Innanzitutto, crea una tabella in cui memorizzare informazioni su temperatura e umidità.
CREATE TABLE conditions ( time TIMESTAMP WITH TIME ZONE NOT NULL, device_id TEXT, temperature NUMERIC, humidity NUMERIC );
Quindi, trasforma la tua tabella in una hypertable con il seguente comando:
SELECT create_hypertable('conditions', 'time');
Successivamente, inserisci alcuni dati nell'hypertable con il seguente comando:
INSERT INTO conditions(time, device_id, temperature, humidity) VALUES (NOW(), 'weather-pro-000000', 84.1, 84.1);
Successivamente, inserisci più righe di dati con il seguente comando:
INSERT INTO conditions VALUES (NOW(), 'weather-pro-000002', 71.0, 51.0), (NOW(), 'weather-pro-000003', 70.5, 50.5), (NOW(), 'weather-pro-000004', 70.0, 50.2);
Ora puoi verificare i tuoi dati inseriti con il seguente comando:
INSERT INTO conditions VALUES (NOW(), 'weather-pro-000002', 70.1, 50.1) RETURNING *;
Dovresti ottenere il seguente output:
time | device_id | temperature | humidity -------------------------------+--------------------+-------------+---------- 2020-12-03 15:48:24.329461+00 | weather-pro-000002 | 70.1 | 50.1 (1 row) INSERT 0 1
Puoi anche eliminare i dati dall'hypertable usando il seguente comando:
DELETE FROM conditions WHERE temperature > 80;
Una volta eliminati i dati, puoi eseguire il comando VACUUM per recuperare lo spazio ancora utilizzato dai dati che sono stati eliminati.
VACUUM conditions;
Conclusione
Congratulazioni! Hai installato e configurato correttamente TimescaleDB su Ubuntu 20.04. È ora possibile utilizzare TimescaleDB per archiviare dati di serie temporali e utilizzare tali dati per creare grafici. Inizia con TimescaleDB sull'hosting VPS da Atlantic.Net!