I've used the Red Lion DA30 to use as my MQTT/Spark connector. It'll buffer to the SD then send it all to the DB whenever we get connectivity. (The Red Lion is prelicensed with Ignition btw)
Like the looks of the Groov, just haven't had work to tinker with one.
I often have a solution like this in my PLC, if I need to send data out to a DB, I always use a internal buffer in the PLC and send the data out from there.
I use an array that will match the data setup, and use one pointer to add data and another to send it out.
For some buffers I will keep the data in the PLC after i have send it to the DB, so when data is coming in to the buffer, I override the oldest record with the newest record.
And in others I delete the data string in the buffer after I have send it to the DB, all depending on the setup.
I never got around to using all the nice tools we have today in 5000, like sequence in and out of arrays, I startet this 20 years ago and being the lazy type, just reusing my old code