TimescaleDB est un système de base de données gratuit, open-source et puissant alimenté par PostgreSQL. Il s'agit d'une extension de PostgreSQL et est spécialement conçu pour analyser des données de séries chronologiques avec PostgreSQL. TimescaleDB est très similaire à PostgreSQL, mais il est optimisé pour la vitesse et l'échelle. Généralement, les bases de données relationnelles sont principalement utilisées pour stocker des données et elles ne peuvent pas gérer les gros volumes de données de séries chronologiques. C'est là que TimescaleDB excelle ; il combine la vitesse des bases de données NoSQL et la facilité d'utilisation des bases de données relationnelles.
Dans ce tutoriel, nous allons vous montrer comment installer et utiliser TimescaleDB sur Ubuntu 20.04.
Prérequis
- Un nouveau VPS Ubuntu 20.04 sur la plate-forme cloud Atlantic.Net
- Un mot de passe root configuré sur votre serveur
Étape 1 - Créer un serveur cloud Atlantic.Net
Tout d'abord, connectez-vous à votre serveur Atlantic.Net Cloud. Créez un nouveau serveur en choisissant Ubuntu 20.04 comme système d'exploitation avec au moins 1 Go de RAM. Connectez-vous à votre serveur cloud via SSH et connectez-vous à l'aide des informations d'identification mises en évidence en haut de la page.
Une fois que vous êtes connecté à votre serveur Ubuntu 20.04, exécutez la commande suivante pour mettre à jour votre système de base avec les derniers packages disponibles.
apt-get update -y
Étape 2 - Installer la base de données PostgreSQL
Tout d'abord, vous devrez installer un serveur PostgreSQL sur votre serveur. Par défaut, il est disponible dans le référentiel standard Ubuntu. Vous pouvez l'installer facilement à l'aide de la commande suivante :
apt-get install postgresql postgresql-contrib -y
Une fois l'installation terminée, connectez-vous à PostgreSQL et définissez le mot de passe postgres :
su - postgres psql -c "alter user postgres with password 'password'"
Ensuite, quittez le shell PostgreSQL avec la commande suivante :
exit
Étape 3 - Installer TimescaleDB
Tout d'abord, installez toutes les dépendances requises avec la commande suivante :
apt-get install gnupg2 software-properties-common curl git unzip -y
Une fois toutes les dépendances installées, ajoutez le référentiel TimescaleDB avec la commande suivante :
add-apt-repository ppa:timescale/timescaledb-ppa -y
Ensuite, installez TimescaleDB en exécutant la commande suivante :
apt-get install timescaledb-postgresql-12 -y
Une fois TimescaleDB installé, il est recommandé de régler certaines configurations souhaitées. Vous pouvez le faire avec la commande suivante :
timescaledb-tune --quiet --yes
Vous devriez obtenir le résultat suivant :
Ensuite, redémarrez le service PostgreSQL pour appliquer les modifications de configuration :
systemctl restart postgresql
Étape 4 - Créer une nouvelle base de données et activer TimescaleDB
Dans cette section, nous allons créer une nouvelle base de données, activer TimescaleDB et y connecter la base de données.
Tout d'abord, connectez-vous au shell PostgreSQL et créez une nouvelle base de données nommée testdb avec la commande suivante :
su - postgres psql CREATE DATABASE testdb;
Ensuite, changez la base de données en testdb et connectez-la à TimescaleDB avec la commande suivante :
\c testdb CREATE EXTENSION IF NOT EXISTS timescaledb CASCADE;
Vous devriez obtenir le résultat suivant :
Les données de séries chronologiques sont des hypertables composées de plusieurs tables individuelles. Nous allons créer une table SQL normale, puis la convertir en une hypertable via la fonction create_hypertable.
Tout d'abord, créez une table pour stocker les informations de température et d'humidité.
CREATE TABLE conditions ( time TIMESTAMP WITH TIME ZONE NOT NULL, device_id TEXT, temperature NUMERIC, humidity NUMERIC );
Ensuite, transformez votre table en hypertable avec la commande suivante :
SELECT create_hypertable('conditions', 'time');
Ensuite, insérez des données dans l'hypertable avec la commande suivante :
INSERT INTO conditions(time, device_id, temperature, humidity) VALUES (NOW(), 'weather-pro-000000', 84.1, 84.1);
Ensuite, insérez plusieurs lignes de données avec la commande suivante :
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);
Vous pouvez maintenant vérifier vos données insérées avec la commande suivante :
INSERT INTO conditions VALUES (NOW(), 'weather-pro-000002', 70.1, 50.1) RETURNING *;
Vous devriez obtenir le résultat suivant :
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
Vous pouvez également supprimer des données de l'hypertable à l'aide de la commande suivante :
DELETE FROM conditions WHERE temperature > 80;
Une fois les données supprimées, vous pouvez exécuter la commande VACUUM pour récupérer l'espace encore utilisé par les données qui ont été supprimées.
VACUUM conditions;
Conclusion
Toutes nos félicitations! Vous avez installé et configuré avec succès TimescaleDB sur Ubuntu 20.04. Vous pouvez maintenant utiliser TimescaleDB pour stocker des données de séries chronologiques et utiliser ces données pour créer des graphiques. Démarrez avec TimescaleDB sur l'hébergement VPS d'Atlantic.Net !