Acquisire eventi tramite Hub eventi di Azure in Archiviazione BLOB di Azure o Azure Data Lake StorageCapture events through Azure Event Hubs in Azure Blob Storage or 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 a scelta, con la possibilità di specificare un intervallo di tempo o di dimensioni.Azure Event Hubs enables you to automatically capture the streaming data in Event Hubs in an Azure Blob storage or Azure Data Lake Storage account of your choice, with the added flexibility of specifying a time or size interval. La configurazione di Acquisizione è rapida, non sono previsti costi amministrativi per l'esecuzione e viene ridimensionata automaticamente con le unità elaborate in Hub eventi.Setting up Capture is fast, there are no administrative costs to run it, and it scales automatically with Event Hubs throughput units. 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.Event Hubs Capture is the easiest way to load streaming data into Azure, and enables you to focus on data processing rather than on data capture.

Acquisizione di Hub eventi consente di elaborare pipeline in tempo reale e basate su batch nello stesso flusso.Event Hubs Capture enables you to process real-time and batch-based pipelines on the same stream. Ciò significa che è possibile compilare soluzioni che si adattano alle esigenze nel corso del tempo.This means you can build solutions that grow with your needs over time. 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.Whether you're building batch-based systems today with an eye towards future real-time processing, or you want to add an efficient cold path to an existing real-time solution, Event Hubs Capture makes working with streaming data easier.

Nota

La funzionalità di acquisizione di hub eventi supporta attualmente solo generazione 1 di Azure Data Lake Store, non di generazione 2.Currently, the Event Hubs Capture feature supports only Gen 1 of Azure Data Lake Store, not Gen 2.

Come funziona Acquisizione di Hub eventiHow Event Hubs Capture works

Hub eventi è un buffer permanente di conservazione nel tempo per l'ingresso della telemetria, simile a un log distribuito.Event Hubs is a time-retention durable buffer for telemetry ingress, similar to a distributed log. La chiave per ridurre il numero di istanze di Hub eventi è il modello di consumer partizionato.The key to scaling in Event Hubs is the partitioned consumer model. Ogni partizione è un segmento di dati indipendente e viene utilizzata in modo indipendente.Each partition is an independent segment of data and is consumed independently. Nel corso del tempo questi dati diventano obsoleti, a seconda del periodo di conservazione configurabile.Over time this data ages off, based on the configurable retention period. Di conseguenza, un determinato hub eventi non sarà mai "troppo pieno".As a result, a given event hub never gets "too full."

Acquisizione di Hub eventi consente di specificare un account di Archiviazione BLOB di Azure e un contenitore oppure un account Azure Data Lake Store da usare per archiviare i dati acquisiti.Event Hubs Capture enables you to specify your own Azure Blob storage account and container, or Azure Data Lake Store account, which are used to store the captured data. Questi account possono trovarsi nella stessa area dell'hub eventi o in un'altra area, aumentando così la flessibilità della funzionalità Acquisizione di Hub eventi.These accounts can be in the same region as your event hub or in another region, adding to the flexibility of the Event Hubs Capture feature.

I dati acquisiti vengono scritti in formato Apache Avro, un formato compatto, rapido, binario che offre strutture di dati avanzate con lo schema inline.Captured data is written in Apache Avro format: a compact, fast, binary format that provides rich data structures with inline schema. Questo formato è largamente usato nell'ecosistema Hadoop, dall'analisi di flusso e da Azure Data Factory.This format is widely used in the Hadoop ecosystem, Stream Analytics, and Azure Data Factory. Altre informazioni sull'uso di Avro sono disponibili più avanti in questo articolo.More information about working with Avro is available later in this article.

Acquisire windowingCapture windowing

Acquisizione di Hub eventi consente di configurare una finestra per controllare l'acquisizione.Event Hubs Capture enables you to set up a window to control capturing. 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.This window is a minimum size and time configuration with a "first wins policy," meaning that the first trigger encountered causes a capture operation. 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.If you have a fifteen-minute, 100 MB capture window and send 1 MB per second, the size window triggers before the time window. 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.Each partition captures independently and writes a completed block blob at the time of capture, named for the time at which the capture interval was encountered. La convenzione di denominazione dell'archiviazione è la seguente:The storage naming convention is as follows:

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

Si noti che i valori di data vengono riempiti con zeri, come illustrato nel nome di file di esempio seguente:Note that the date values are padded with zeroes; an example filename might be:

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

Ridimensionamento alle unità elaborateScaling to throughput units

