Time series database (TSDB)
Les TSDB (time series database), ou bases de données de séries chronologiques, sont des systèmes logiciels optimisés pour trier et organiser des informations mesurées de manière temporelle. Une série chronologique est une série de points de données regroupés à des intervalles successifs et par ordre d'arrivée. Dans le jargon associé aux TSDB, un point de données correspond à une paire heure-valeur ou clé/valeur.
Les données chronologiques sont, par exemple, les modifications des transactions sur un marché financier, les statistiques collectées à partir de microservices, les alertes mémoire, les statuts, les données relatives aux événements et les actifs dynamiques.
Les time series database sont particulièrement utiles pour surveiller la métrique d'accès, la métrique des pannes, le comportement des processus et les charges de travail. Elles peuvent trier de grandes quantités de données complexes, rendant les informations plus accessibles que si elles étaient enregistrées dans une base de données classique.
Qu'appelle-t-on données chronologiques ?
Il existe plusieurs différences entre les données chronologiques et les données ordinaires intégrant un champ d'horodatage. Par exemple, avec les données chronologiques, les modifications ne sont pas ajoutées par écrasement, mais insérées dans un historique des informations.
Elles permettent aussi aux utilisateurs d'effectuer une analyse plus approfondie. En outre, les capacités d'analyse en temps réel des TSDB leur donnent un avantage sur les systèmes gérant des données statiques. Les données chronologiques permettent de réaliser un instantané d’un système sur une période donnée ou analyser de tendances historiques.
Les caractéristiques communes des données chronologiques sont les suivantes :
- Elles sont toujours collectées sur une période spécifique.
- Les nouvelles données provenant des charges de travail ne remplacent pas les données existantes, mais sont insérées pour compléter les informations existantes.
- Au moment T de leur écriture, elles sont automatiquement assignées à l'intervalle de temps le plus récent.
Autres exemples de données chronologiques :
- métrique de serveur,
- surveillance des performances des applications,
- données enregistrées par des capteurs (IoT ou non),
- données des réseaux,
- taux de clics.
Les données chronologiques peuvent également être appelées traces, tendances, profils ou courbes.
Pourquoi les TSDB sont-elles importantes ?
Les TSDB peuvent aider les entreprises à surveiller les informations en temps réel et à résoudre les problèmes au moment où ils surviennent. Associés à des algorithmes, elles peuvent également être utilisées pour prévoir les problèmes et y apporter des solutions préventives.
Elles sont plus faciles à utiliser et se caractérisent par de meilleurs taux d'écriture. Les performances des requêtes sont également meilleures malgré la grande quantité de données qu'elles organisent. À certains égards, les TSDB fonctionnent de la même manière que les bases de données ordinaires. Cependant, si l'on essaie d'utiliser une base de données relationnelles ou NoSQL pour les données chronologiques, le débit et les performances seront bien moindres.
Plus précisément, les autres SGBD égaleront les performances moyennes d’une TSDB en atteignant leurs pics de performances. Une bonne time series database offre un taux d’insertion ou la prise en compte d’un nombre de métriques élevés, calculé à la seconde. Leur précision atteint parfois la nanoseconde.
L’autre indicateur de performance pour une base de données de séries chronologiques se nomme cardinalité. Cette terminologie se réfère au nombre de valeurs uniques contenues dans une colonne ou un champ spécifique d’une base de données. Les TSDB offrent souvent une meilleure cardinalité, c’est-à-dire qu’elles ingèrent davantage de valeurs uniques qu’une base de données classique.
Ces performances s’expliquent par la localisation des données sur un même cluster. Par ailleurs, l’on dit qu’une base de données de séries chronologiques est verticale, c’est-à-dire que les données sont stockées colonne par colonne plutôt que ligne par ligne.
Les technologies actuelles exigent de plus en plus que le système soit capable d'interroger, de faire circuler et d'analyser les informations en temps réel. Cela nécessite des volumes plus importants, plus de rapidité et une plus grande spécificité dans la recherche des données. Ces dernières années, ces exigences ont entraîné une augmentation forte et régulière de l'utilisation des time series database.
Dans ce type de base de données, les requêtes sont semblables à celles des SGBD SQL et NoSQL, mais au lieu de lancer des recherches par valeurs, les développeurs peuvent lancer les recherches sur une période de temps écoulé, une plage de dates ou un moment particulier où un événement est survenu.
L'utilisation d'une TSDB présente les avantages suivants :
- La possibilité d'analyser de très grandes quantités de données à la fois.
- Si les données sont collectées chaque milliseconde, la base de données peut les compresser à des intervalles d'une minute ou même moins.
- Les TSDB utilisent des interfaces de programmation d'applications (API) accessibles en écriture.
Cas d'utilisation et exemples
Généralement, les TSDB cloisonnent les points de données fixes et dynamiques. C'est le cas, par exemple, lorsque l'utilisation d’un microprocesseur est mesurée pour suivre les performances d’un système. Les caractéristiques fixes qui font l'objet d'un suivi peuvent être le nom, la fourchette de données, la plage temporelle et les unités de mesure.
Les métriques dynamiques peuvent comprendre toutes les données depuis les valeurs d’horodatage (basées sur le Timestamp, une unité de mesure qui représente le nombre de secondes écoulées depuis le 1er janvier 1970) jusqu'aux métriques d’efficacité en passant par le pourcentage d'utilisation d’un processeur. Ici, la valeur à mesurer peut varier énormément en très peu de temps, d’où le l’utilisation du terme dynamique.
Le cloisonnement des données fixes et des données dynamiques permet aux time series database de rechercher et d'identifier rapidement des points de données spécifiques.
Par exemple, si une entreprise a reçu une réclamation indiquant qu'un expéditeur de conteneurs n'a pas envoyé le bon produit à un client à une date spécifique, les enregistrements des données chronologiques peuvent fournir des informations sur les produits qui étaient dans le conteneur lorsqu'il a été expédié. Ces informations peuvent permettre à l'entreprise d'identifier et de corriger l'erreur.
Bases de données les plus répandues
Les exemples de TSDB ne manquent pas. Ces bases de données sont généralement open source, ce qui signifie que n'importe qui peut proposer ses modifications du code source ou développer des modifications de son côté.
Les TSDB les plus courantes sont les suivantes :
- TimescaleDB
- OpenTSDB
- Graphite
- Prometheus
- InfluxDB
- KairosDB
- ClickHouse
Les time series database sont généralement des bases de données SQL ou NoSQL adaptées aux besoins de vélocité et de volumétrie. Elles partagent parfois des fonctionnalités communes avec leur modèle de base. Par exemple, TimeScaleDB s’appuie sur un socle PostgreSQL, tandis qu’InfluxDB est construit sur une base NoSQL redéveloppée de pied en cap.
La manière dont une base de données peut être utilisée dépend en grande partie de ses fonctionnalités, mais la plupart peuvent créer, lire, mettre à jour et supprimer des paires heure-valeur et les points qui y sont associés. Certaines TSDB effectuent également des calculs, des interpolations, des filtrages et des analyses.
L'énorme quantité des données collectées peut malgré tout provoquer des problèmes aux TSDB. En effet, l'indexation de grandes quantités de données pour chaque instance sauvegardée exige d'énormes capacités de stockage en mémoire. La plupart des entreprises doivent élaborer une politique de rétention pragmatique afin de supprimer automatiquement les informations qui ne sont plus pertinentes.
Cela leur permettra de libérer suffisamment d'espace de stockage pour les nouvelles informations. Les éditeurs tentent d’optimiser cet aspect en renforçant les capacités de suppression et de compression. En outre, les TSDB ont souvent besoin d'une quantité de code plus importante, ainsi que d'un code plus complexe dans les applications utilisées pour y accéder.