Acquisire eventi tramite Hub eventi di Azure in Archiviazione BLOB di Azure o Azure Data Lake Storage

Hub eventi di Azure consente di acquisire automaticamente i dati in streaming di Hub eventi in un account di Archiviazione BLOB di Azure o Azure Data Lake Storage Gen 1 o Gen 2 a scelta, con la possibilità di specificare un intervallo di tempo o di dimensioni. La configurazione dell'acquisizione è veloce, non sono previsti costi amministrativi per l'esecuzione e viene ridimensionata automaticamente con le unità elaborate di Hub eventi nel livello standard o le unità di elaborazione nel livello Premium. Acquisizione di Hub eventi è il modo più semplice per caricare i dati in streaming in Azure e consente di concentrarsi sull'elaborazione dei dati anziché sull'acquisizione.

Immagine che mostra l'acquisizione di dati di Hub eventi in Archiviazione di Azure o in Azure Data Lake Storage

Nota

La configurazione di Acquisizione di Hub eventi per l'uso di Azure Data Lake Storage Gen 2 corrisponde alla configurazione per l'uso di un'istanza di Archiviazione BLOB di Azure. Per informazioni dettagliate, vedere Configurare Acquisizione di Hub eventi.

Acquisizione di Hub eventi consente di elaborare pipeline in tempo reale e basate su batch nello stesso flusso. Ciò significa che è possibile compilare soluzioni che si adattano alle esigenze nel corso del tempo. Sia che si debbano compilare oggi sistemi basati su batch con lo sguardo rivolto alla futura elaborazione in tempo reale o che si voglia aggiungere un percorso a freddo efficiente a una soluzione in tempo reale esistente, Acquisizione di Hub eventi semplifica l'uso dei dati in streaming.

Importante

  • L'account di archiviazione di destinazione (Archiviazione di Azure o Azure Data Lake Archiviazione) deve trovarsi nella stessa sottoscrizione dell'hub eventi quando non si usa l'identità gestita per l'autenticazione.
  • Hub eventi non supporta l'acquisizione di eventi in un account di archiviazione Premium.
  • L'acquisizione di Hub eventi supporta qualsiasi account di archiviazione di Azure non Premium con supporto per i BLOB in blocchi.

Come funziona Acquisizione di Hub eventi

Hub eventi è un buffer durevole per la conservazione basata sul tempo per l'ingresso dei dati di telemetria, simile a un log distribuito. La chiave per ridurre il numero di istanze di Hub eventi è il modello di consumer partizionato. Ogni partizione è un segmento indipendente di dati e viene utilizzata in modo indipendente. Nel corso del tempo questi dati diventano obsoleti, a seconda del periodo di conservazione configurabile. Di conseguenza, un determinato hub eventi non sarà mai "troppo pieno".

Acquisizione di Hub eventi consente di specificare un account di Archiviazione BLOB di Azure e un contenitore oppure un account Azure Data Lake Storage da usare per archiviare i dati acquisiti. Questi account possono trovarsi nella stessa area dell'hub eventi o in un'altra area, contribuendo alla flessibilità della funzionalità Acquisizione di Hub eventi.

I dati acquisiti vengono scritti in formato Apache Avro, un formato compatto, rapido, binario che offre strutture di dati avanzate con lo schema inline. Questo formato è largamente usato nell'ecosistema Hadoop, dall'analisi di flusso e da Azure Data Factory. Altre informazioni sull'uso di Avro sono disponibili più avanti in questo articolo.

Nota

Quando non si usa alcun editor di codice nella portale di Azure, è possibile acquisire dati di streaming in Hub eventi in un account Azure Data Lake Archiviazione Gen2 in formato Parquet. Per altre informazioni, vedere Procedura: Acquisire dati da Hub eventi in formato Parquet ed Esercitazione: Acquisire i dati di Hub eventi in formato Parquet e analizzare con Azure Synapse Analytics.

Acquisire windowing

Acquisizione di Hub eventi consente di configurare una finestra per controllare l'acquisizione. Questa finestra è una dimensione minima e una configurazione a tempo con un criterio basato sulla precedenza, ovvero il primo trigger rilevato avvia un'operazione di acquisizione. Se si ha una finestra di acquisizione di quindici minuti/100 MB e si invia 1 MB al secondo, la finestra della dimensione viene attivata prima della finestra temporale. Ogni partizione acquisisce in modo indipendente e scrive un BLOB in blocchi completo al momento dell'acquisizione, denominato in base all'ora in cui è stato rilevato l'intervallo di acquisizione. La convenzione di denominazione per l'archiviazione è la seguente:

{Namespace}/{EventHub}/{PartitionId}/{Year}/{Month}/{Day}/{Hour}/{Minute}/{Second}

I valori di data vengono riempiti con zeri, come illustrato nel nome di file di esempio seguente:

https://mystorageaccount.blob.core.windows.net/mycontainer/mynamespace/myeventhub/0/2017/12/08/03/03/17.avro

