My question might be little native. What is the meaning of transaction in OLTP? Is it same as ACID Transaction or there is something else?
NoSql database like cassandra doesn't follow ACID properties. They follow CAP. In which category Cassandra falls? Is it OLAP or OLTP?
Despite not supporting true ACID, Cassandra is firstly an OLTP database which by definition means it's about capture, storage and processing of data from transactions in real time.
Cassandra can be used for OLAP workloads usually in combination with Apache Spark for analytics queries against the OLTP data. This is one of the really powerful use cases for Cassandra + Spark -- real time analytics so you can get insights in real time.
If you are running OLAP queries against Cassandra, the recommendation is to deploy in a multi-datacentre configuration such that:
By isolating OLTP workloads in its own DC, users of your application don't get affected by the load that analytics queries impose on the database. This ensures that the performance of your application and the user experience is consistent. Cheers!
Thanks @Erick for the reply. I was going through "Designing Data-Intensive Applications" by Martin Kleppmann, I am not able to understand the difference between OLAP and OLTP. Does any database where we can do aggregation is OLAP?
You can still do aggregations in Cassandra using Spark. There's no strict definitions but OLAP databases typically store data by columns rather than rows so you can easily do aggregations. Do a search for "columnar databases" to get a better idea. Cheers!