Eseguire il debug di Analisi di flusso di Azure con i ricevitori dell'hub eventiDebug Azure Stream Analytics with event hub receivers

È possibile usare gli hub eventi di Analisi di flusso di Azure per inserire o estrarre dati da un processo.You can use Azure Event Hubs in Azure Stream Analytics to ingest or output data from a job. Una procedura consigliata per l'utilizzo dell'hub eventi è usare più gruppi di consumer in modo da garantire la scalabilità del processo.A best practice for using Event Hubs is to use multiple consumer groups, to ensure job scalability. Uno dei motivi è che il numero di lettori del processo di Analisi di flusso per uno specifico input influisce sul numero dei lettori di un singolo gruppo di consumer.One reason is that the number of readers in the Stream Analytics job for a specific input affects the number of readers in a single consumer group. Il numero preciso di ricevitori si basa sui dettagli di implementazione interna per la logica della topologia con scalabilità orizzontale.The precise number of receivers is based on internal implementation details for the scale-out topology logic. Il numero di ricevitori non viene esposto esternamente.The number of receivers is not exposed externally. Il numero di lettori può cambiare al momento di inizio del processo o durante gli aggiornamenti del processo.The number of readers can change either at the job start time or during job upgrades.

Nota

Quando il numero di lettori cambia durante un aggiornamento del processo, vengono scritti avvisi temporanei nei log di controllo.When the number of readers changes during a job upgrade, transient warnings are written to audit logs. I processi di Analisi di flusso vengono ripristinati automaticamente da questi problemi temporanei.Stream Analytics jobs automatically recover from these transient issues.

Il numero di lettori per partizione supera il limite di cinque hub eventiNumber of readers per partition exceeds Event Hubs limit of five

Gli scenari in cui il numero di lettori per ogni partizione supera il limite di cinque hub eventi comprendono i seguenti:Scenarios in which the number of readers per partition exceeds the Event Hubs limit of five include the following:

  • Più istruzioni SELECT: se si usano più istruzioni SELECT che fanno riferimento allo stesso input dell'hub eventi, ogni istruzione SELECT fa sì che venga creato un nuovo ricevitore.Multiple SELECT statements: If you use multiple SELECT statements that refer to same event hub input, each SELECT statement causes a new receiver to be created.
  • UNION: quando si usa UNION, è possibile avere più input che si riferiscono allo stesso hub eventi e gruppo di consumer.UNION: When you use a UNION, it's possible to have multiple inputs that refer to the same event hub and consumer group.
  • SELF JOIN: quando si usa un'operazione SELF JOIN è possibile fare riferimento allo stesso hub eventi più volte.SELF JOIN: When you use a SELF JOIN operation, it's possible to refer to the same event hub multiple times.

SoluzioneSolution

Le procedure consigliate seguenti possono aiutare a mitigare gli scenari in cui il numero di lettori per ogni partizione supera il limite di cinque hub eventi.The following best practices can help mitigate scenarios in which the number of readers per partition exceeds the Event Hubs limit of five.

Suddividere la query in più passaggi usando una clausola WITHSplit your query into multiple steps by using a WITH clause

La clausola WITH specifica un set di risultati con nome temporaneo a cui è possibile fare riferimento mediante una clausola FROM nella query.The WITH clause specifies a temporary named result set that can be referenced by a FROM clause in the query. La clausola WITH viene definita nell'ambito di esecuzione di una singola istruzione SELECT.You define the WITH clause in the execution scope of a single SELECT statement.

Ad esempio, invece di questa query:For example, instead of this query:

SELECT foo 
INTO output1
FROM inputEventHub

SELECT bar
INTO output2
FROM inputEventHub 
…

Usare questa query:Use this query:

WITH input (
   SELECT * FROM inputEventHub
) as data

SELECT foo
INTO output1
FROM data

SELECT bar
INTO output2
FROM data
…

Assicurarsi che gli input siano associati a gruppi di consumer diversiEnsure that inputs bind to different consumer groups

Per le query in cui tre o più input sono connessi allo stesso gruppo di consumer di hub eventi, creare gruppi di consumer separati.For queries in which three or more inputs are connected to the same Event Hubs consumer group, create separate consumer groups. Ciò richiede la creazione di input di Analisi di flusso aggiuntivi.This requires the creation of additional Stream Analytics inputs.

Ottenere aiutoGet help

Per ottenere assistenza aggiuntiva, provare ad accedere al forum di Analisi di flusso di Azure.For additional assistance, try our Azure Stream Analytics forum.

Passaggi successiviNext steps