Il traffico di Hub eventi è controllato dalle unità elaborate.Event Hubs traffic is controlled by throughput units. Una singola unità elaborata consente 1 MB al secondo o 1000 eventi al secondo in ingresso e il doppio in uscita.A single throughput unit allows 1 MB per second or 1000 events per second of ingress and twice that amount of egress. Hub eventi Standard può essere configurato con 1-20 unità elaborate e altre possono essere acquistate con una richiesta di supporto per l'aumento della quota.Standard Event Hubs can be configured with 1-20 throughput units, and you can purchase more with a quota increase support request. L'uso superiore rispetto alle unità elaborate acquistate è limitato.Usage beyond your purchased throughput units is throttled. Acquisizione di Hub eventi copia i dati direttamente dalla memoria di Hub eventi interna, ignorando le quote in uscita di unità elaborate e salvando l'uscita per altri lettori di elaborazione, ad esempio l'analisi di flusso o Spark.Event Hubs Capture copies data directly from the internal Event Hubs storage, bypassing throughput unit egress quotas and saving your egress for other processing readers, such as Stream Analytics or Spark.

Acquisizione di Hub eventi, dopo essere stata configurata, viene eseguita automaticamente quando si invia il primo evento e continua l'esecuzione.Once configured, Event Hubs Capture runs automatically when you send your first event, and continues running. Per comunicare facilmente all'elaborazione downstream che il processo è funzionante, Hub eventi scrive file vuoti quando non sono presenti dati.To make it easier for your downstream processing to know that the process is working, Event Hubs writes empty files when there is no data. Questo processo ottiene una cadenza prevedibile e un marcatore che possono alimentare i processori batch.This process provides a predictable cadence and marker that can feed your batch processors.

Configurazione di Acquisizione di Hub eventiSetting up Event Hubs Capture

È possibile configurare Acquisizione al momento della creazione dell'hub eventi usando il portale di Azure o i modelli di Azure Resource Manager.You can configure Capture at the event hub creation time using the Azure portal, or using Azure Resource Manager templates. Per altre informazioni, vedere gli articoli seguenti:For more information, see the following articles:

Esplorazione dei file acquisiti e dell'uso di AvroExploring the captured files and working with Avro

Acquisizione di Hub eventi crea i file in formato Avro, come specificato nell'intervallo di tempo configurato.Event Hubs Capture creates files in Avro format, as specified on the configured time window. È possibile visualizzare questi file con qualsiasi strumento, ad esempio Azure Storage Explorer.You can view these files in any tool such as Azure Storage Explorer. È possibile scaricare i file in locale per usarli.You can download the files locally to work on them.

I file generati da Acquisizione di Hub eventi hanno lo schema Avro seguente:The files produced by Event Hubs Capture have the following Avro schema:

Schema Avro

Per esplorare facilmente i file di Avro, è possibile usare il file JAR Avro Tools di Apache.An easy way to explore Avro files is by using the Avro Tools jar from Apache. È anche possibile usare Apache Drill per un'esperienza semplice basata su SQL oppure Apache Spark per eseguire complesse elaborazioni distribuite sui dati inseriti.You can also use Apache Drill for a lightweight SQL-driven experience or Apache Spark to perform complex distributed processing on the ingested data.

Usare Apache DrillUse Apache Drill

Apache Drill Apache Drill è un "motore di query SQL open-source per l'esplorazione dei Big Data", in grado di eseguire query su dati strutturati e semistrutturati ovunque si trovino.Apache Drill is an "open-source SQL query engine for Big Data exploration" that can query structured and semi-structured data wherever it is. Il motore può essere eseguito come un nodo autonomo o come un cluster di grandi dimensioni per prestazioni ottimali.The engine can run as a standalone node or as a huge cluster for great performance.

È disponibile un supporto nativo per Archiviazione BLOB di Azure, che rende più semplice eseguire query sui dati in un file Avro, come descritto nella documentazione:A native support to Azure Blob storage is available, which makes it easy to query data in an Avro file, as described in the documentation:

Apache Drill: Plug-in per Archiviazione BLOB di AzureApache Drill: Azure Blob Storage Plugin

Per eseguire con facilità query sui file acquisiti, è possibile creare ed eseguire una macchina virtuale con Apache Drill abilitata tramite un contenitore per l'accesso ad Archiviazione BLOB di Azure:To easily query captured files, you can create and execute a VM with Apache Drill enabled via a container to access Azure Blob storage:

https://github.com/yorek/apache-drill-azure-blob

Un esempio completo end-to-end è disponibile nel repository Flussi scalabili:A full end-to-end sample is available in the Streaming at Scale repository:

Flussi scalabili: Acquisizione di Hub eventiStreaming at Scale: Event Hubs Capture

