Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
✅ Azure Stream Analytics ✅ Fabric Eventstream
Observação
O Fabric Eventstream é construído sobre o mesmo runtime do Azure Stream Analytics. Portanto, os conceitos explicados neste artigo são aplicáveis tanto ao Azure Stream Analytics como ao Fabric Eventstream.
Todos os eventos de fluxo de dados têm um carimbo de data/hora associado a eles. Os usuários podem usar a palavra-chave TIMESTAMP BY para escolher entre um destes dois momentos diferentes:
- Tempo de aplicação: O momento em que os eventos são produzidos (conforme marcado pela aplicação/dispositivo que gera os eventos). Ao usar tempo de aplicação, pode processar todos os eventos usando uma linha temporal global, ou analisar cada dispositivo/partição usando a sua própria linha temporal usando subfluxos;
- Hora de chegada: A hora em que o evento chegou à cloud (por exemplo, hora de chegada em IoT Hub ou Event Hubs).
Para além da escolha do carimbo temporal, os utilizadores podem ter de definir a política de Chegada Tardia e Fora de Ordem devido às seguintes questões:
- Os produtores dos eventos têm distorções de relógio. Este problema é comum quando os produtores são de máquinas diferentes, por isso têm relógios diferentes.
- Devido à latência da rede, os eventos originados pelo mesmo relógio podem chegar aos Event Hubs ou IoT Hubs numa ordem diferente da quando foram originados
- O relógio inclina-se entre partições. Quando usas consultas não particionadas, os eventos de todas as partições são fundidos pelo carimbo temporal escolhido pelo utilizador. Enviesamentos de relógio entre as partições podem resultar em atraso de processamento, porque a fusão precisa esperar pela partição mais lenta.
Os fluxos de entrada que não estão em ordem devem-se às seguintes razões:
- Ordenado (e, portanto, atrasado).
- Ajustado pelo sistema, de acordo com a política especificada pelo usuário.
O Stream Analytics tolera eventos atrasados e fora de ordem ao processar por tempo de aplicativo.
Política de Fora de Ordem
Ter eventos ordenados por tempo é muito importante na análise de streaming. No entanto, devido aos três problemas mencionados anteriormente, muitas vezes são recebidos fora de ordem, o que pode afetar os resultados das nossas consultas. A Política de Ausência de Ordem permite reordenar eventos por carimbo de data/hora quando eles chegam dentro da janela de tolerância definida. Os eventos que chegam depois da tolerância são descartados ou ajustados, dependendo da configuração escolhida.
- Ajustado: Ajustado para parecer ter chegado ao último momento aceitável.
- Descartado: Descartado.
Essa configuração pode ser ajustada no portal do Azure (na guia "Ordem de Eventos" de um trabalho). Para mais informações, consulte a página de considerações sobre a ordem do evento.
Ao definir uma política fora de ordem superior a zero, o Stream Analytics armazena eventos até essa janela e reordena-os usando o carimbo temporal definido pelo utilizador antes de aplicar a transformação temporal. Geralmente, começar com uma janela de 3 segundos primeiro é uma boa prática e depois ajustar o valor para reduzir o número de eventos a serem ajustados no tempo. Devido ao buffering, o efeito secundário é que a saída é atrasada pelo mesmo tempo. Como resultado, precisa de ajustar o valor para reduzir o número de eventos fora de ordem e manter a latência baixa.
Tolerância à chegada tardia
A janela de tolerância de chegada tardia é usada para contabilizar o atraso nos eventos que chegam à fonte de entrada devido a várias razões anteriormente descritas. Resumidamente, a janela de chegada tardia é o atraso máximo entre a geração do evento e o recebimento do evento na fonte de entrada. O ajuste com base na tolerância de chegada tardia é feito primeiro e fora de ordem é feito em seguida. A coluna System.Timestamp() tem o carimbo temporal final atribuído ao evento.
Esta configuração aplica-se apenas ao processar por tempo da Candidatura, caso contrário é ignorada. Ele também pode ser definido no portal do Azure (na guia "Pedido de Eventos" de um trabalho). Para mais informações, consulte a página de considerações sobre a ordem do evento.
Quando um evento está atrasado, o seu carimbo temporal é ajustado para o tempo atual de enqueue na fonte de entrada, menos a janela de tolerância de chegada tardia (ou é eliminado, dependendo da ação escolhida). Quando várias partições do mesmo fluxo de entrada ou vários fluxos de entrada são combinados, a tolerância de chegada tardia é a quantidade máxima de tempo que cada partição aguarda por novos dados.
Tolerância à chegada tardia e eventos esparsos
A política de chegada tardia permite que o Stream Analytics avance no tempo e gere resultados de forma mais oportuna na ausência de eventos de entrada. Esta funcionalidade é útil quando os eventos de entrada são escassos (ou não são recebidos de todo em algumas das partições dos Event Hubs).
Por exemplo, os eventos de entrada são gerados uma vez a cada minuto para uma consulta select*. Sem usar esta política, o Stream Analytics não pode gerar resultados de saída até que os eventos cheguem a todas as partições dos Centros de Eventos (para avançar o tempo). Este comportamento significa 16 minutos se os Event Hubs tiverem 16 partições, e que cada evento é entregue a uma partição diferente. Com a política padrão de 5 segundos, o relógio é avançado 5 segundos após o primeiro evento, pelo que o evento de saída é gerado 5 segundos depois do primeiro evento.
Ver também
Gestão do Tempo
System.Timestamp() (Análise de Fluxo)
CARIMBO TEMPORAL POR
Consideração da Ordem do Evento