Solución de problemas de conexiones de entrada
En este artículo se describen los problemas comunes relacionados con las conexiones de entrada de Azure Stream Analytics, cómo solucionar problemas de entrada y cómo corregir los problemas. Muchos pasos de solución de problemas requieren que los registros de recursos estén habilitados para el trabajo de Stream Analytics. Si los registros de recursos no están habilitados, consulte Solución de problemas de Azure Stream Analytics mediante registros de recursos.
El trabajo no recibe los eventos de entrada
Pruebe la conectividad de entrada y salida. Compruebe la conectividad a entradas y salidas con el botón Probar conexión para cada entrada y salida.
Examine los datos de entrada.
Use el botón Datos de ejemplo para cada entrada. Descargue los datos de ejemplo de entrada.
Inspeccione los datos de ejemplo para entender el esquema y los tipos de datos.
Compruebe métricas del centro de eventos para asegurarse de que se envían los eventos. Las métricas de mensajes deben ser mayores que cero si Event Hubs está recibiendo mensajes.
Asegúrese de que ha seleccionado un intervalo de tiempo en la versión preliminar de la entrada. Elija Seleccionar intervalo de tiempo y, a continuación, escriba una duración de ejemplo antes de probar la consulta.
Los eventos de entrada con formato incorrecto provocan errores de deserialización
Los problemas de deserialización surgen cuando el flujo de entrada del trabajo de Stream Analytics contiene mensajes con un formato incorrecto. Por ejemplo, que un mensaje tenga un formato incorrecto podría deberse a la falta de un paréntesis o una llave en un objeto JSON, o a un formato de marca de tiempo incorrecto en un campo de tiempo.
Cuando un trabajo de Stream Analytics recibe un mensaje con formato incorrecto desde una entrada, descarta el mensaje y le notifica con una advertencia. Se muestra un símbolo de advertencia en el icono Entradas del trabajo de Stream Analytics. El siguiente símbolo de advertencia persiste mientras el trabajo está en estado de ejecución:

Habilite los registros de recursos para ver los detalles del error y el mensaje (carga) que provocó el error. Hay varios motivos por los que se pueden producir errores de deserialización. Para más información sobre errores de deserialización específicos, vea Errores de los datos de entrada. Si los registros de recursos no están habilitados, habrá una breve notificación disponible en Azure Portal.

En los casos en los que la carga del mensaje es mayor que 32 KB o está en formato binario, ejecute el código CheckMalformedEvents.cs disponible en el repositorio de ejemplos de GitHub. Este código lee el identificador de la partición y el desplazamiento e imprime los datos de este último.
El trabajo excede el máximo de receptores del centro de eventos
Un procedimiento recomendado para el uso de Event Hubs es usar varios grupos de consumidores para la escalabilidad del trabajo. El número de lectores en el trabajo de Stream Analytics para una entrada específica afecta a la cantidad de lectores en un grupo de consumidores único. El número exacto de destinatarios se basa en los detalles de implementación interna para la lógica de la topología de escalado horizontal y no está expuesto de forma externa. El número de lectores puede cambiar cuando inicia un trabajo o durante las actualizaciones del mismo.
Los mensajes de error siguientes se muestran cuando el número de receptores supera el máximo. El mensaje de error incluye una lista de las conexiones existentes realizadas al centro de eventos en un grupo de consumidores. La etiqueta AzureStreamAnalytics indica que las conexiones sea realizan desde servicio de streaming de Azure.
The streaming job failed: Stream Analytics job has validation errors: Job will exceed the maximum amount of Event Hub Receivers.
The following information may be helpful in identifying the connected receivers: Exceeded the maximum number of allowed receivers per partition in a consumer group which is 5. List of connected receivers –
AzureStreamAnalytics_c4b65e4a-f572-4cfc-b4e2-cf237f43c6f0_1,
AzureStreamAnalytics_c4b65e4a-f572-4cfc-b4e2-cf237f43c6f0_1,
AzureStreamAnalytics_c4b65e4a-f572-4cfc-b4e2-cf237f43c6f0_1,
AzureStreamAnalytics_c4b65e4a-f572-4cfc-b4e2-cf237f43c6f0_1,
AzureStreamAnalytics_c4b65e4a-f572-4cfc-b4e2-cf237f43c6f0_1.
Nota
Cuando el número de lectores cambia durante una actualización de trabajo, se escriben advertencias transitorias en registros de auditoría. Los trabajos de Stream Analytics se recuperan automáticamente de estos problemas transitorios.
Agregar un grupo de consumidores a Event Hubs
Para agregar un nuevo grupo de consumidores a la instancia de Event Hubs, siga estos pasos:
Inicie sesión en Azure Portal.
Busque su centro de eventos.
Seleccione Event Hubs en el encabezado Entidades.
Seleccione un centro de eventos según el nombre.
En la página Instancia de Event Hubs, en el encabezado Entidades, seleccione Grupos de consumidores. Aparecerá un grupo de consumidores con nombre $Default.
Seleccione + Grupo de consumidores para agregar un nuevo grupo de consumidores.