Se il BLOB di archiviazione di Azure non è temporaneamente disponibile, l'acquisizione di Hub eventi manterrà i dati per il periodo di conservazione dei dati configurato nell'hub eventi e riempie nuovamente i dati dopo che l'account di archiviazione sarà nuovamente disponibile.

Ridimensionamento di unità elaborate o unità di elaborazione

Nel livello standard di Hub eventi, il traffico è controllato dalle unità elaborate e negli Hub eventi di livello Premium viene controllato dalle unità di elaborazione. Acquisizione di Hub eventi copia i dati direttamente dall'archiviazione interna di Hub eventi, ignorando le quote di unità elaborate o unità di elaborazione in uscita e salvando i dati in uscita per altri lettori di elaborazione, ad esempio Analisi di flusso o Spark.

Acquisizione di Hub eventi, dopo essere stata configurata, viene eseguita automaticamente quando si invia il primo evento e continua l'esecuzione. Per permettere all'elaborazione downstream di sapere che il processo funziona, Hub eventi scrive file vuoti quando non sono presenti dati. Questo processo ottiene una cadenza prevedibile e un marcatore che possono alimentare i processori batch.

Configurazione di Acquisizione di Hub eventi

È possibile configurare Acquisizione al momento della creazione dell'hub eventi usando il portale di Azure o i modelli di Azure Resource Manager. Per altre informazioni, vedere gli articoli seguenti:

Nota

Se si abilita la funzionalità Di acquisizione per un hub eventi esistente, la funzionalità acquisisce gli eventi che arrivano all'hub eventi dopo l'attivazione della funzionalità. Non acquisisce gli eventi esistenti nell'hub eventi prima dell'attivazione della funzionalità.

Come viene addebitato l'uso di Acquisizione di Hub eventi

La funzionalità di acquisizione è inclusa nel livello Premium, quindi non sono previsti costi aggiuntivi per tale livello. Per il livello Standard, la funzionalità viene addebitata mensilmente e l'addebito è direttamente proporzionale al numero di unità elaborate o unità di elaborazione acquistate per lo spazio dei nomi. Man mano che le unità elaborate o le unità di elaborazione vengono aumentate e ridotte, i contatori di acquisizione di Hub eventi aumentano e diminuiscono per offrire prestazioni corrispondenti. Le misurazioni vengono eseguite in parallelo. Per i dettagli sui prezzi, vedere Prezzi di Hub eventi.

L'acquisizione non utilizza la quota in uscita perché viene fatturata separatamente.

Integrazione con Griglia di eventi

È possibile creare una sottoscrizione di Griglia di eventi di Azure con uno spazio dei nomi di Hub eventi come origine. L'esercitazione seguente illustra come creare una sottoscrizione di Griglia di eventi con un hub eventi come origine e un'app Funzioni di Azure come sink: Elaborare ed eseguire la migrazione dei dati acquisiti di Hub eventi a un'istanza di Azure Synapse Analytics usando Griglia di eventi e Funzioni di Azure.

Esplorare i file acquisiti

Per informazioni su come esplorare i file Avro acquisiti, vedere Esplorare i file Avro acquisiti.

Archiviazione di Azure account come destinazione

Per abilitare l'acquisizione in un hub eventi con Archiviazione di Azure come destinazione di acquisizione o aggiornare le proprietà in un hub eventi con Archiviazione di Azure come destinazione di acquisizione, l'utente o l'entità servizio devono avere un ruolo controllo degli accessi in base al ruolo con le autorizzazioni seguenti assegnate nell'ambito dell'account di archiviazione. 

Microsoft.Storage/storageAccounts/blobServices/containers/write
Microsoft.Storage/storageAccounts/blobServices/containers/blobs/write

 

Senza l'autorizzazione precedente, verrà visualizzato l'errore seguente:

Generic: Linked access check failed for capture storage destination <StorageAccount Arm Id>.
User or the application with object id <Object Id> making the request doesn't have the required data plane write permissions.
Please enable Microsoft.Storage/storageAccounts/blobServices/containers/write, Microsoft.Storage/storageAccounts/blobServices/containers/blobs/write permission(s) on above resource for the user or the application and retry.
TrackingId:<ID>, SystemTracker:mynamespace.servicebus.windows.net:myhub, Timestamp:<TimeStamp>

Il Archiviazione Proprietario dati BLOB è un ruolo predefinito con autorizzazioni precedenti, quindi aggiungere l'account utente o l'entità servizio a questo ruolo.  

Passaggi successivi

Acquisizione di Hub eventi rappresenta il modo più facile per ottenere i dati in Azure. Con Azure Data Lake, Azure Data Factory e Azure HDInsight, è possibile eseguire l'elaborazione batch e altre analisi usando strumenti e piattaforme familiari a scelta con la scalabilità necessaria.

Informazioni su come abilitare questa funzionalità usando il modello di portale di Azure e di Azure Resource Manager: