# NoSQL with JDBC driver (MongoDB and AWS Timestream)

**URL:** <https://forum.inductiveautomation.com/t/nosql-with-jdbc-driver-mongodb-and-aws-timestream/75848>\
**Category:** Ignition\
**Created:** [July 3, 2023, 2:20pm UTC](https://forum.inductiveautomation.com/t/nosql-with-jdbc-driver-mongodb-and-aws-timestream/75848 "2023-07-03T14:20:52Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![victor1](https://avatars.discourse-cdn.com/v4/letter/v/6de8d8/32.png) [@victor1](https://forum.inductiveautomation.com/u/victor1)\
**Post date:** [July 3, 2023, 2:20pm UTC](https://forum.inductiveautomation.com/t/nosql-with-jdbc-driver-mongodb-and-aws-timestream/75848/1 "2023-07-03T14:20:52Z")

</div>

Hello!

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!

---

<div class="post-metadata">

**Author:** ![paul-griffith](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/paul-griffith/32/37249_2.png) [@paul-griffith](https://forum.inductiveautomation.com/u/paul-griffith)\
**Post date:** [July 3, 2023, 3:26pm UTC](https://forum.inductiveautomation.com/t/nosql-with-jdbc-driver-mongodb-and-aws-timestream/75848/2 "2023-07-03T15:26:23Z")

</div>

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.
