Azure Synapse Analytics is described as the former Azure SQL Data Warehouse, evolved, and as a limitless analytics service that brings together enterprise data warehousing and Big Data analytics. It gives users the freedom to query data using either serverless or provisioned resources, at scale. Azure Synapse brings these two worlds together with a unified experience to ingest, prepare, manage, and serve data for immediate BI and machine learning needs.
$4,700
per month 5,000 Synapse Commit Units (SCUs)
Amazon Redshift
Score 8.9 out of 10
N/A
Amazon Redshift is a hosted data warehouse solution, from Amazon Web Services.
In terms of a well-suited scenario - the Azure Synapse can be used to capture data from multiple sources (especially from onPrem sources apart from Dataverse) and update the transformed data based on the given conditions (eg: refresh data based on the specified date/time ranges). Also, the transformed data can simply be transferred to Azure Data Lake for further processing by utilizing other analytics tools such as PowerBI.
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)
Keeping things "complicated, but simple"; [heterogeneous] data formats seen as just SQL tables to business experts used to use Power BI, Excel, and any other traditional SQL-oriented BI tools
Integration options using "Synapse pipelines", the application of ADFs
The greatly integrated solution of independent things (Spark MPP cluster, MPP SQL Servers, ADFs) - all sitting under one roof. Great job!
Integration with super-fast, globally replicated data. I really appreciate the integration of NoSQL databases (namely Core API and Mongo API under Cosmos DB) with purely batch-processed BI data
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.
With Azure, it's always the same issue, too many moving parts doing similar things with no specialisation. ADF, Fabric Data Factory and Synapse pipeline serve the same purpose. Same goes for Fabric Warehouse and Synapse SQL pools.
Could do better with serverless workloads considering the competition from databricks and its own fabric warehouse
Synapse pipelines is a replica of Azure Data Factory with no tight integration with Synapse and to a surprise, with missing features from ADF. Integration of warehouse can be improved with in environment ETl tools
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.
The data warehouse portion is very much like old style on-prem SQL server, so most SQL skills one has mastered carry over easily. Azure Data Factory has an easy drag and drop system which allows quick building of pipelines with minimal coding. The Spark portion is the only really complex portion, but if there's an in-house python expert, then the Spark portion is also quiet useable.
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.
Microsoft does its best to support Synapse. More and more articles are being added to the documentation, providing more useful information on best utilizing its features. The examples provided work well for basic knowledge, but more complex examples should be added to further assist in discovering the vast abilities that the system has.
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
They're all part of the Microsoft Azure family, so they are not exactly competitors. They overlap in functionality, but they're targeted at different levels of customers. Azure Data Factory is an excellent stand-alone PaaS (included in Synapse Analytics) for writing, scheduling, and monitoring pipelines. Azure SQL Database (and all the Azure SQL family) is excellent for traditional, SQL-based data warehouses, especially if you're migrating from on-premises. Combined with Azure Data Factory (that can run SSIS packages), it's a perfect solution for a simple path to the cloud. Azure Databricks is effectively the only internal "competitor" to Synapse Analytics but targeted more to a "platform-agnostic" audience. On the other hand, Synapse is more of a proprietary mix of products that are more tightly related to Microsoft technologies.
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[.]
It definitely has a positive impact on ROI. We are able to use it to generate MORE revenue through predictive analytics and pricing optimization.
Because of the SQL Data Warehouse design, we're able to set up some self service reporting tools which allow our users to generate reports ad hoc instead of having a full time employee creating these by hand.
Having visibility into the data is very useful for management to make good business decisions.