Bases timeseries / Big Data

Timescale, Prometheus, Influx DB, Elasticsearch

Introduction

Les bases timeseries sont essentielles pour l’accumulation de données dans n’importe quel projet avec des objets connectés. Ces bases permettent de nombreux traitements spécifiques aux données positionnées dans le temps (insertions efficaces, agrégations temporelles, traitements continus,…).

Notre expérience sur l’ensemble de ces bases nous permettent de choisir la plus adaptée à votre projet.

Timescale

Timescale est une extension de Postgresql ajoutant des fonctions timeseries à certaines tables de Postgres.

On profite ainsi des avantages d’une base timeseries et d’une base SQL.

InfluxDB

InfluxDB est une base timeseries avec des performances en lectures complètement hors norme. En revanche, ça n’est qu’une base timeseries et les coûts de licence peuvent être importants lors d’une mise en cluster.

Prometheus

Prometheus est une base timeseries très légère et très rapide. Les fonctions sont limitées mais suffisantes pour beaucoup de projet. Sa grande limitation à mon sens est de ne pas pouvoir enregistrer de données textuelles.

Elle est beaucoup utilisée dans des systèmes de monitoring, notamment en conjonction avec l’outil Grafana.

Elasticsearch

Elasticsearch n’est pas réellement une base timeseries (c’est plutôt vendu comme une base no-sql avec des fonctions de moteur de recherche). Cette base est pourtant très efficace pour tous les traitements timeseries et géographiques. Un peu comme InfluxDB, les coûts de licence peuvent vite être élevés lors de la mise en cluster.