Usare Apache SparkUse Apache Spark

Apache Spark è un "motore di analisi unificato per l'elaborazione di dati su larga scala".Apache Spark is a "unified analytics engine for large-scale data processing." Supporta diversi linguaggi, tra cui SQL, e può accedere facilmente ad Archiviazione BLOB di Azure.It supports different languages, including SQL, and can easily access Azure Blob storage. Sono disponibili due opzioni per l'esecuzione di Apache Spark in Azure ed entrambe consentono un accesso semplificato ad Archiviazione BLOB di Azure:There are two options to run Apache Spark in Azure, and both provide easy access to Azure Blob storage:

Usare Avro ToolsUse Avro Tools

Avro Tools è disponibile come pacchetto JAR.Avro Tools are available as a jar package. Dopo avere scaricato il file JAR, è possibile visualizzare lo schema di un file Avro specifico eseguendo il comando seguente:After you download the jar file, you can see the schema of a specific Avro file by running the following command:

java -jar avro-tools-1.8.2.jar getschema <name of capture file>

Questo comando restituisceThis command returns

{

    "type":"record",
    "name":"EventData",
    "namespace":"Microsoft.ServiceBus.Messaging",
    "fields":[
                 {"name":"SequenceNumber","type":"long"},
                 {"name":"Offset","type":"string"},
                 {"name":"EnqueuedTimeUtc","type":"string"},
                 {"name":"SystemProperties","type":{"type":"map","values":["long","double","string","bytes"]}},
                 {"name":"Properties","type":{"type":"map","values":["long","double","string","bytes"]}},
                 {"name":"Body","type":["null","bytes"]}
             ]
}

È anche possibile usare Avro Tools per convertire il file in formato JSON ed eseguire altre operazioni di elaborazione.You can also use Avro Tools to convert the file to JSON format and perform other processing.

Per eseguire operazioni di elaborazione più avanzate, scaricare e installare Avro per la propria piattaforma.To perform more advanced processing, download and install Avro for your choice of platform. Al momento della stesura di questo articolo, sono disponibili implementazioni per C, C++, C#, Java, NodeJS, Perl, PHP, Python e Ruby.At the time of this writing, there are implementations available for C, C++, C#, Java, NodeJS, Perl, PHP, Python, and Ruby.

In Apache Avro sono disponibili guide introduttive complete per Java e Python.Apache Avro has complete Getting Started guides for Java and Python. È anche possibile leggere l'articolo Acquisizione di Hub eventi di Azure.You can also read the Getting started with Event Hubs Capture article.

Come viene addebitato l'uso di Acquisizione di Hub eventiHow Event Hubs Capture is charged

L'uso di Acquisizione di Hub eventi viene registrato in modo simile a quello delle unità elaborate, come tariffa oraria.Event Hubs Capture is metered similarly to throughput units: as an hourly charge. L'addebito è direttamente proporzionale al numero di unità elaborate acquistate per lo spazio dei nomi.The charge is directly proportional to the number of throughput units purchased for the namespace. Quando le unità elaborate aumentano o diminuiscono, anche Acquisizione di Hub eventi aumenta o diminuisce per offrire prestazioni corrispondenti.As throughput units are increased and decreased, Event Hubs Capture meters increase and decrease to provide matching performance. Le misurazioni vengono eseguite in parallelo.The meters occur in tandem. Per i dettagli sui prezzi, vedere Prezzi di Hub eventi.For pricing details, see Event Hubs pricing.

Integrazione con Griglia di eventiIntegration with Event Grid

È possibile creare una sottoscrizione di Griglia di eventi di Azure con uno spazio dei nomi di Hub eventi come origine.You can create an Azure Event Grid subscription with an Event Hubs namespace as its source. 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 i dati di Hub eventi acquisiti ed eseguirne la migrazione a SQL Data Warehouse con Griglia di eventi e Funzioni di Azure.The following tutorial shows you how to create an Event Grid subscription with an event hub as a source and an Azure Functions app as a sink: Process and migrate captured Event Hubs data to a SQL Data Warehouse using Event Grid and Azure Functions.

Passaggi successiviNext steps

Acquisizione di Hub eventi rappresenta il modo più facile per ottenere i dati in Azure.Event Hubs Capture is the easiest way to get data into 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.Using Azure Data Lake, Azure Data Factory, and Azure HDInsight, you can perform batch processing and other analytics using familiar tools and platforms of your choosing, at any scale you need.

Per ulteriori informazioni su Hub eventi visitare i collegamenti seguenti:You can learn more about Event Hubs by visiting the following links: