What is most valuable?
Vertica is an excellent data warehouse platform. Its column-oriented architecture makes it a powerful database specialized for data warehouses. Data should be designed around a star schema.
Data is accessed via SQL, which most developers are already familiar with.
Vertica is "catching on" in the software market, so its user knowledge base is gradually increasing.
The price seems reasonable, the product is reliable, and it uses SQL, so developers don't need to learn a new language.
How has it helped my organization?
It provides very fast results for analysts running reports. These reports are crucial to help our clients strategize their targeted marketing.
What needs improvement?
Vertica is relatively new and needs some polish and refinement, but its core functionality is excellent.
Documentation overall is fair to good; but lacks continuity or cohesiveness in places.
Although its knowledge base is increasing, it is still relatively small, making some issues difficult to diagnose without consulting Vertica Tech Support.
Vertica does not have native stored procedures or a native scripting language. Instead, external functions (which can be called from within Vertica) using Java, C++, Linux shell scripting, etc., are supported. This is an unpleasant surprise for many developers, but I feel this has not been a big hindrance in my experience. Complex business logic probably does not belong in a high-performance data warehouse platform. Rather, this should be taken care of during ETL.
For how long have I used the solution?
I have 3+ years of experience with Vertica.
What was my experience with deployment of the solution?
Deployment had only a few minor issues that one finds with most software.
What do I think about the stability of the solution?
How are customer service and technical support?
I would give technical support 8 out of 10. They have been responsive, professional and knowledgeable.
Which solution did I use previously and why did I switch?
- I have used traditional, row-oriented relational databases like SQL Server, Oracle and PostgreSQL for data warehousing. They are optimized for handling transactions, not data warehousing. Vertica is optimized for data warehousing and that was very clearly demonstrated in its ability to scan large amounts of data at high speed. It is also very fast at loading data.
- Vertica uses a distributed, shared-nothing architecture which allows for nodes to be added (or removed) according to need. This is a very scalable architecture which is very difficult to achieve with traditional row-oriented databases.
- Compared to Hadoop, Hive, and Spark, Vertica is much more adept at handling concurrent users.
How was the initial setup?
Installation is recommended for someone familiar with Linux (the only OS available for Vertica). For developers with a Linux background, the issues are very manageable. Documentation is good for the installation, so follow it carefully, step-by-step.
What about the implementation team?
Implementation was in-house. No significant issues were encountered.
What was our ROI?
ROI is good because Vertica, while not cheap, is a better performer than traditional databases.
What other advice do I have?
- Understand that its strengths depend on a good data warehouse design using a star schema. It was never intended for high volumes of small, randomly distributed inserts, updates and deletes that are typically found in transactional databases.
- It uses column-oriented architecture. It is important to study aspects of this architecture and to implement them and modify them as the database grows in size and more users access the system. This is especially true for projections, run-length encoding, sorting and column ordering. It is important to understand these aspects in order to truly maximize Vertica's performance.
Which version of this solution are you currently using?