Compartir a través de


Referencia del lenguaje de consulta de Azure Stream Analytics y Eventstream

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

Subconjunto de la sintaxis de T-SQL

En este documento se describen la sintaxis, el uso y los procedimientos recomendados para el lenguaje de consulta de Stream Analytics. Todos los ejemplos usados en este documento se basan en un escenario de cabina de peaje como se describe a continuación.

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

Escenario de cabina de peaje

Una estación de peaje es un fenómeno común: los encontramos en muchas autopistas, puentes y túneles en todo el mundo. Cada estación de peaje tiene varias cabinas de peaje, que pueden ser manuales, lo que significa que deja de pagar el peaje a un operador, o automatizado, donde un sensor colocado en la parte superior de la cabina escanea una tarjeta RFID con el parabrisas de su vehículo mientras pasa la cabina de peaje. Es fácil visualizar el paso de vehículos a través de estas estaciones de peaje como un flujo de eventos sobre el que se pueden realizar operaciones interesantes.

Hora de llegada frente a hora de la aplicación

En cualquier sistema temporal como Azure Stream Analytics, es esencial 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 una hora de aplicación que el usuario puede especificar en la consulta o el sistema puede asignar en función de 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 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 momento dado que es relevante para capturar o analizar datos. Si el usuario quiere usar una hora de aplicación, puede hacerlo mediante la palabra clave TIMESTAMP BY . En el escenario anterior, es 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 la hora capturada 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 "facturación generada".

MARCA DE TIEMPO POR

En Azure Stream Analytics, 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 marca de tiempo cada evento entrante para realizar cualquier cálculo temporal como Windowing, Joins, etc. Se recomienda usar TIMESTAMP BY a lo largo de la hora 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.

A continuación se muestra un ejemplo TIMESTAMP BY que usa la columna EntryTime como hora de aplicación para los eventos:

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

Distinción entre mayúsculas y minúsculas de nombre de campo

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 los nombres de campo de forma insensibilidad entre mayúsculas y minúsculas. Estos 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 el uso del lenguaje de consulta de Stream Analytics.

Véase también