Cuando se crea la entrada en el trabajo de Stream Analytics para que apunte al centro de eventos, es necesario especificar el grupo de consumidores ahí. $Default se utiliza cuando no se especifica ninguno. Una vez que cree un nuevo grupo de consumidores, edite la entrada de Event Hubs en el trabajo de Stream Analytics y especifique el nombre del nuevo grupo de consumidores.
El número de lectores por partición supera el límite de Event Hubs
Si la sintaxis de la consulta de streaming hace referencia varias veces al mismo recurso de entrada de Event Hubs, el motor de trabajo puede utilizar varios lectores por cada consulta de ese mismo grupo de consumidores. Cuando hay demasiadas referencias al mismo grupo de consumidores, el trabajo puede superar el límite establecido de cinco y se produce un error. En tales circunstancias, puede dividir aún más mediante el uso de múltiples entradas en varios grupos de consumidores; para ello, use la solución que se describe en la siguiente sección.
Los escenarios en los que el número de lectores por partición supera el límite de Event Hubs de cinco incluyen los siguientes:
Varias instrucciones SELECT: si usa varias instrucciones SELECT que hacen referencia a la misma entrada de centro de eventos, cada instrucción SELECT provoca que se cree un nuevo destinatario.
UNION: cuando se utiliza UNION, es posible tener varias entradas que hacen referencia al mismo centro de eventos y grupo de consumidores.
SELF JOIN: cuando se usa una operación SELF JOIN, es posible hacer referencia al mismo centro de eventos varias veces.
Las siguientes prácticas recomendadas pueden ayudar a reducir los escenarios en los que el número de lectores por partición supera el límite de Event Hubs de cinco.
División de la consulta en varios pasos mediante una cláusula WITH
La cláusula WITH especifica un conjunto de resultados con nombre temporal al que se puede hacer referencia mediante una cláusula FROM en la consulta. Defina la cláusula WITH en el ámbito de ejecución de una única instrucción SELECT.
Por ejemplo, en lugar de esta consulta:
SELECT foo
INTO output1
FROM inputEventHub
SELECT bar
INTO output2
FROM inputEventHub
…
Utilice esta consulta:
WITH data AS (
SELECT * FROM inputEventHub
)
SELECT foo
INTO output1
FROM data
SELECT bar
INTO output2
FROM data
…
Asegúrese de que las entradas se enlazan a grupos de consumidores diferentes
Para las consultas en las que hay conectadas tres o más entradas al mismo grupo de consumidores de Event Hubs, cree grupos de consumidores independientes. Esto requiere la creación de entradas de Stream Analytics adicionales.
Creación de entradas independientes con diferentes grupos de consumidores
Puede crear entradas independientes con diferentes grupos de consumidores para el mismo Centro de eventos. La siguiente consulta UNION es un ejemplo en el que InputOne e InputTwo hacen referencia al mismo origen del Centro de eventos. Cualquier consulta puede tener entradas independientes con diferentes grupos de consumidores. La consulta UNION es solo un ejemplo.
WITH
DataOne AS
(
SELECT * FROM InputOne
),
DataTwo AS
(
SELECT * FROM InputTwo
),
SELECT foo FROM DataOne
UNION
SELECT foo FROM DataTwo
El número de lectores por partición supera el límite de IoT Hub
Los trabajos de Stream Analytics usan el punto de conexión compatible con Event Hub integrado de IoT Hub para conectarse y leer eventos de IoT Hub. Si la lectura por partición supera los límites de IoT Hub, puede usar las soluciones para Event Hub para resolverlo. Puede crear un grupo de consumidores para el punto de conexión integrado bien a través de la sesión del punto de conexión del portal de IoT Hub bien a través del SDK de IoT Hub.
Obtener ayuda
Para más ayuda, pruebe nuestra Página de preguntas y respuestas de Microsoft sobre Azure Stream Analytics.