Referencia de lenguaje de consulta de Stream Analytics

Azure Stream Analytics ofrece un lenguaje de consulta SQL para realizar transformaciones y cálculos en secuencias de eventos.

Lenguaje de consulta de análisis de secuencia, un subconjunto de la sintaxis de T-SQL

En este documento se describe la sintaxis, el uso y los procedimientos recomendamos para el lenguaje de consulta de Análisis de transmisiones. Todos los ejemplos usados en este documento se basan en un escenario de cabina de peaje, tal como se describe a continuación.

El lenguaje de consulta de Stream Analytics es un subconjunto de sintaxis de T-SQL estándar para realizar cálculos de streaming.

El escenario de cabina de peaje

Una estación de peaje es un fenómeno común: las encontramos en muchas autopistas, puentes y túneles en todo el mundo. Cada estación de peaje tiene varias cabinas, que pueden ser manuales, lo que significa que es necesario detenerse para pagar a un encargado, o automatizadas, en las que un sensor ubicado en la parte superior del peaje escanea una tarjeta RFID ubicada en el parabrisas del vehículo cuando se pasa por la cabina del peaje. Es fácil imaginar el paso de los vehículos a través de estos peajes como si fuera un flujo de eventos sobre los que se pueden realizar operaciones interesantes.

Hora de llegada frente a tiempo de aplicación

En cualquier sistema temporal, como Azure Stream Analytics, es fundamental comprender el progreso del tiempo. Cada evento que fluye a través del sistema incluye una marca de tiempo a la que se puede acceder a través de System.Timestamp(). En otras palabras, cada evento del sistema representa un momento dado. Esta marca de tiempo puede ser un tiempo de aplicación, el que el usuario puede especificar en la consulta o que el sistema puede asignar, según la hora de llegada. La hora de llegada tiene diferentes significados en función de los orígenes de entrada. Para los eventos de Azure Event Hubs, la hora de llegada es la marca de tiempo dada por el centro de eventos; para Blob Storage, es la hora de la última modificación del blob. La marca de tiempo es el punto en el tiempo pertinente para la captura o el análisis de los datos. Si el usuario quiere usar una hora de la aplicación, puede hacerlo mediante la palabra clave TIMESTAMP BY . En el escenario anterior, se trata de la entrada del vehículo a la cabina de peaje. Es fundamental identificar la "marca de tiempo" en el flujo de datos entrante, uno debe asegurarse de que el tiempo capturado también confirma la aparición de un evento. Por ejemplo, si uno supervisa los contadores de efectivo y quiere contar el número de clientes facturados, lo ideal es que la marca de tiempo del evento sea "pago correcta" en lugar de "factura generada".

TIMESTAMP BY

En Análisis de transmisiones de Azure, todos los eventos tienen una marca de tiempo bien definida. Si el usuario quiere usar la hora de la aplicación, puede usar la palabra clave TIMESTAMP BY para especificar la columna en la carga que se debe usar para realizar cada evento entrante para realizar cualquier cálculo temporal, como Ventanas, Combinaciones, etc. Se recomienda usar TIMESTAMP BY a lo largo del tiempo de llegada como procedimiento recomendado. TIMESTAMP BY se puede usar en cualquier columna de tipo datetime y se admiten todos los formatos ISO 8601. System.Timestamp() solo se puede usar en Select.

El siguiente es un ejemplo de TIMESTAMP BY que usa la columna EntryTime como el tiempo de aplicación para eventos:

  
SELECT TollId, EntryTime AS VehicleEntryTime, LicensePlate, State, Make, Model, VehicleType, VehicleWeight, Toll, Tag   
FROM TollTagEntry TIMESTAMP BY EntryTime  
  

El nombre campo distingue mayúsculas y minúsculas

Los nombres de campo de un trabajo creado mediante el nivel de compatibilidad 1.0 se cambian a minúsculas (sin distinción entre mayúsculas y minúsculas) cuando el motor de Azure Stream Analytics procesa. En el caso de los formatos de entrada que admiten esquemas que distinguen mayúsculas de minúsculas, por ejemplo, JSON, puede construir eventos que tengan campos duplicados cuando se comparan nombres de campo de forma insensibilidad entre mayúsculas y minúsculas. Dichos eventos se consideran eventos no válidos y se quitan durante el procesamiento.

La distinción entre mayúsculas y minúsculas se conserva para los nombres de campo cuando se crea el trabajo de Stream Analytics mediante el nivel de compatibilidad 1.1 o superior. Para obtener más información, consulte el tema configurar el nivel de compatibilidad .

En esta sección

Consulte los temas siguientes para obtener instrucciones sobre cómo utilizar el lenguaje de consulta de Stream Analytics.

Consulte también