Ingerir e transformar dados
06. Streaming, Eventstreams e janelas
Eventos chegam continuamente, fora de ordem e, às vezes, repetidos. Calcular a média dos últimos minutos exige mais do que executar uma consulta várias vezes: é preciso escolher o relógio relevante, conservar estado e decidir até quando uma chegada tardia pode mudar o resultado.
Eventos chegam continuamente, fora de ordem e, às vezes, repetidos. Calcular a média dos últimos minutos exige mais do que executar uma consulta várias vezes: é preciso escolher o relógio relevante, conservar estado e decidir até quando uma chegada tardia pode mudar o resultado.
Fluxo, tempo e estado
Event time representa quando o fato ocorreu; processing time representa quando o mecanismo o processa. Um sensor pode registrar uma ocorrência às 10h e entregá-la às 10h05. Se a análise é sobre o comportamento às 10h, usar apenas o horário de chegada desloca a medida. Escolher event time ainda exige definir uma política de atraso.
Filtros que dependem apenas da linha atual são stateless. Contagens por chave, deduplicação temporal e joins entre fluxos precisam conservar informações anteriores e são stateful. O volume de estado depende da quantidade de chaves, da janela e da tolerância. A memória não cresce apenas pelo tamanho de cada evento, mas também pelo tempo durante o qual candidatos precisam ser mantidos.
Uma janela por event time pode continuar recebendo contribuições depois de seu fim no relógio de processamento, conforme a política de atraso. Portanto, o instante em que a janela termina logicamente e o instante em que seu resultado é considerado final podem diferir. Essa diferença precisa ser comunicada ao consumidor. Uma métrica preliminar pode mudar quando chegam eventos atrasados elegíveis; uma métrica final pode descartar chegadas fora da tolerância. A escolha é parte do contrato de completude, não apenas um parâmetro de memória.
Janelas e resultados temporais
Janelas tumbling dividem o tempo em blocos fixos não sobrepostos. Uma convenção de início inclusivo e fim exclusivo evita contar a ocorrência da fronteira em dois blocos. Janelas hopping usam duração e passo; quando a duração supera o passo, há sobreposição e o mesmo evento pode participar de mais de um resultado.
Janelas deslizantes e de sessão possuem semânticas próprias conforme o mecanismo. A primeira deve ser entendida pelas regras de atualização temporal suportadas; a segunda agrupa atividade separada por intervalos de inatividade. Não transfira sintaxe ou condições de um motor para outro sem verificar suporte.
Filtrar eventos antes da agregação é diferente de filtrar o resultado agregado. Para valores 70 e 100, a média é 85; um filtro de média maior que 80 mantém o grupo e usa ambos os valores. Descartar previamente os valores abaixo de 80 produziria média 100 e responderia a outra pergunta.
Continue lendo de graça
O capítulo inteiro está liberado no plano gratuito
Criar conta leva menos de um minuto e não pede cartão. Você destrava o texto completo, o mapa mental, o PDF para estudar off-line e ainda resolve questões inéditas todo dia.
Leu o resumo? Agora pratique.
São 88 questões inéditas de Streaming, Eventstreams e janelas, todas comentadas alternativa por alternativa.
Você volta para este capítulo depois de criar a conta.
Fontes consultadas
- https://learn.microsoft.com/en-us/fabric/data-engineering/structured-streaming-stateful-processing
- https://learn.microsoft.com/en-us/fabric/real-time-intelligence/event-streams/process-events-using-sql-code-editor
- https://learn.microsoft.com/en-us/fabric/data-engineering/structured-streaming-common-patterns
- https://learn.microsoft.com/en-us/fabric/real-time-intelligence/event-streams/process-events-using-event-processor-editor
- https://learn.microsoft.com/en-us/fabric/data-engineering/lakehouse-streaming-data