LindormTSDB structure les données de séries temporelles autour de six éléments fondamentaux : table, tag, horodatage (timestamp), champ (field), point de données et série temporelle. La maîtrise de ces concepts vous aide à concevoir un schéma efficace et à rédiger des requêtes plus rapides.
Concepts clés
Table
Une table de séries temporelles stocke des données de même type. Par exemple, créez une table pour les relevés des capteurs de qualité de l’air et une autre distincte pour les métriques des éoliennes.
Tag
Un tag décrit une source de données et reste généralement constant dans le temps, comme l’ID d’un capteur ou la région où il est déployé. Les tags se composent d’une clé de tag et d’une valeur de tag, qui doivent toutes deux être du type de données STRING.
Les tags sont automatiquement indexés. LindormTSDB vous permet d’interroger les données selon plusieurs dimensions en vous basant sur les tags. Pour améliorer encore les performances des requêtes, spécifiez une colonne de tag comme clé primaire de la table afin de contrôler le partitionnement des données entre les nœuds.
Timestamp
Un timestamp indique le moment précis de génération d’une ligne de données. Spécifiez le timestamp lors de l’écriture des données ou laissez LindormTSDB le générer automatiquement.
Field
Un field décrit une métrique d’une source de données et évolue généralement dans le temps, par exemple les relevés de température ou d’humidité. Les fields se composent d’une clé de field et d’une valeur de field. Les clés de field doivent être du type de données STRING. Pour connaître les types de valeurs de field pris en charge, consultez la rubrique Types de données.
Ajoutez ou supprimez des colonnes de field à tout moment sans avoir à modifier au préalable le schéma de la table.
Utilisez les tags pour les attributs que vous filtrez ou regroupez fréquemment. Utilisez les fields pour les valeurs mesurées elles-mêmes.
Data point
Un data point correspond à une valeur de field enregistrée à un instant précis. Le nombre de data points écrits ou lus constitue la métrique principale pour mesurer le débit d’écriture et de requête.
Time series
Une time series représente la séquence des data points pour une métrique donnée, provenant d’une seule source de données au fil du temps. Dans une table de séries temporelles, toutes les lignes partageant les mêmes valeurs de tag appartiennent à la même time series.
LindormTSDB stocke conjointement les données issues d’une même time series, ce qui permet une compression efficace et accélère les requêtes. Les opérations prises en charge sur une time series incluent :
Agrégation — regrouper, compter, sommer ou déterminer les valeurs maximales ou minimales des data points sur une ou plusieurs time series
Réduction d’échantillonnage (Downsampling) — réduire la taille des résultats de requête en effectuant un échantillonnage à une granularité plus grossière (par exemple, convertir des données par seconde en données par heure)
Interpolation — combler les lacunes lorsqu’aucun data point n’existe dans une fenêtre temporelle donnée
Time to live (TTL)
Le TTL définit la durée de conservation de vos données. Une fois le TTL expiré, LindormTSDB supprime automatiquement les données. Par défaut, les données sont conservées indéfiniment.
Synthèse : une base de données LindormTSDB contient une ou plusieurs tables de séries temporelles. Chaque table héberge une ou plusieurs time series. Chaque time series est une séquence de data points — chaque data point étant une valeur de field associée à un timestamp — et est identifiée de manière unique par une combinaison de valeurs de tag.
Exemple : surveillance d’éoliennes
Une centrale éolienne utilise une table nommée Wind-generators pour stocker les données des capteurs provenant de plusieurs turbines. La table s’appuie sur trois tags pour identifier chaque turbine — ID, model et manufacturer — et sur deux fields pour enregistrer les mesures : power et wind speed.
Chaque turbine écrit en temps réel les valeurs de field dans LindormTSDB. Le tableau suivant illustre l’aspect des données stockées.
LindormTSDB prend en charge un débit d’écriture à haute concurrence et offre un taux de compression élevé. Les requêtes suivantes illustrent les types d’analyses rendus possibles par ce modèle de données.
Interroger une métrique unique sur une plage temporelle
Récupérez wind speed pour la turbine 7AD45EC de 2020-10-24T00:00:00Z à 2020-10-24T00:30:00Z.
Interroger plusieurs métriques sur une plage temporelle avec réduction d’échantillonnage
Récupérez power et wind speed pour la turbine 7AD45EC de 2020-10-24T00:00:00Z à 2020-10-25T00:00:00Z, avec un échantillonnage réduit à des intervalles de cinq minutes.
Agréger une métrique sur une plage temporelle
Obtenez la moyenne de power pour la turbine 7AD45EC de 2020-10-24T00:00:00Z à 2020-10-24T00:30:00Z.
Récupérer les dernières valeurs pour plusieurs métriques
Récupérez les valeurs actuelles de power et de wind speed pour la turbine 7AD45EC.
Agréger plusieurs time series par tag
Calculez la moyenne de wind speed à 2020-10-24T00:00:00Z pour toutes les turbines du fabricant KingWind.