I have a database with a fairly unique schema and I’m running into a fundamental issue with the way that flux filters data. I have two series in-particular I would like to mention here (writing them out in Line Protocol), lets call them:
1.) MyMeas,Plant=A Value
2.) MyMeas Value
Lets say I want to run this query:
from(bucket: "MyBucket") |> range(start: 0, stop: now()) |> filter(fn: (r) => r._measurement == "MyMeas" and r._field == "Value" ) |> last()
This will return the last Value for both series. The problem here is the application running this query does not have knowledge of possibility of the Plant tag. It only has knowledge of “MyMeas Value”. I do not want to receive “MyMeas,Plant=A Value” Value here, I only want “MyMeas Value”.
When running the same query for series 1 that would look like:
from(bucket: "MyBucket") |> range(start: 0, stop: now()) |> filter(fn: (r) => r._measurement == "Test" and r._field == "Value" and r.Plant == "A") |> last()
Where I can specifically filter for a Plant tag.
I would like to be able to filter out the Plant tag on the first query, but like I said above, the application running this query will not know that that Tag exists. All it will see is MyMeas Value, therefore it doesn’t know how to filter Plant out.
Is there a way around this or a way to specify not to get extra tags?
Also I’m sure that this schema is not a recommended schema especially in my case, however my application needs to be able to handle any situation and this is included.