Hi, I'm new to Pinot and have a possibly dumb ques...
# general
j
Hi, I'm new to Pinot and have a possibly dumb question - with so many features and horizontal scalability, when should one not use Pinot as a general relational database solution?
m
Pinot is optimized for performance, but is not a general relational database. For example, it doesn't provide transactions, or support for complex joins/nested queries.
j
Thanks. Do you have any links that talk about the limitations? I know that joins are not supported but presto is supposed to enable that.
m
Yes, we close those gaps with Presto
We don't have an exhaustive list of limitations but here are the major ones:
Copy code
1. Non transactional, eventually consistent
2. Does not support full SQL (used with Presto to fill that gap).
3. Not a source of truth
j
I see. Well, it sounds like it should pair well (to use wine terminology) with any other transactional database. Use the transactional DB for read-modify-write and use Pinot for reads so long as eventually consistent is acceptable.
Can it be paired with a no-sql DB like Mongo DB?
d
If you can leverage a CDC infrastructure to get your changeset to pinot, it does work nicely together
m
So the pattern there is to emit the changeset to a messaging system (eg Kafka) which Pinot can consume from
d
And since Pinot scales well for reads and write, it can be fed by different transactional sources from your system.
j
CDC = change data analysis?
d
Change Data Capture
j
Any recommended CDC architectures? debezium any good?
m
Yeah I have heard folks using that
Debezium is definitely the way to go !
Kenny has another blog coming up with Debezium and Pinot upserts which is even better
j
thanks!