What is our primary use case?
We were doing some level of stream data processing, so we had some use cases which were related to IoT. We had some IoT devices getting data in from other IoT devices and Azure Streaming Analytics has a special streaming analytics offering for IoT devices. Basically it was used for that.
What is most valuable?
I basically use two features that are useful. One is Azure Event Hubs, and that is used in conjunction with Azure Streaming Analytics. One is the broker and one is the processing engine. With the processing engine, the SQL way of dealing with things, with streams, is what I like, compared to other solutions, which are more like Scala or Spark-based, where you need to know the language. This was comparatively easy to use with its ability to write SQL on streams.
Technical support is pretty helpful.
It's my understanding that the setup is pretty straightforward.
What needs improvement?
With Azure specifically, the drawback is it is a very Azure-specific product. You can't connect it to external things out of Azure. For example, Spark or Databricks can be used in any cloud and can be used in AWS. This product doesn't work that way and is very Azure-specific. It's not a hybrid solution and it's not a cloud-agnostic solution, where you put it on other clouds, et cetera.
We had some connections which we wanted to make with AWS, which we couldn't do with this. We had to use something else for that.
Early in the process, we had some issues with stability.
You cannot do joins on streams of data. For example, one stream joining with another stream. Real-time to real-time joins, you're not able to do that. You can only join your stream with static data from your Azure storage.
For how long have I used the solution?
I've used the solution for one and a half to two years.
What do I think about the stability of the solution?
There were some issues with the IoT jobs when streaming Azure Streaming Analytics, which are high proof now. That said, earlier, we used to have a lot of issues with the erratic behavior of jobs. If data is not in the way they expect it, if they are not modeled correctly, then the jobs tend to break or fail quite a lot. That was one issue we had.
How are customer service and technical support?
We've been in touch with technical support. There was a time when jobs failed a lot and we couldn't understand the reason. When we talked to the spec tech support, they've looked into our data and told us that it's not exactly modeled as how Azure Stream Analytics needs it. That wasn't very clear when we got it.
They were helpful. There were issues which they handled, which they told us about. The communication was great.
We had the support package included.
Which solution did I use previously and why did I switch?
I'm now an analyst, so I don't use the products per se, however, prior to this, I have used Azure Streaming Analytics quite a lot. Currently, I'm working a bit on Databricks Spark Streaming. These two are, I would say, what I have used personally.
How was the initial setup?
The product was set up before I started out, however, what I can say, having set up some things personally, is it is comparatively straightforward and the Microsoft support on that is comparatively good.
What's my experience with pricing, setup cost, and licensing?
In terms of pricing, you can't compare it to open source solutions. It would be higher compared to open source, of course, however, with the support and everything you're getting, I would say the price, in general, is fair.
I have seen AWS as well and can compare it to that and I would say it is fair. The problem is it is not exactly dynamic or serverless, with how the way things are in the cloud. Therefore, it is not completely utilized. You have to set up things beforehand with some level of capability and capacity beforehand. In regards to the price, it's not too high and also not too low.
Their pricing is not exactly serverless. It's per hour. A lot of others are moving towards pricing based on the amount of data you pull. Streaming Analytics charges per hour, and in that sense, you need to set up the capacity by trial and error, literally.
Which other solutions did I evaluate?
I'm comparing the Azure Stream Analytics, AWS Kinesis, GCP Pub/Sub, and Dataflow. So I'm currently in the process of writing that research.
What other advice do I have?
If you are in the Azure world completely, and you're using the Microsoft stack completely, and you do not have the need to go in any other cloud, then it makes sense to use this solution as it integrates very well within the Azure ecosystem.
For IoT use cases, if you want to do real-time dashboarding with Power BI, it's great. Those kinds of things are where it has its niche. However, if you want a cloud-agnostic kind of solution, where you do not want to be stuck with just Microsoft, then there are other solutions out there such as Confluent, Kafka, Spark Streaming with Databricks, et cetera. You'll get the flexibility you need using any of those platforms.
I'd rate the solution at a seven out of ten. We had some issues with the jobs not behaving properly. They promise a lot, however, sometimes that doesn't happen and we realized that later. Some things under the hood, we couldn't really understand and we needed to get in touch with support. Those kinds of issues are where I would say it needs a bit of improvement, and maybe that's why I cut off two or three points.
Which deployment model are you using for this solution?
Public Cloud
Disclosure: My company does not have a business relationship with this vendor other than being a customer.