The Vertica Analytics Platform supplies enterprise data warehouses with big data analytics capabilities and modernization. Vertica is owned and supported by OpenText.
N/A
Amazon Redshift
Score 9.0 out of 10
N/A
Amazon Redshift is a hosted data warehouse solution, from Amazon Web Services.
As someone just starting out with data analytics and warehousing vertica is a great tool for a small scale business. It has amazing performance and can scale upto TBs of data. It works well for any organization which has about 100 - 500 DAUs of the system. The system doesn't require a lot of ops overhead. Scaling for PB data and 1000s of DAU is vertica's weak point. The system is just not designed for large scale usage and still has a long way to go to improve scalability. There are experiments to run Vertica query engine on top of HDFS which seem promising, however - if you have the the Hadoop ecosystem you are better off going the HDFS + Presto/Impala/SparkSQL route. But if you are in the Hadoop ecosystem, you probably are already investing a lot in ops.
If the number of connections is expected to be low, but the amounts of data are large or projected to grow it is a good solutions especially if there is previous exposure to PostgreSQL. Speaking of Postgres, Redshift is based on several versions old releases of PostgreSQL so the developers would not be able to take advantage of some of the newer SQL language features. The queries need some fine-tuning still, indexing is not provided, but playing with sorting keys becomes necessary. Lastly, there is no notion of the Primary Key in Redshift so the business must be prepared to explain why duplication occurred (must be vigilant for)
Column-oriented storage organization, which increases performance of queries.
Compression, which reduces storage costs and I/O bandwidth. High compression is possible because columns of homogeneous datatypes are stored together and because updates to the main store are batched.
Shared nothing architecture, which reduces system contention for shared resources and allows gradual degradation of performance in the face of hardware failure.
Easy to use and maintain through automated data replication, server recovery, query optimization, and storage optimization.
Support for standard programming interfaces ODBC, JDBC, ADO.NET, and OLEDB.
Integration to Hadoop with the capability to perform analytics on ORC and Parquet files directly.
Redshift is fully managed. Small teams do not have the resources to maintain a cluster. CloudWatch metrics are provided out-of-the-box, and it is easy to configure alarms.
Redshift's console allows you to easily inspect and manage queries, and manage the performance of the cluster.
Redshift is ubiquitous; many products (e.g., ETL services) integrate with it out-of-the-box.
Writing .csvs to S3 and querying them through Redshift Spectrum is convenient.
One time, one of the nodes wasn't coming up because of some ambiguity with the local data. Vertica wasn't able to fix it by itself and we were trying to remove the node out of the database and we couldn't do it. It would be great if that could be addressed. Luckily when we rebooted the whole server, some of the dead transaction got flushed because of which vertica was able to recover and the node came up.
It could benefit from adding data integrity and programming tools common to other database management systems.
Amazon Redshift is based on PostgreSQL 8.0.2. That version of PostgreSQL was released in December 2006. While PostgreSQL was much improved since then, the new features were not implemented in Redshift. Many basic features are missing from it.
Primary keys can be declared but not enforced. Referential integrity (foreign keys) can be declared but not enforced. UNIQUE and CHECK constraints are not supported and cannot be declared.
IDENTITY can be declared on a column, and Redshift will put unique values into it. However: IDENTITY values in the newly inserted rows won’t be incremental or sequential. To implement a sequential number, you need to write your own custom code.
There are no stored procedures in Redshift. We are writing SQL script files, and then parsing and running them one statement at a time from a Python program. This also enabled us to implement execution-time error logging.
In SQL scripts, to check for the row count of affected rows, a complicated join query against some system tables or views has to be executed.
Data Control Language (DCL) does not exist. No statements like IF, WHILE, DO, RAISERROR, etc.
On performance of views… Views do not “pass-through” a query parameter which is a potential problem for performance.
When selecting against a view with the WHERE clause outside of the view, the inner query of the view will be executed first without consideration for the WHERE clause, and only then the WHERE clause will be applied.
Certain clauses of SQL work many times faster than other clauses. So be careful and test your statements for performance earlier rather than later, especially if working with a large data set.
There was a situation when DELETE FROM JOIN was unacceptably slow. Replacing JOIN with the USING clause made DELETE instantaneous.
Overall it serves all our aspects of data management like data cleaning, data manipulation, and data reporting on the cloud platform. We can create stored procedures and triggers in it very easily as all the options are self suggested in it. We can easily attach the results of ARS to the other tools as well for drawing the statistical results.
HP/Micro Focus Vertica support is in par with other bigger vendors. In addition to this, there is enough best practices documentation available for some of the most common ways you will use Vertica that makes it easy to get Vertica up and running.
The support was great and helped us in a timely fashion. We did use a lot of online forums as well, but the official documentation was an ongoing one, and it did take more time for us to look through it. We would have probably chosen a competitor product had it not been for the great support
MySQL and MS SQL Server are both fantastic RDBMS products. MS SQL Server goes a bit further since it has the builtin analytical functions. But it only scales so far. Once the data goes beyond capacity, getting results out just does not happen anymore. IBM Netezza and Teradata were both appliances that required different expertise than we had in house. Vertica was able to do the same, and in some cases better, on commodity hardware (frankly in our case old servers that were slated for recycling!) and at a small scale. In other words, Vertica we could grow slowly over time. Infobright is a great log processing database but for the functions we were looking to serve it just didn't have some of the features Vertica had that we felt were show stoppers.
We evaluated [Amazon] Redshift vs BigQuery vs Amazon EMR, back in 2014. Back then BigQuery cost was slightly higher than that of [Amazon] Redshift price structure. Amazon EMR, needs lots more management (Admin tasks) and EMR is designed to be ephemeral and not designed to be a data store. [Amazon] Redshift was ideal with the price structure, performance and ROI[.]