TimescaleDB est une base de données open source conçue pour rendre SQL évolutif pour les données de séries chronologiques. Il est conçu à partir de PostgreSQL et présenté sous forme d'extension PostgreSQL, offrant un partitionnement automatique dans le temps et dans l'espace (clé de partitionnement), ainsi qu'une prise en charge complète de SQL.
Si vous préférez ne pas installer ou administrer votre instance de TimescaleDB, essayez l'essai gratuit de 30 jours de Timescale, notre offre cloud entièrement gérée. Le calendrier est payant. Nous ne facturons pas le stockage que vous n'utilisez pas, les sauvegardes, les instantanés, les entrées ou les sorties.
Pour déterminer quelle option vous convient le mieux, consultez Produits Timescale pour plus d'informations sur notre version Apache-2, la communauté TimescaleDB (auto-hébergée) et Timescale Cloud (hébergé), notamment : comparaisons de fonctionnalités, FAQ, documentation et assistance.
Vous trouverez ci-dessous une introduction à TimescaleDB. Pour plus d’informations, veuillez consulter ces autres ressources :
Documentation du développeur
Chaîne Slack
Forum communautaire sur l'échelle de temps
Notes de version et plans futurs
Pour référence et clarté, tous les fichiers de code de ce référentiel font référence à la licence dans leur en-tête (soit la licence Apache-2-open-source, soit la licence Timescale (TSL)). Les binaires sous licence Apache-2 peuvent être construits en passant -DAPACHE_ONLY=1
à bootstrap
.
Les contributeurs sont les bienvenus.
(Pour créer TimescaleDB à partir des sources, consultez les instructions dans Création à partir des sources .)
TimescaleDB met à l'échelle PostgreSQL pour les données de séries chronologiques via un partitionnement automatique dans le temps et dans l'espace (clé de partitionnement), tout en conservant l'interface PostgreSQL standard.
En d'autres termes, TimescaleDB expose ce qui ressemble à des tables ordinaires, mais qui ne sont en réalité qu'une abstraction (ou une vue virtuelle) de nombreuses tables individuelles comprenant les données réelles. Cette vue à table unique, que nous appelons hypertable, est composée de nombreux morceaux créés en partitionnant les données de l'hypertable en une ou deux dimensions : par un intervalle de temps et par une "clé de partition" (facultative) telle que identifiant de l'appareil, emplacement, identifiant de l'utilisateur, etc.
Pratiquement toutes les interactions des utilisateurs avec TimescaleDB se font avec des hypertables. La création de tables et d'index, la modification de tables, l'insertion de données, la sélection de données, etc. peuvent (et doivent) être exécutées sur l'hypertable.
Du point de vue de l'utilisation et de la gestion, TimescaleDB ressemble à PostgreSQL et peut être géré et interrogé en tant que tel.
Les paramètres prêts à l'emploi de PostgreSQL sont généralement trop conservateurs pour les serveurs modernes et TimescaleDB. Vous devez vous assurer que vos paramètres postgresql.conf
sont réglés, soit en utilisant timescaledb-tune, soit en le faisant manuellement.
-- N'oubliez pas de créer l'extension timescaledbCREATE EXTENSION timescaledb;-- Nous commençons par créer une table SQL standardCREATE TABLE conditions ( time TIMESTAMPTZ NOT NULL, localisation TEXTE NON NULL, température DOUBLE PRÉCISION NULLe, humidité DOUBLE PRECISION NULL);-- Ensuite, nous le convertissons en une hypertable partitionnée par timeSELECT create_hypertable('conditions', 'time');
Démarrage rapide : création d'hypertables
Exemples de référence
L'insertion de données dans l'hypertable se fait via des commandes SQL normales :
INSERT INTO conditions (heure, emplacement, température, humidité) VALUES (NOW(), 'office', 70.0, 50.0);SELECT * FROM conditions ORDER BY time DESC LIMIT 100;SELECT time_bucket('15 minutes', time) AS quinze_min , emplacement, COUNT(*),MAX(température) AS max_temp,MAX(humidité) AS max_hum FROM conditions WHERE time > NOW() - intervalle '3 heures' GROUPE PAR quinze_min, emplacement ORDER PAR quinze_min DESC, max_temp DESC ;
De plus, TimescaleDB inclut des fonctions supplémentaires pour l'analyse de séries chronologiques qui ne sont pas présentes dans Vanilla PostgreSQL. (Par exemple, la fonction time_bucket
ci-dessus.)
Démarrage rapide : opérations de base
Exemples de référence
API TimescaleDB
Timescale, un TimescaleDB entièrement géré dans le cloud, est disponible via un essai gratuit. Créez une base de données PostgreSQL dans le cloud avec TimescaleDB préinstallé afin de pouvoir alimenter votre application avec TimescaleDB sans frais de gestion.
TimescaleDB est également disponible pré-packagé pour plusieurs plates-formes telles que Linux, Windows, MacOS, Docker et Kubernetes. Pour plus d’informations, consultez Installer TimescaleDB.
Pour créer à partir des sources, consultez Création à partir des sources.
Fonctionnalités de base de TimescaleDB
Fonctionnalités avancées de TimescaleDB
Test de TimescaleDB
timescaledb-tune : aide à définir vos paramètres de configuration PostgreSQL en fonction des ressources de votre système.
timescaledb-parallel-copy : parallélisez votre chargement groupé initial en utilisant COPY
de PostgreSQL sur plusieurs nœuds de calcul.
Pourquoi utiliser TimescaleDB ?
Migration depuis PostgreSQL
Écriture de données
Requêtes et analyse de données
Tutoriels et exemples de données
Chaîne Slack
Problèmes GitHub
Support Timescale : voir les options de support (communauté et abonnement)
Notes de version Timescale : consultez des informations détaillées sur les versions actuelles et passées et abonnez-vous pour être informé des nouvelles versions, des correctifs et des programmes d'accès anticipé/bêta.
Instructions aux contributeurs
Guide de style de code