Guida per la risoluzione dei problemi di Analisi di flusso di AzureTroubleshooting guide for Azure Stream Analytics

La risoluzione dei problemi di Azure di flusso di Azure può risultare complessa a prima vista.Azure Stream Analytics troubleshooting can appear to be a complex effort at first glance. Dopo aver lavorato con molti utenti, è stata creata questa guida al fine di semplificare la procedura e rimuovere le ambiguità sugli input, gli output, le query e le funzioni.After working with many users, we have created this guide to help streamline the process and remove the guesswork about your inputs, outputs, queries, and functions.

Risoluzione dei problemi del processo di Analisi di flussoTroubleshoot your Stream Analytics job

Per ottenere i migliori risultati nella risoluzione dei problemi del processo di Analisi di flusso, applicare le linee guida seguenti:For best results in troubleshooting your Stream Analytics job, use the following guidelines:

  1. Testare la connettività:Test your connectivity:

    • Verificare la connettività agli input e output con il pulsante Verifica connessione per ogni input e output.Verify connectivity to inputs and outputs by using the Test Connection button for each input and output.
  2. Esaminare i dati di input:Examine your input data:

    • Per verificare che è attivo il flusso dei dati di input verso l'hub eventi, usare Service Bus Explorer per connettersi all'hub eventi di Azure, se in uso.To verify that input data is flowing into Event Hub, use Service Bus Explorer to connect to Azure Event Hub (if Event Hub input is used).
    • Usare il pulsante Dati di esempio per ogni input e scaricare i dati di esempio dell'input.Use the Sample Data button for each input, and download the input sample data.
    • Esaminare i dati di esempio per comprendere la forma dei dati, ovvero lo schema e i tipi di dati.Inspect the sample data to understand the shape of the data: the schema and the data types.
  3. Testare la query:Test your query:

    • Nella scheda Query usare il pulsante Verifica e i dati di esempio scaricati per testare la query.On the Query tab, use the Test button to test the query, and use the downloaded sample data to test the query. Esaminare eventuali errori e provare a risolverli.Examine any errors and attempt to correct them.
    • Se si usa Timestamp By, assicurarsi che i timestamp degli eventi siano successivi all'ora di inizio del processo.If you use Timestamp By, verify that the events have timestamps greater than the job start time.
  4. Eseguire il debug della query:Debug your query:

    • Ricreare la query progressivamente, partendo dalla semplice istruzione di selezione per arrivare agli aggregati più complessi, attenendosi alla procedura illustrata.Rebuild the query progressively from simple select statement to more complex aggregates by using steps. Usare la clausola WITH per creare la logica di query passo per passo.To build up the query logic step by step, use WITH clauses.
    • Usare SELECT INTO per eseguire il debug dei passaggi della query.Use SELECT INTO to debug query steps.
  5. Eliminare i problemi comuni, ad esempio:Eliminate common pitfalls, such as:

    • Una clausola WHERE della query ha filtrato tutti gli eventi impedendo la generazione dell'output.A WHERE clause in the query filtered out all events, preventing any output from being generated.
    • Quando si usano le funzioni finestra, attendere la durata dell'intera finestra per vedere l'output dalla query.When you use window functions, wait for the entire window duration to see an output from the query.
    • Il timestamp per gli eventi precede l'ora di inizio del processo, perciò gli eventi vengono eliminati.The timestamp for events precedes the job start time and, therefore, events are being dropped.
  6. Usare l'ordine degli eventi:Use event ordering:

    • Se tutti i passaggi precedenti hanno avuto esito positivo, accedere al pannello Impostazioni e selezionare Ordinamento eventi.If all the previous steps worked fine, go to the Settings blade and select Event Ordering. Verificare che questo criterio sia configurato in modo sensato per lo scenario.Verify that this policy is configured for what makes sense in your scenario. Il criterio non viene applicato quando si usa il pulsante Test per testare la query.The policy is not applied when you use the Test button to test the query. Questo aspetto rappresenta una differenza tra il test nel browser e l'esecuzione del processo in produzione.This result is one difference between testing in-browser versus running the job in production.
  7. Eseguire il debug usando le metriche:Debug by using metrics:

    • Se non si ottiene alcun output al termine della durata prevista (in base alla query), provare la procedura seguente:If you obtain no output after the expected duration (based on the query), try the following:
      • Esaminare le metriche di monitoraggio nella scheda Monitor. Poiché i valori sono aggregati, le metriche sono posticipate di alcuni minuti.Look at Monitoring Metrics on the Monitor tab. Because the values are aggregated, the metrics are delayed by a few minutes.
        • Se Eventi di input è maggiore di zero, il processo è in grado di leggere i dati di input.If Input Events > 0, the job is able to read input data. Se Eventi di input non è maggiore di zero:If Input Events is not > 0, then:
          • Per vedere se l'origine dati contiene dati validi, verificarla tramite Service Bus Explorer.To see whether the data source has valid data, check it by using Service Bus Explorer. Questa verifica viene eseguita se il processo usa Hub eventi come input.This check applies if the job is using Event Hub as input.
          • Controllare se il formato di serializzazione dei dati e la codifica dei dati sono quelli previsti.Check to see whether the data serialization format and data encoding are as expected.
          • Se il processo usa un Hub eventi, verificare se il corpo del messaggio è Null.If the job is using an Event Hub, check to see whether the body of the message is Null.
        • Se Errori di conversione dati è maggiore di zero, significa che probabilmente:If Data Conversion Errors > 0 and climbing, the following might be true:
          • Il processo potrebbe non riuscire a deserializzare gli eventi.The job might not be able to de-serialize the events.
          • Lo schema degli eventi potrebbe non corrispondere allo schema definito o previsto degli eventi nella query.The event schema might not match the defined or expected schema of the events in the query.
          • I tipi di dati di alcuni dei campi nell'evento potrebbero non corrispondere alle aspettative.The datatypes of some of the fields in the event might not match expectations.
        • Se Errori di runtime è maggiore di zero significa che il processo è in grado di ricevere i dati ma genera errori durante l'elaborazione della query.If Runtime Errors > 0, it means that the job can receive the data but is generating errors while processing the query.
          • Per trovare gli errori, consultare i log di controllo e filtrare lo stato non riuscito.To find the errors, go to the Audit Logs and filter on Failed status.
        • Se InputEvents è maggiore di zero e OutputEvents è uguale a zero, significa che una delle seguenti cose è vera:If InputEvents > 0 and OutputEvents = 0, it means that one of the following is true:
          • L'elaborazione della query non ha prodotto eventi di output.Query processing resulted in zero output events.
          • Il formato degli eventi o dei relativi campi potrebbe non essere valido, di conseguenza l'elaborazione della query non ha prodotto output.Events or its fields might be malformed, resulting in zero output after query processing.
          • Il processo non è riuscito a eseguire il push dei dati al sink di output per motivi di connettività o autenticazione.The job was unable to push data to the output sink for connectivity or authentication reasons.
      • In tutti i casi di errore menzionati sopra, i messaggi di log delle operazioni specificano altri dettagli e la spiegazione della situazione, tranne nei casi in cui la logica della query ha filtrato tutti gli eventi.In all the previously mentioned error cases, operations log messages explain additional details (including what is happening), except in cases where the query logic filtered out all events. Se l'elaborazione di più eventi ha generato errori, Analisi di flusso registra i primi tre messaggi di errore dello stesso tipo entro 10 minuti nei log operazioni.If the processing of multiple events generates errors, Stream Analytics logs the first three error messages of the same type within 10 minutes to Operations logs. Elimina quindi gli altri errori identici con il messaggio "Gli errori si verificano troppo rapidamente e verranno eliminati".It then suppresses additional identical errors with a message that reads “Errors are happening too rapidly, these are being suppressed.”
  8. Eseguire il debug usando i log di controllo e diagnostica:Debug by using audit and diagnostic logs:

  9. Esaminare gli output:Examine the outputs:

    • Quando lo stato del processo è In esecuzione, a seconda della durata prevista nella query è possibile vedere l'output nell'origine dati di sink.When the job status is Running, depending on the duration that's stipulated in the query, you can see the output in the sink data source.
    • Se non si vedono output che procedono verso un tipo di output specifico, reindirizzarli a un tipo di output che sia meno complesso, ad esempio un BLOB di Azure.If you cannot see outputs that are going to a specific output type, redirect them to an output type that is less complex, such as an Azure Blob. Usando Storage Explorer, verificare se è possibile vedere l'output.By using Storage Explorer, check to see whether the output can be seen. Verificare inoltre se le limitazioni dell'output impediscono la ricezione dei dati.Additionally, verify whether throttling limits at the output are preventing data from being received.
  10. Usare l'analisi del flusso di dati con le metriche del diagramma di processo:Use data-flow analysis with job diagram metrics:

  11. Aprire un caso di supporto:Open a support case:

    • Infine, se tutto il resto non dà risultati, aprire un caso di supporto tecnico Microsoft usando l'ID sottoscrizione che contiene il processo.Finally, if all else fails, open a Microsoft support case by using the SubscriptionID that contains your job.

Ottenere aiutoGet help

Per ulteriore assistenza, provare il Forum di Analisi dei flussi di Azure.For further assistance, try our Azure Stream Analytics forum.

Passaggi successiviNext steps