System.Timestamp() (Stream Analytics)

Todos os eventos em todas as fases da consulta no Azure Stream Analytics têm um carimbo de data/hora associado. System.Timestamp() é uma propriedade do sistema que pode ser utilizada para obter 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 dos 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 é utilizada como carimbo de data/hora. Por exemplo, a hora em fila de espera do evento será utilizada em caso de entrada do Hub de Eventos.

Carimbo de data/hora do evento resultante

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

Vejamos como as operações básicas de consulta no Azure Stream Analytics (filtros, projeções, agregações e associações) geram os carimbos de data/hora do resultado.

Projeção

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.

Filtro

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.

JANELA AGRUPAR POR ao longo do 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 fim da janela de tempo à qual este resultado corresponde. Veja Artigos do Windowsing (Azure Stream Analytics) que descrevem diferentes tipos de janela no Azure Stream Analytics.

ASSOCIAÇÃO INTERNA

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

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

O evento que representa a correspondência do evento e1 de input1 e e2 de input2 é marcado pela data/hora dos carimbos de data/hora mais recentes de e1 e e2.

ASSOCIAÇÃO EXTERNA À ESQUERDA

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

Uma associação externa à esquerda produz resultados de dois tipos. Alguns correspondem a um par de eventos correspondentes de input1 e input2; outros correspondem apenas a um evento de input1 e indicam que não foi encontrado nenhum evento correspondente da entrada2.

Os eventos que representam uma correspondência (tem entrada1 e entrada2) são marcados pelo carimbo de data/hora mais recente dos carimbos de data/hora das entradas correspondentes (como no caso da ASSOCIAção INTERNA acima).

Os eventos que representam não correspondências (input2 é NULL) são marcados por 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 da entrada1 + 10 minutos.