Azure Stream Analytics is a fully managed stream processing engine using a SQL dialect extended with temporal constraints, running in the cloud or on IoT Edge with the same tools and query language.
Fully managed: write the query, attach inputs and outputs, choose streaming units; the service (built on the Trill engine) checkpoints, recovers, and guarantees exactly-once processing with at-least-once delivery to most sinks. The same job ships as an IoT Edge container for on-premises execution.
How Azure Stream Analytics answers the questions Stream Processing turns on.
| How it works | |
| Processing model | Fully managed continuous SQL over in-memory state; watermark progress is the only output trigger, so there are no partial aggregates |
| APIs | SQL-like query language; no-code editor; JavaScript UDFs and aggregates, Azure ML functions (C# retired in 2024) |
| Windowing | Tumbling, hopping, sliding, session, snapshot |
| Event time and lateness | Out-of-order and late arrival tolerances are configurable, each set to drop or adjust; events over five minutes early are always dropped; substreams give a watermark per key |
| State backend | Managed by the service and held in memory, with temporal state capped at seven days; checkpoints and replay recovery |
| Delivery guarantee | Exactly-once processing; At-least-once delivery to most sinks |
| Reading results | Through outputs; Power BI is a native one, so a dashboard can be the sink |
| Running it | |
| What you run | Nothing: a managed Azure job sized in streaming units; the same engine ships as an IoT Edge container for on-premises jobs |
| Scaling | Streaming units can be changed while the job runs, though a non-partitioned output or mismatched PARTITION BY steps restrict which values are available |
| Connections | |
| Connectors | Azure services almost exclusively: Event Hubs, IoT Hub, Blob and ADLS Gen2 in; Synapse, Data Explorer, Cosmos DB, SQL, PostgreSQL, Power BI, Functions, Service Bus and Table storage out. Kafka is the only outside input and its output is still preview |
vs Azure Stream Analytics: Open source (permissive) · Self-hosted · Managed · Free · Operational complexity: Medium · Streaming · Batch · Java, Python, Go
vs Azure Stream Analytics: Open source (permissive) · Self-hosted · Managed · Free · Subscription · Operational complexity: High · Streaming · Batch · Java, Scala, Python
vs Azure Stream Analytics: Open source (permissive) · Self-hosted · Managed · Free · Subscription · Operational complexity: High · Batch · Streaming · Scala, Python, Java