Partilhar via


System.Timestamp()

✅ Azure Stream Analytics

Cada evento em cada estágio da consulta no Azure Stream Analytics tem um carimbo de data/hora associado a ele. System.Timestamp() é uma propriedade do sistema que pode ser usada para recuperar o carimbo de data/hora do evento.

Abaixo, descrevemos como o Azure Stream Analytics atribui carimbos de data/hora a eventos.

Carimbo de data/hora de eventos de entrada

O carimbo de data/hora do evento de entrada pode ser definido pelo valor da coluna (ou uma expressão) especificado na cláusula TIMESTAMP BY :

SELECT System.Timestamp() t   
FROM input   
TIMESTAMP BY MyTimeField  
  

Se uma cláusula TIMESTAMP BY não for especificada para uma determinada entrada, a hora de chegada do evento será usada como um carimbo de data/hora. Por exemplo, o tempo enfileirado do evento será usado no caso de entrada do Hub de Eventos.

Carimbo de data/hora do evento resultante

Quando os cálculos são realizados, o carimbo de data/hora do evento resultante é o primeiro momento lógico em que esse resultado pode ser determinado.

Vamos ver como as operações de consulta básicas no Azure Stream Analytics (filtros, projeções, agregações e junções) geram os carimbos de data/hora para o resultado.

Projection

SELECT  
      Prop1,  
      Prop2,  
      Prop3 - Prop4 / 12,
      System.Timestamp() t  
FROM input  
  

As projeções não alteram o carimbo de data/hora do evento, o carimbo de data/hora do resultado é o mesmo que o carimbo de data/hora da entrada.

Filter

SELECT *  
FROM input  
WHERE prop1 > prop2  
  

Os filtros não alteram o carimbo de data/hora do evento. O carimbo de data/hora do resultado é o mesmo que o carimbo de data/hora da entrada.

GROUP BY ao longo da janela de tempo

SELECT  
      userId,  
      AVG(prop1),  
      SUM(prop2),  
      System.Timestamp() t  
FROM input  
GROUP BY TumblingWindow(minute, 1), userId  
  

O carimbo de data/hora do resultado da agregação é o final da janela de tempo à qual esse resultado corresponde. Consulte Artigos de janelas que descrevem diferentes tipos de janela no Azure Stream Analytics.

INNER JOIN

SELECT  
      System.Timestamp()  
FROM input1  
JOIN input2  
ON DATEDIFF(minute, input1, input2) BETWEEN 0 AND 10  
  

Uma junção interna produz resultados que correspondem a pares correspondentes de eventos de input1 e input2.

O evento que representa a correspondência do evento e1 de input1 e e2 de input2 é carimbo de data/hora pelo mais recente dos carimbos de data/hora de e1 e e2.

JUNÇÃO EXTERIOR ESQUERDA

SELECT  
      System.Timestamp()  
FROM input1  
LEFT JOIN input2  
ON DATEDIFF(minute, input1, input2) BETWEEN -2 AND 10  
  

Uma junção esquerda-exterior produz resultados de dois tipos. Alguns correspondem a um par correspondente de eventos de input1 e input2; outros correspondem a apenas um evento de input1 e indicam que nenhum evento correspondente de input2 foi encontrado.

Os eventos que representam uma correspondência (tem input1 e input2) são marcados com a hora pelo mais recente dos carimbos de data/hora das entradas correspondentes (como no caso do INNER JOIN acima).

Os eventos que representam não-correspondências (input2 é NULL) são marcados com a data/hora pela hora lógica mais recente em que um evento input2 correspondente poderia ter ocorrido. Por exemplo, no exemplo acima, é o carimbo de data/hora de input1 + 10 minutos.