J'ai brûlé quelques heures sur un problème aujourd'hui et j'ai pensé que je partagerais.Azure Stream Analytics: "Le travail de Stream Analytics comporte des erreurs de validation: la clé donnée n'était pas présente dans le dictionnaire."
J'ai essayé de démarrer une Azure flux Analytics précédemment de travail et l'emploi a été accueilli par un échec rapide:
Failed to start Streaming Job 'shayward10ProcessLogs'.
Je regardais le journal JSON et n'a rien trouvé utile que ce soit. La seule description du problème était:
Stream Analytics job has validation errors: The given key was not present in the dictionary.
Compte tenu de l'erreur et quelques modifications à notre base de données, j'ai essayé ce qui suit à aucun effet:
- Suppression et Recréer toutes les entrées
- Suppression et Recréer toutes les sorties
- tests de course contre les données (provenant de Hub Event) et la sortie semblait bien
Ma requête a regardé comme suit:
SELECT
dateTimeUtc,
context.tenantId AS tenantId,
context.userId AS userId,
context.deviceId AS deviceId,
changeType,
dataType,
changeStatus,
failureReason,
ipAddress,
UDF.JsonToString(details) AS details
INTO
[MyOutput]
FROM
[MyInput]
WHERE
logType = 'MyLogType';
Je sens donc rien fait commencé à déconstruire ma requête. Je l'ai pris à un seul champ et il a réussi. Je suis allé champ par champ, essayant de comprendre quel champ (le cas échéant) était la cause.
Voir ma réponse ci-dessous.