Trying to get an idea how to design the schema for a project. I anticipate logging measurements approximately every minute from a few Modbus connected devices (mostly solar inverters funneled through a proprietary communications gateway) which at present are then going through a Node-Red Inflxdb batch uploader to send data into InfluxDB and being dashboarded by Grafana. All of which is working great; seriously great, it’s so darn easy and cool!
But now it’s time to plan for the future where customers will be banging on it. As a means of providing data segregation from one customer to another primarily from within the Grafana interface, it seems each customer should have their own database.
I’m still having trouble planning what to call a Measurement vs a Tag or a Field. Queries seem to be the driving factor in schema design, but I can’t figure out what the best approach is. Our queries should be pretty straightforward, compare the performance of an inverter’s output to another across a given physical site. I’ve attached a hierarchy of potential field counts (which I suspect are trivial but I do anticipate scaling at the customer and site level) for relational reference.
It seems to me that gateway, inverter, string, and maybe sensor are all appropriate Tags. What’s not clear is where Measurements fit into this. Would a Measurement be something like a unit of measure? Such as fields which measure Power in Watts that get appropriate Tags for a Gateway vs an Inverter vs an Inverter’s String to differentiate them in the queries?