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.
Your upcoming app can be built faster on a fully managed SQL database and can be moved into Azure with a few to no application code changes. Flexible and responsive server less computing and Hyperscale storage can cope with your changing requirements and one of the main benefits is the reduction in costs, which is noticeable.
Maintenance is always an issue, so using a cloud solution saves a lot of trouble.
On premise solutions always suffer from fragmented implementations here and there, where several "dba's" keep track of security and maintenance. With a cloud database it's much easier to keep a central overview.
Security options in SQL database are next level... data masking, hiding sensitive data where always neglected on premise, whereas you'll get this automatically in the cloud.
One needs to be aware that some T-SQL features are simply not available.
The programmatic access to server, trace flags, hardware from within Azure SQL Database is taken away (for a good reason).
No SQL Agent so your jobs need to be orchestrated differently.
The maximum concurrent logins maybe an unexpected problem.
Sudden disconnects.
The developers and admin must study the capacity and tier usage limits https://docs.microsoft.com/en-us/azure/azure-subscription-service-limits otherwise some errors or even transaction aborts never seen before can occur.
Only one Latin Collation choice.
There is no way to debug T-SQL ( a big drawback in my point of view).
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.
We give the support a high rating simply because every time we've had issues or questions, representatives were in contact with us quickly. Without fail, our issues/questions were handled in a timely matter. That kind of response is integral when client data integrity and availability is in question. There is also a wealth of documentation for resolving issues on your own.
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.
We moved away from Oracle and NoSQL because we had been so reliant on them for the last 25 years, the pricing was too much and we were looking for a way to cut the cord. Snowflake is just too up in the air, feels like it is soon to be just another line item to add to your Azure subscription. Azure was just priced right, easy to migrate to and plenty of resources to hire to support/maintain it. Very easy to learn, too.