2

Nous diffusons actuellement des données à partir d'un concentrateur d'événements Azure via Azure Stream Analytics vers Cosmos DB. Je veux être en mesure de modifier par programme la requête (/ Transformation) qui est terminée que les données sont diffusées.Azure Stream Analytics Conflit de transformation CreateOrReplace ou demande incorrecte

var existingQuery = AnalyticsClient.Transformations.Get(handler.ResourceGroup, handler.JobName, handler.JobName); 

if (job.JobState == "Started") 
     { 
      AnalyticsClient.StreamingJobs.BeginStopAsync(handler.ResourceGroup, handler.JobName).Wait(); 
     } 
     var transformation = new Transformation() 
     { 
      Query = [email protected]"SELECT 
         [key] as partition_key 
        INTO[{outputName}] 
        FROM Input", 
      StreamingUnits = 1 
     }; 
AnalyticsClient.Transformations.CreateOrReplace(transformation, handler.ResourceGroup, handler.JobName, handler.JobName); 

Stream Analytics Job Properties - Les transformations sont nulles.

On ne sait pas ce que le nom par défaut de la transformation peut être mais essayer d'obtenir une transformation (du même nom que le travail) d'un emploi:

{ 
    "code": "NotFound", 
    "message": "StreamAnalytics_Prototype_2 does not exist in Stream Analytics job 'StreamAnalytics_Prototype_2' in resource group 'removed' in subscription 'removed'.", 
    "details": { 
     "code": "404", 
     "message": "StreamAnalytics_Prototype_2 does not exist in Stream Analytics job 'StreamAnalytics_Prototype_2' in resource group 'removed' in subscription 'removed'.", 
     "correlationId": "removed", 
     "requestId": "removed" 
    } 
} 

Essayer de créer une transformation:

{ 
    "code": "BadRequest", 
    "message": "The number of transformations defined for this job exceeds the maximum limit of 1 that is supported.", 
    "details": { 
     "code": "400", 
     "message": "The number of transformations defined for this job exceeds the maximum limit of 1 that is supported." 
    } 
} 

Répondre

2

Si vous créez la transformation du portail Azure, le nom par défaut est pour la transformation "transformation". Si vous créez la transformation à partir du SDK, vous devez spécifier le nom dans le code. Par ailleurs, j'ai trouvé le nom de la transformation par défaut du journal d'activité après avoir ajouté une requête du portail Azure.

enter image description here

+0

C'est très bien; ceci était également utile: var streamingjob = AnalyticsClient.StreamingJobs.Get (ResourceGroup, JobName, "transformation"); – DanAdrenaline

+0

J'ai également eu un flux sous lequel la requête a été nommée script (je suppose qu'un développeur l'a créé via .net), j'ai pu vérifier via la méthode ci-dessus dans le journal d'activité. – DanAdrenaline