https://docs.influxdata.com/influxdb/v1.8/concepts/storage_engine/
Voici un article du blog Octo décrivant l’usage d’InfluxDB pour du monitoring de système https://blog.octo.com/monitorer-votre-infra-avec-telegraf-influxdb-et-grafana/
En conclusion, les TSDBs sont des bases de données adaptées à la gestion et au stockage d’un certain type de données (données datées), mais aussi à la manière dont elles seront consommées (requêtage par fenêtre continue de temps par exemple). Elles sont inspirées des technologies existantes et leur mode de fonctionnement (processus d’écriture, lecture, etc..) a été optimisé en prenant en compte la nature de la donnée traitée. Ces bases sont pour la plupart des bases de données NOSQL comme InfluxDB, mais peuvent aussi appartenir à la famille des bases de données relationnelles comme TimescaleDB. Leur capacité à prendre en charge un très grand nombre de données les rend populaires auprès de nombreux projets tel que ceux utilisant l’IoT.
Avec du recul, la stratégie adoptée lors de mon stage concernant la comparaison de ces deux TSDBs aurait pu être différente. Actuellement, et comme dit plus haut, la découverte et la prise en main de ces deux TSDBs nous a permis de conclure que leur utilisation est adaptée au cas d’usage Aura. Il nous est possible de conclure pour ce cas d’usage que la surcouche TimescaleDB de PostgreSQL nous permet d’avoir les mêmes performances en écriture et en lecture qu’une TSDB by-design tel qu’Influx. En effet, lors des tests, 30 millions de points étaient injectés en 1 heure environ dans l’une ou l’autre des bases de données.
L’utilisation d’une base de donnée relationnelle à laquelle on ajoute un module Timeseries offrirait des avantages supplémentaires par rapport à une TSDBs by-design ?
Sans être devenu un expert, j’ai pu prendre en main ces deux TSDBs “en surface” tout en essayant de découvrir ce qu’elles avaient “sous le capot”. Le déploiement et le requêtage de la donnée se font aisément. Cependant la compréhension de l’architecture mise en place pour les deux bases de données est beaucoup moins facile et il reste encore des choses à explorer.
A ce jour, je ne pourrai affirmer que ces technologies sont assez matures pour être déployées en production. Cependant, après six mois de stage et compte tenu du cas d’usage et de l’étude menée concernant ces deux bases, on peut conclure qu’elles sont adaptées à un projet IoT.