Escolha uma tecnologia de processamento de streaming e análise em tempo real no Azure
Há vários serviços disponíveis para análise em tempo real e processamento de streaming no Azure. Este artigo fornece as informações necessárias para decidir qual tecnologia é a mais adequada para sua aplicação.
Quando usar o Azure Stream Analytics
O Azure Stream Analytics é o serviço recomendado para análise de fluxo no Azure. Você pode usá-lo para uma ampla variedade de cenários que incluem, mas não estão limitados a:
- Painéis para visualização de dados
- Alertas em tempo real de padrões ou anomalias temporais e espaciais
- Extrair, Transformar, Carregar (ETL)
- Padrão de fornecimento de eventos
- IoT Edge
Adicionar um trabalho do Azure Stream Analytics ao seu aplicativo é a maneira mais rápida de colocar a análise de streaming em execução no Azure, usando a linguagem SQL que você já conhece. O Azure Stream Analytics é um serviço de trabalho, portanto, você não precisa gastar tempo gerenciando clusters e não precisa se preocupar com o tempo de inatividade com um SLA (Service Level Agreement, contrato de nível de serviço) de 99,9% no nível do trabalho. O faturamento também é feito no nível do trabalho, tornando os custos de inicialização baixos (uma Unidade de Streaming), mas escaláveis (até 396 Unidades de Streaming). É muito mais econômico executar alguns trabalhos do Stream Analytics do que executar e manter um cluster.
O Azure Stream Analytics tem uma experiência avançada e pronta para uso. Pode tirar partido imediatamente das seguintes funcionalidades sem qualquer configuração adicional:
- Operadores temporais incorporados, tais como agregados em janela, junções temporais e funções analíticas temporais.
- Adaptadores de entrada e saída nativos do Azure
- Suporte para dados de referência de mudança lenta (também conhecidos como tabelas de pesquisa), incluindo a junção com dados de referência geoespaciais para delimitação geográfica.
- Soluções integradas, como a Deteção de Anomalias
- Várias janelas de tempo na mesma consulta
- Capacidade de compor múltiplos operadores temporais em sequências arbitrárias.
- Latência de ponta a ponta inferior a 100 ms, desde a entrada que chega aos Hubs de Eventos até o pouso de saída nos Hubs de Eventos, incluindo o atraso da rede de e para os Hubs de Eventos, com alta taxa de transferência sustentada
Quando utilizar outras tecnologias
Você deseja escrever UDFs, UDAs e desserializadores personalizados em uma linguagem diferente de JavaScript ou C#
O Azure Stream Analytics dá suporte a funções definidas pelo usuário (UDF) ou agregações definidas pelo usuário (UDA) em JavaScript para trabalhos na nuvem e C# para trabalhos do IoT Edge. Desserializadores definidos pelo usuário em C# também são suportados. Se você quiser implementar um desserializador, um UDF ou um UDA em outras linguagens, como Java ou Python, você pode usar o Spark Structured Streaming. Você também pode executar o Event Hubs EventProcessorHost em suas próprias máquinas virtuais para fazer processamento de streaming arbitrário.
Sua solução está em um ambiente multicloud ou local
O Azure Stream Analytics é a tecnologia proprietária da Microsoft e só está disponível no Azure. Se você precisar que sua solução seja portátil em nuvens ou localmente, considere tecnologias de código aberto, como Spark Structured Streaming ou Apache Flink.