Folks, first post so please go easy on me if I am not on the right track.
My question is about the storage of the data in the influxdb where the all fields (20+, numerical) of the data isn’t really changing much all the time. e.g. inverter data which is charging a large battery and during charge/discharge cycle battery_soc value won’t change much but some fields like home_load will change quite frequently, let’s say once every few second.
If I feed that data over mqtt to the influxdb I am filtering out unchanged data to reduce the noise and traffic. However this produces additional complexity where every second only a changing fields get updated in the db and we don’t know when next change in value will arrive. As result query becomes inaccurate as I don’t know how long the aggregate window has to be resulting in mean values being inaccurate. May be there is a way out of it and I need to learn how to handle this situation on the query but I am sure it will have additional overhead on the server processing. Is it worth the effort and cpu cycles to save some bandwidth and storage space?
So at this point I have two choices:
- Send only the changing fields. Pro: Less data to sent across saving bandwidth and influx db storage, Con: Difficulty in queries.
- Send all fields: Pro: Ease on query, Con: Repeated data unnecessarily flowing over the network and consing storage space where 20+ fields are being send across every second.
Has anyone been in this dilemma, any suggestions from the experience?