Condividi tramite


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 il flusso dei dati tramite Hub eventi nell'archiviazione BLOB di Azure o nell'account Azure Data Lake Storage Gen 1 o Gen 2 preferito. Offre inoltre la flessibilità necessaria per specificare un intervallo di tempo o di dimensioni. L'abilitazione o la configurazione della funzionalità di acquisizione di Hub eventi è rapida. Non sono previsti costi amministrativi per l'esecuzione e viene ridimensionata automaticamente con le unità elaborate di Hub eventi nel livello standard o con 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 Storage) 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 nel portale di Azure, è possibile acquisire i dati di streaming in Hub eventi in un account Azure Data Lake Storage Gen2 nel 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 analizzarli 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 è temporaneamente non disponibile, Acquisizione di Hub eventi mantiene i dati per il periodo di conservazione configurato nell'hub eventi e compila di nuovo i dati quando l'account di archiviazione sarà nuovamente disponibile.

Ridimensionamento di unità elaborate o unità di elaborazione

Nel livello standard di Hub eventi le unità elaborate controllano il traffico, mentre nell'hub eventi di livello Premium le unità di elaborazione controllano il traffico. Acquisizione di Hub eventi copia i dati direttamente dallo spazio di archiviazione interno di Hub eventi, ignorando le quote in uscita di unità elaborate e unità di elaborazione e salvando l'uscita per altri lettori di elaborazione, come 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à Acquisizione per un hub eventi esistente, la funzionalità acquisisce gli eventi che arrivano all'hub eventi dopo l'attivazione della funzionalità. Non vengono acquisiti 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. Quando le unità elaborate o le unità di elaborazione aumentano o diminuiscono, anche i contatori di Acquisizione di Hub eventi aumentano o diminuiscono per offrire prestazioni corrispondenti. Le misurazioni vengono eseguite in parallelo. Per i dettagli sui prezzi, vedere Prezzi di Hub eventi.

Acquisizione non usa 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 di Funzioni di Azure come sink: Elaborare i dati di Hub eventi acquisiti ed eseguirne la migrazione ad Azure Synapse Analytics con 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.

Account di Archiviazione di Azure 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 di 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 questa autorizzazione, viene 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 proprietario dei dati dei BLOB di archiviazione è un ruolo predefinito con le autorizzazioni precedenti, quindi aggiungere l'account utente o l'entità servizio a questo ruolo.  

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: