Hi,
I am building a Nerves firmware which will be used to collect some PMU (Phaser Measurement Unit) measurements and other necessary things like connectivity over LTE, storage, retrieval of data on request, etc.
Data will be collected at 50Hz rate/interval 24/7/365. This will not be small amount of data.
I would like to have 30 day data on a device. If that would be too problematic I would go for less, but this will be on a remote locations and pretty much decision was made without me
I will be using reComputer as hardware which is based on RPi CM4. Together with LTE module.
For storing data locally there are few options right now on my table and in my head.
-
CubDB. My first choice for my POC. I developed a logic to benchmark this so I am writing a lot of data in, my keys are timestamps since I will be query on that only for time ranges that I need to retrieve data later if issue detected. I can run my own queries, but currently i have like 2MIO records in it. To my calculations I might have like 110 - 150MIO records in there. Not sure (yet) about how it will behave. Iâve created a logic to delete data based on my retention, etc. For now kind of work just ok. Not sure yet about this compactions (everytime it changes the filename), not sure about behaviour on bigger number of records⊠donât know it yet so I am not aware of its limits, gotchasâŠ
-
Files like Parquet and handling things like âdaily indexâ approach. Easy to drop older than 30 days, easy to query those not being used for writes, BUT hard/canât access data from current file (open for write)
-
DuckDB? Really like the idea behind it, but Elixir client is not fully supported (yet). I would like partitioning though, but is not there.
-
Something else?
Does anyone have any experience with Cubdb and dealing with numbers around those above? Will it perform ok, are there issues to be expected? Would it be better to use SQLite? I am preparing myself a simulation environment, but I am not there yet. Final setup should be on a nerves device. So if anyone can share your own experiences or what to be careful about please I would really appreciate. Or if there is some other intersting approach that you used and it worked well for you I would really like to know about it.
Thanks,
Tomaz