Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Use Vertica Database for OLTP data?

Tags:

vertica

Can Vertica Database be used for OLTP data?
And if so what are the pros and cons on doing this?
Looking for a Vertica vs Oracle fight :)
Since Oracle license is so costly, would Vertica do it job for a better price ? thx all

like image 983
Up_One Avatar asked Dec 12 '22 00:12

Up_One


2 Answers

Using Vertica as a transactional database is a bad idea. It's designed to be a data warehousing tool. Essentially, it reads and writes data in an optimized fashion. Lots of transactions? That's not what it is designed to do.

I would recommend that you look into VoltDB. Michael Stonebreaker who is the force behind Vertica founded that company as well. His basic philosophy is that Oracle, SQL Server, et al do not do well for high performance since they are designed to do everything. The future is having databases designed for specific tasks.

So he had some concepts for a data warehousing which became Vertica. For transactional databases, there's VoltDB. Not owned by HP, for the record.

For the record, I haven't used VoltDB. From what I know, it isn't as mature as Vertica is as a solution but it looks like it has a ton of promise.

like image 101
geoffrobinson Avatar answered Feb 26 '23 17:02

geoffrobinson


HP Vertica is a column store database. The nature of the way that data is organised within a column store does not lend itself to rapid writes.

HP Vertica gets around this by having a WOS (Write Optimised Store) and ROS (Read Optimised Store which is file based).

Data is moved out of the WOS into the ROS fairly rapidly and the ROS itself has a "merge up" process that takes small ROS files and merges them together to form larger and therefore more easily scanned files.

If you tried to use Vertica for OLTP then what would happen would be that you'd get loads of ROS containers and possibly hit the default limit of 1024 ROS containers very quickly.

If you fronted the store with some form a queuing mechanism to pass through records in larger batches then this would result in fewer and larger ROS files. It would work but if you wanted to take your OLTP system to be reading very close to its writing activity it would not fit the use case.

The WOS/ROS mechanism is a neat work around for the fundamental performance penalty of writes in a column store DB but fundamentally Vertica is not an OLTP DB but rather a data mart technology that can ingest data in near real time

like image 40
Dave Poole Avatar answered Feb 26 '23 19:02

Dave Poole