Salida de Event Hubs desde Azure Stream Analytics
El servicio Azure Event Hubs es un agente de ingesta de eventos de publicación-suscripción altamente escalable. Puede recopilar millones de eventos por segundo. Un uso del centro de eventos como salida es cuando la salida de un trabajo de Stream Analytics se convierte en la entrada de otro trabajo de streaming. Para obtener información sobre el tamaño máximo del mensaje y la optimización del tamaño del lote, consulte la sección Tamaño de lote de salida.
Configuración de salida
La tabla siguiente contiene los parámetros necesarios para configurar las transmisiones de datos desde Event Hubs como salida.
Nombre de la propiedad | Descripción |
---|---|
Alias de salida | Nombre descriptivo usado en las consultas para dirigir la salida de la consulta a este centro de eventos. |
Espacio de nombres del centro de eventos | Contenedor para un conjunto de entidades de mensajería. Cuando crea un nuevo centro de eventos, también se crea un espacio de nombres de centro de eventos. |
Nombre del centro de eventos | Nombre de la salida del centro de eventos. |
Nombre de la directiva del centro de eventos | Directiva de acceso compartido, que puede crear en la pestaña Configurar del centro de eventos. Cada directiva de acceso compartido tiene un nombre, los permisos establecidos y las claves de acceso. |
Clave de la directiva de centro de eventos | Clave de acceso compartido usada para autenticar el acceso al espacio de nombres del centro de eventos. |
Columna de clave de partición | Opcional. Columna que contiene la clave de partición para la salida del centro de eventos. |
Formato de serialización de eventos | Formato de serialización para los datos de salida. Se admiten JSON, CSV y Avro. |
Encoding | Por el momento, UTF-8 es el único formato de codificación compatible para CSV y JSON. |
Delimitador | Solo se aplica para la serialización de CSV. Stream Analytics admite un número de delimitadores comunes para la serialización de datos en formato CSV. Los valores admitidos son la coma, punto y coma, espacio, tabulador y barra vertical. |
Formato | Solo se aplica para la serialización de JSON. La opción Separado por líneas especifica que en el formato de la salida cada objeto JSON está separado por una línea nueva. Si selecciona Separado por líneas, el objeto JSON se lee un objeto a la vez. El contenido total en sí mismo no sería un JSON válido. La opción Matriz especifica que el formato de la salida es una matriz de objetos JSON. |
Columnas de propiedades | Opcional. Columnas separadas por comas que necesitan agregarse como propiedades de usuario del mensaje saliente, en lugar de la carga útil. Puede obtener más información sobre esta característica en la sección Propiedades de metadatos personalizadas para la salida. |
Creación de particiones
La creación de particiones varía según alineación de particiones. Cuando la clave de partición para la salida del centro de eventos está alineada equitativamente con el paso de consulta ascendente (anterior), el número de sistemas de escritura es el mismo que el número de particiones en la salida del centro de eventos. Cada sistema de escritura usa la clase EventHubSender para enviar eventos a la partición específica. Cuando la clave de partición para la salida del centro de eventos no está alineada con el paso de consulta ascendente (anterior), el número de sistemas de escritura es el mismo que el número de particiones del paso anterior. Cada sistema de escritura usa la clase SendBatchAsync de EventHubClient para enviar eventos a todas las particiones de salida.
Tamaño de lote de salida
El tamaño máximo del mensaje es 256 KB o 1 MB por mensaje. Para obtener más información, consulte los límites de Event Hubs. Cuando las particiones de entrada-salida no se alinean, cada evento se empaqueta individualmente en EventData
y se envía en un lote que tiene como límite el tamaño máximo de mensaje. Esto también sucede si se usan las propiedades de metadatos personalizadas. Cuando las particiones de entrada-salida se alinean, varios eventos se empaquetan en una misma instancia de EventData
con el tamaño máximo de mensaje como límite y se envían.
Propiedades de metadatos personalizadas para la salida
Puede asociar las columnas de la consulta como propiedades de usuario a los mensajes salientes. Estas columnas no se envían a la carga útil. Las propiedades están presentes como diccionario en el mensaje de salida. Key es el nombre de columna y value es el valor de columna en el diccionario de propiedades. Se admiten todos los tipos de datos de Stream Analytics, excepto los tipos de registro y matriz.
En el ejemplo siguiente, los campos DeviceId
y DeviceStatus
se agregan a los metadatos.
Use la consulta siguiente:
select *, DeviceId, DeviceStatus from iotHubInput
Configure
DeviceId,DeviceStatus
como columnas de propiedades en la salida.
En la siguiente imagen se muestran las propiedades esperadas del mensaje de salida inspeccionadas en un centro de eventos mediante Service Bus Explorer.
Exactamente una entrega
La opción Exactamente una entrega se admite en la salida Event Hubs de manera predeterminada. Independientemente de la entrada, Stream Analytics no garantiza ninguna pérdida de datos ni de ningún duplicado en la salida Event Hubs en los reinicios iniciados por el usuario desde la última hora de salida, lo que impide que se generen duplicados. Esto simplifica considerablemente la canalización de streaming, al no tener que supervisar, implementar ni solucionar los problemas de la lógica de desduplicación.