Bonjour,
Je travaille sur un petit système électronique consistant à commander une pompe en fonction de valeurs de débits et de niveaux d’eau. Pour mon algorithme de commande et pour générer des statistiques de consommation d’eau, j’ai besoin de stocker de manière persistente mes signaux d’entrée et de sortie. Par exemple :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | from sqlalchemy.ext.declarative import declarative_base Base = declarative_base() class PumpCommand(Base): __tablename__ = 'pump_command' id = Column(Integer, primary_key=True) running = Column(Boolean) datetime = Column(DateTime, default=datetime.datetime.utcnow) class WaterLevel(Base): __tablename__ = 'water_level' id = Column(Integer, primary_key=True) value = Column(Float) datetime = Column(DateTime, default=datetime.datetime.utcnow) |
Bref, ma base de données est très simple. Je n’ai pas besoin de faire de jointure, juste de lire simplement mes tables indépendamment.
Sachant cela, ainsi que le tout sera pour l’instant hébergé sur une RPi, je pensais m’orienter vers une base NOSql. Seulement, malgré mes recherches, je n’ai rien trouvé d’évident.
Redis me semble léger et performant, mais j’ai l’impression qu’il n’y a pas de notion de table. Or il me semble assez peu judicieux de stocker "au même endroit" mes mesures de débit et mes commandes de pompe.
MongoDB semble plus adapté de ce point de vue, mais je n’aurai pas utilité de la majeure partie de ses fonctionnalités, donc je suis un peu réticent à opter pour un truc aussi lourd.
Auriez-vous des conseils ? En, fait ce que je pense rechercher semble bêtement équivalent à :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | pump_commands = [ { 'id': 1, 'running': False, 'datetime': ..., }, ... ] water_levels = [ { ... }, ... ] |
Mais si je pouvais avoir un ORM et un vrai système de stockage (que je pourrais par exemple répliquer) derrière, ça m’arrangerait. Je travaille en Python.
Merci.