Bonjour,
J'utilise MongoDB afin de stocker des données provenant d'objets connectés utilisant le protocole MQTT.
J'ai une application à l'écoute de MQTT qui stocke les données dans la DB (timestamp et une valeur).
Pour ce faire je créé une base de données par objet connecté (identifié par un ID) et une collection par type de données publiées par l'objet (température, humidité, position gps, etc...)
Au début je me posais la question si c'était pas un problème de créer une DB par objet connecté (il doit y en avoir 1000 environ et ça va encore augmenter) mais j'ai demandé à des "experts" qui donnaient une formation sur MongoDB et ils m'ont dit que ce n'était pas un problème. Mais, il n'y a pas très longtemps, d'autres personnes qui, elles, ne connaissent pas vraiment MongoDB mais plutôt les DB SQL m'ont dit que ce n'était pas la chose à faire, qu'il valait mieux avoir une seule base de données, que ça évitait la fragmentation des fichiers (entre autres).
Un des problèmes que je rencontre également est celui des index, Les collections sont créé dynamiquement par mon application à chaque fois qu'une valeur est publiée sur un nouveau topic MQTT. Je devrais donc pour bien faire vérifier à chaque fois si l'index existe dans une collection et si pas, le créer, mais je suppose que ça bouffe beaucoup de ressources de faire le test.
Qu'en pensez vous ?
Merci
Partager