Referencia de lenguaje de consulta de Stream Analytics
Azure Stream Analytics ofrece un lenguaje SQL consultas para realizar transformaciones y cálculos a través de flujos 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 de nuestro 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 significados diferentes 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 que proporciona 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 desea usar una hora de 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. Resulta fundamental identificar la "marca de tiempo" de la transmisión de datos entrante, de modo de asegurarse de que la hora capturada también confirma la incidencia de un evento. Por ejemplo, si una persona supervisa los contadores de billetes y desea contar la cantidad de clientes facturados, idealmente la marca de tiempo del evento debe ser "pago exitoso" en lugar de la hora 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 desea usar el tiempo de la aplicación, puede usar la palabra clave TIMESTAMP BY para especificar la columna en la carga útil que se debe usar para marcar la marca de tiempo de cada evento entrante para realizar cualquier cálculo temporal, como ventanas, combinaciones, etc. Se recomienda usar TIMESTAMP BY durante el 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 Seleccionar.
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 que se crea mediante el nivel de compatibilidad 1.0 se cambian a minúsculas (sin tener en cuenta las mayúsculas y minúsculas) cuando el motor de Azure Stream Analytics datos. En el caso de los formatos de entrada que admiten un esquema que distingue mayúsculas de minúsculas, por ejemplo JSON, puede construir eventos que tengan campos duplicados cuando los nombres de campo se comparan de una manera que no distingue mayúsculas de minúsculas. Dichos eventos se consideran eventos no válidos y se quitan durante el procesamiento.
La confidencialidad de mayúsculas y minúsculas se conserva para los nombres de campo cuando se crea Stream Analytics trabajo mediante el nivel de compatibilidad 1.1 o superior. Para obtener más información, consulte el tema Configurar 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.