The Vertica Analytics Platform supplies enterprise data warehouses with big data analytics capabilities and modernization. Vertica is owned and supported by OpenText.
Vertica is much easier to manage; is just software (i.e. vs. Netezza), easier to scale and extend, with a very powerful query execution engine and storage layer. While other solutions (e.g. Greenplum) are just postgres clones that were extended to run at scale but still keep …
Well suited: To most of the local run of datasets and non-prod systems - scalability is not a problem at all. Including data from multiple types of data sources is an added advantage. MLlib is a decently nice built-in library that can be used for most of the ML tasks. Less appropriate: We had to work on a RecSys where the music dataset that we used was around 300+Gb in size. We faced memory-based issues. Few times we also got memory errors. Also the MLlib library does not have support for advanced analytics and deep-learning frameworks support. Understanding the internals of the working of Apache Spark for beginners is highly not possible.
Vertica as a data warehouse to deliver analytics in-house and even to your client base on scale is not rivaled anywhere in the market. Frankly, in my experience it is not even close to equaled. Because it is such a powerful data warehouse, some people attempt to use it as a transactional database. It certainly is not one of those. Individual row inserts are slow and do not perform well. Deletes are a whole other story. RDBMS it is definitely not. OLAP it rocks.
Could use some work on better integrating with cloud providers and open source technologies. For AWS you will find an AMI in the marketplace and recently a connector for loading data from S3 directly was created. With last release, integration with Kafka was added that can help.
Managing large workloads (concurrent queries) is a bit challenging.
Having a way to provide an estimate on the duration for currently executing queries / etc. can be helpful. Vertica provides some counters for the query execution engine that are helpful but some may find confusing.
Unloading data over JDBC is very slow. We've had to come up with alternatives based on vsql, etc. Not a very clean, official on how to unload data.
If the team looking to use Apache Spark is not used to debug and tweak settings for jobs to ensure maximum optimizations, it can be frustrating. However, the documentation and the support of the community on the internet can help resolve most issues. Moreover, it is highly configurable and it integrates with different tools (eg: it can be used by dbt core), which increase the scenarios where it can be used
1. It integrates very well with scala or python. 2. It's very easy to understand SQL interoperability. 3. Apache is way faster than the other competitive technologies. 4. The support from the Apache community is very huge for Spark. 5. Execution times are faster as compared to others. 6. There are a large number of forums available for Apache Spark. 7. The code availability for Apache Spark is simpler and easy to gain access to. 8. Many organizations use Apache Spark, so many solutions are available for existing applications.
I haven't had any recent opportunity to reach out to Vertica support. From what I remember, I believe whenever I reached out to them the experience was smooth.
Spark in comparison to similar technologies ends up being a one stop shop. You can achieve so much with this one framework instead of having to stitch and weave multiple technologies from the Hadoop stack, all while getting incredibility performance, minimal boilerplate, and getting the ability to write your application in the language of your choosing.
Vertica performs well when the query has good stats and is tuned well. Options for GUI clients are ugly and outdated. IO optimized: it's a columnar store with no indexing structures to maintain like traditional databases. The indexing is achieved by storing the data sorted on disk, which itself is run transparently as a background process.