NoSQL with JDBC driver (MongoDB and AWS Timestream)


Is there any downside to using a NoSQL database with a JDBC driver?
I saw that there are JDBC drivers for MongoDB and for AWS Timestream. Since Ignition uses JDBC drivers to communicate with databases, would it be possible?

I believe there must be some difference since there is a module specially to communicate with MongoDB, but what is this difference?

My goal actually would be to use AWS Timestream to store sensor data. But I wanted to use PowerChart, since PowerChart needs a DB Table Historian, using the JDBC driver for the Timestream seems to be the only way, am I right?

I did a little research but I didn't find a concrete answer, what do you think?

Thank you very much!

With a custom module providing a history provider, there's potential for certain optimizations; there might be functions available to insert batches of records, or defer index updates, or anything like that.

With a JDBC driver, you always have to convert and send your data with the "lowest common denominator" SQL, data-table-based, rows-and-columns-matching format.

So, currently, the main difference between the two would be in storage performance (in theory; specifics will depend on the custom module and who's authoring it).
Both will likely get roughly the same query performance advantage (e.g. of Timestream), because in that case, they both have to ultimately talk to the lowest common denominator of Ignition itself - we don't currently allow history providers to provide their own aggregation logic, and do it all inside of Ignition. That's something we're considering changing to make connections to tools like Timestream, TimescaleDB, etc, more valuable.

1 Like