Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
✅ Secuencia de eventos de Azure Stream Analytics ✅ Fabric
Devuelve 1 si el evento es el primer evento dentro de un intervalo fijo determinado o 0 de lo contrario. Los intervalos se alinean de la misma manera que las ventanas de saltos de tamaño constante (consulte Ventana de saltos de tamaño constante). ISFIRST no se ve afectado por predicados en la cláusula WHERE, las condiciones de combinación en la cláusula JOIN o las expresiones de agrupación en la cláusula GROUP BY de la consulta actual. ).
Sintaxis
ISFIRST ( timeunit , duration )
[ OVER ( [PARTITION BY partition_by_expression] [WHEN when_expression]) ]
Argumentos
timeunit
Es la unidad de tiempo durante la duración. En la tabla siguiente se enumeran todos los valores de unidad de tiempo válidos --- ambos completos.
se pueden usar nombres y abreviaturas en la consulta.
Timeunit | Abreviaturas |
---|---|
día | dd, d |
hora | Hh |
minuto | mi, n |
segundo | ss, s |
milisegundo | Sra. |
microsegundo | Mcs |
duración
Entero grande que especifica el número de unidades de tiempo en el intervalo. Por ejemplo,
ISFIRST(minute, 15) examinará intervalos de 15 minutos. Las horas de inicio de los intervalos son
alineado de la misma manera que en las ventanas de saltos de tamaño constante (consulte Ventana de saltos de tamaño constante).
[ OVER ( partition_by_clause [when_clause]) ]
La cláusula OVER especifica el subconjunto de los eventos entre los que se clasifica este evento:
PARTITION BY partition_by_expression cláusula divide el conjunto de resultados generado por FROM.
cláusula en particiones a las que se aplica la función. En otras palabras, se compara cada evento
solo a otros eventos que comparten su valor de partition_by_expression. Si no se especifica, cada una de ellas
el evento se clasifica con respecto a todos los demás eventos dentro del intervalo de tiempo.
WHEN when_expression cláusula especifica una condición booleana para los eventos que se deben tener en cuenta.
En otras palabras, cada evento solo se clasifica en comparación con otros eventos que cumplen
when_expression. Si el evento en sí no satisface when_expression, la función devuelve 0.
La cláusula WHEN es opcional.
Tipos de valor devuelto
bigint ("1" o "0" que representa "true" o "false", respectivamente)
Notas generales
ISFIRST no es determinista. Los eventos se procesan en orden temporal. Si hay varios eventos con los mismos eventos de marca de tiempo se procesan en el orden de llegada.
La aplicación de ISFIRST en el conjunto de resultados de una función de ventana puede producir resultados inesperados. Las funciones de ventana modifican la marca de tiempo de los eventos, ya que cada operación de ventana genera un evento al final de la ventana. Se puede tener acceso a la marca de tiempo actual de un evento con system.timestamp(), después de una operación de ventana que diferirá del atributo de hora del evento original. Si ISFIRST no se puede mover antes de la operación de ventana, considere la posibilidad de usar CollectTop, ordenando por la hora del evento original.
Ejemplos
Indica si un evento de lectura del sensor es el primero en intervalos de saltos de tamaño constante de 10 minutos:
SELECT
reading,
ISFIRST(mi, 10) as first
FROM Input
Indica si un evento es el primero en intervalos de saltos de tamaño constante de 10 minutos por deviceid:
SELECT
deviceid,
reading,
ISFIRST(mi, 10) OVER (PARTITION BY deviceid) as first
FROM Input
Indica si un evento es el primer evento con un valor superior a 50 en intervalos de saltos de tamaño constante de 10 minutos.
por deviceid:
SELECT
deviceid,
reading,
ISFIRST(mi, 10) OVER (PARTITION BY deviceid WHEN reading > 50 AND devicetype = 'thermostat') as firstAbove,
ISFIRST(mi, 10) OVER (PARTITION BY deviceid WHEN reading < 50 AND devicetype = 'thermostat') as firstUnder
FROM Input
WHERE
devicetype = 'thermostat'