Condividi tramite


Output di Hub eventi da Analisi di flusso di Azure

Il servizio Hub eventi di Azure è un ingestor di eventi publish-subscribe altamente scalabile. Può raccogliere milioni di eventi al secondo. Un uso di un hub eventi come output è quando l'output di un processo di Analisi di flusso diventa l'input di un altro processo di streaming. Per informazioni sulle dimensioni massime dei messaggi e sull'ottimizzazione delle dimensioni batch, vedere la sezione dimensioni batch di output .

Configurazione di output

La tabella seguente contiene i parametri necessari per configurare i flussi di dati dagli hub eventi come output.

Nome della proprietà Descrizione
Alias di output Nome descrittivo usato nelle query per indirizzare l'output della query a questo hub eventi.
Namespace dell'Hub eventi Contenitore per un set di entità di messaggistica. Quando è stato creato un nuovo hub eventi, è stato creato anche uno spazio dei nomi dell'hub eventi.
Nome dell'hub eventi Nome dell'output dell'hub eventi.
Nome dei criteri dell'hub eventi Criteri di accesso condiviso, che è possibile creare nella scheda Configura dell'hub eventi. Ogni criterio di accesso condiviso ha un nome, autorizzazioni impostate e chiavi di accesso.
Chiave dei criteri dell'hub eventi Chiave di accesso condiviso usata per autenticare l'accesso allo spazio dei nomi dell'hub eventi.
Colonna chiave di partizione Optional. Colonna contenente la chiave di partizione per l'output dell'hub eventi.
Formato di serializzazione degli eventi Formato di serializzazione per i dati di output. Sono supportati JSON, CSV e Avro.
Codifica Per CSV e JSON, UTF-8 è l'unico formato di codifica supportato in questo momento.
Delimitatore Applicabile solo per la serializzazione CSV. Analisi di flusso supporta diversi delimitatori comuni per la serializzazione dei dati in formato CSV. I valori supportati sono virgole, punto e virgola, spazio, tabulazioni e barre verticali.
Formato Applicabile solo per la serializzazione JSON. La riga separata specifica che l'output viene formattato con ogni oggetto JSON separato da una nuova riga. Se si seleziona Linea separata, il codice JSON legge un oggetto alla volta. L'intero contenuto da solo non sarebbe un json valido. Matrice specifica che l'output viene formattato come matrice di oggetti JSON.
Colonne delle proprietà Optional. Colonne delimitate da virgole che devono essere associate come proprietà utente del messaggio in uscita anziché come payload. Altre informazioni su questa funzionalità sono disponibili nella sezione Proprietà dei metadati personalizzate per l'output.

Partitioning

Il partizionamento varia a seconda dell'allineamento della partizione. Quando la chiave di partizione per l'output dell'hub eventi è ugualmente allineata al passaggio di query upstream (precedente), il numero di writer corrisponde al numero di partizioni nell'output dell'hub eventi. Ogni writer usa la classe EventHubSender per inviare eventi alla partizione specifica. Quando la chiave di partizione per l'output dell'hub eventi non è allineata al passaggio di query upstream (precedente), il numero di writer corrisponde al numero di partizioni in tale passaggio precedente. Ogni writer usa la classe SendBatchAsync in EventHubClient per inviare eventi a tutte le partizioni di output.

Dimensione del batch di output

La dimensione massima del messaggio è 256 KB o 1 MB per messaggio. Per altre informazioni, vedere Limiti di Hub eventi. Quando il partizionamento di input/output non è allineato, ogni evento viene compresso singolarmente in EventData e inviato in un batch fino alla dimensione massima del messaggio. Ciò si verifica anche se vengono usate proprietà di metadati personalizzate . Quando il partizionamento di input/output è allineato, più eventi vengono compressi in una singola EventData istanza, fino alla dimensione massima del messaggio e inviati.

Proprietà dei metadati personalizzate per l'output

È possibile collegare colonne di query come proprietà utente ai messaggi in uscita. Queste colonne non vengono inserite nel payload. Le proprietà sono presenti sotto forma di dizionario nel messaggio di output. La chiave è il nome della colonna e il valore è il valore della colonna nel dizionario delle proprietà. Tutti i tipi di dati di Analisi di flusso sono supportati, ad eccezione di Record e Array.

Nell'esempio seguente i campi DeviceId e DeviceStatus vengono aggiunti ai metadati.

  1. Usare la query seguente:

    select *, DeviceId, DeviceStatus from iotHubInput
    
  2. Configurare DeviceId,DeviceStatus come colonne delle proprietà nell'output.

    Colonne delle proprietà

L'immagine seguente è costituita dalle proprietà del messaggio di output previste esaminate in un hub eventi tramite Service Bus Explorer.

Proprietà personalizzate dell'evento

Esattamente una volta consegna

Esattamente una volta che il recapito è supportato nell'output di Hub eventi per impostazione predefinita. Indipendentemente dall'input, Analisi di flusso garantisce alcuna perdita di dati o nessun duplicato in un output di Hub eventi, nei riavvii avviati dall'utente dall'ora dell'ultimo output, impedendo la produzione di duplicati. Ciò semplifica notevolmente la pipeline di streaming senza dover monitorare, implementare e risolvere i problemi relativi alla logica di deduplicazione.

Passaggi successivi