Background: we’ve recently switched to Influx 2.0 from 1.8.
Problem: writing NULL point into measurement is not possible anymore in Influx 2.0? At least such insertion myMeasurement,tag1=value1,tag2=value2 fieldKey2=null 1620404467677 will fail.
Discussion: whether it makes sense to write NULL (or not) in time series database is somehow related to the problem I am reporting. Basically NULL means anything so it is not so useful from data analytics point of view. On the other hand a point in time with value NULL also means that an event has occurred at that point in time, which could be enough in some cases (ie. reporting heartbeat without any meaningful value).
Another interesting point is that the Flux QL has support for handling NULLs. That could be from the legacy reasons (to support legacy DBs), but in order to do so, they first would need to be migrated into the 2.0 version, using the 2.0 interface which disallow NULLs…?
To somehow continue the topic, it looks like the current approach is to prohibit explicit NULL insertion, but on the other hand also permit such insertion:
How do you mean Flux has no support for handling NULLs? How are you writing data to influxdb?
I might used not best wording here. I meant that the language itself allows to deal with NULLs while querying, but explicit data ingestion that would contain NULLs is prohibited.
I agree that’s odd. And yes, I believe you’re correct the recommended approach is to add a tag for null values…
Could you elaborate? What if any incoming value can be NULL?
I guess the overall problem appeared, because we don’t understand the data we gather and we dont do any transformation of this data. For example NULL may have meaning that a given sensor is in inactive state, but it’s the client problem to address that and convert into meaningful value (like 0 or false in this case).
Hello @Cyrus_Jomo,
Field values in line protocol, the ingest format for influxdb, must not be a null. Here are the acceptable types:
Nulls will not be written.
But if you’re streaming data and expecting to be writing data regularly, than you can use flux to group by that write duration and fill missing values where nulls would be.