Gebeurtenissen vastleggen via Azure Event Hubs in Azure Blob Storage of Azure Data Lake Storage

Met Azure Event Hubs kunt u de streaminggegevens in Event Hubs automatisch vastleggen in een Azure Blob Storage - of Azure Data Lake Storage Gen 1- of Gen 2-account van uw keuze, met de extra flexibiliteit om een tijd- of grootteinterval op te geven. Het instellen van Capture is snel, er zijn geen beheerkosten om deze uit te voeren en het schaalt automatisch met Event Hubs-doorvoereenheden in de standard-laag of verwerkingseenheden in de Premium-laag. Event Hubs Capture is de eenvoudigste manier om streaminggegevens in Azure te laden en u kunt zich richten op gegevensverwerking in plaats van op gegevensopname.

Afbeelding van het vastleggen van Event Hubs-gegevens in Azure Storage of Azure Data Lake Storage

Notitie

Het configureren van Event Hubs Capture voor het gebruik van Azure Data Lake Storage Gen 2 is hetzelfde als het configureren ervan voor het gebruik van een Azure Blob Storage. Zie Event Hubs Capture configureren voor meer informatie.

Met Event Hubs Capture kunt u realtime pijplijnen en pijplijnen op basis van batches in dezelfde stroom verwerken. Dit betekent dat u in de loop van de tijd oplossingen kunt bouwen die groeien met uw behoeften. Of u nu op batch gebaseerde systemen bouwt met een oog op toekomstige realtime verwerking, of u wilt een efficiënt koud pad toevoegen aan een bestaande realtime-oplossing, Event Hubs Capture maakt het werken met streaminggegevens eenvoudiger.

Belangrijk

  • Het doelopslagaccount (Azure Storage of Azure Data Lake Storage) moet zich in hetzelfde abonnement bevinden als de Event Hub wanneer er geen beheerde identiteit wordt gebruikt voor verificatie.
  • Event Hubs biedt geen ondersteuning voor het vastleggen van gebeurtenissen in een Premium-opslagaccount.
  • Event Hubs Capture ondersteunt elk niet-premium Azure-opslagaccount met ondersteuning voor blok-blobs.

Hoe Event Hubs Capture werkt

Event Hubs is een duurzame buffer voor tijdretentie voor inkomend telemetrie, vergelijkbaar met een gedistribueerd logboek. De sleutel voor het schalen in Event Hubs is het gepartitioneerde consumentenmodel. Elke partitie is een onafhankelijk segment van gegevens en wordt onafhankelijk gebruikt. Na verloop van tijd worden deze gegevens ouder, op basis van de configureerbare bewaarperiode. Als gevolg hiervan krijgt een bepaalde Event Hub nooit 'te vol'.

Met Event Hubs Capture kunt u uw eigen Azure Blob Storage-account en -container of Azure Data Lake Storage-account opgeven, dat wordt gebruikt om de vastgelegde gegevens op te slaan. Deze accounts kunnen zich in dezelfde regio bevinden als uw Event Hub of in een andere regio, wat kan worden toegevoegd aan de flexibiliteit van de Event Hubs Capture-functie.

Vastgelegde gegevens worden geschreven in Apache Avro-indeling : een compacte, snelle, binaire indeling die uitgebreide gegevensstructuren biedt met een inlineschema. Deze indeling wordt veel gebruikt in het Hadoop-ecosysteem, Stream Analytics en Azure Data Factory. Verderop in dit artikel vindt u meer informatie over het werken met Avro.

Notitie

Wanneer u geen code-editor in Azure Portal gebruikt, kunt u streaminggegevens vastleggen in Event Hubs in een Azure Data Lake Storage Gen2-account in de Parquet-indeling . Zie Procedure voor meer informatie: gegevens van Event Hubs vastleggen in Parquet-indeling en zelfstudie: Event Hubs-gegevens vastleggen in Parquet-indeling en analyseren met Azure Synapse Analytics.

Vensters vastleggen

Met Event Hubs Capture kunt u een venster instellen om het vastleggen te beheren. Dit venster is een minimale grootte en tijdconfiguratie met een 'first wins-beleid', wat betekent dat de eerste trigger een opnamebewerking veroorzaakt. Als u een opnamevenster van 100 MB hebt en 1 MB per seconde verzendt, wordt het groottevenster geactiveerd vóór het tijdvenster. Elke partitie legt onafhankelijk vast en schrijft een voltooide blok-blob op het moment van vastleggen, met de naam voor het tijdstip waarop het opname-interval is aangetroffen. De naamconventie voor opslag is als volgt:

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

De datumwaarden worden opgevuld met nullen; een voorbeeld van de bestandsnaam kan zijn:

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

Als uw Azure Storage-blob tijdelijk niet beschikbaar is, behoudt Event Hubs Capture uw gegevens voor de gegevensretentieperiode die is geconfigureerd op uw Event Hub en vult u de gegevens weer zodra uw opslagaccount weer beschikbaar is.

Doorvoereenheden of verwerkingseenheden schalen

In de standard-laag van Event Hubs wordt het verkeer beheerd door doorvoereenheden en in de Event Hubs van de Premium-laag wordt het beheerd door verwerkingseenheden. Event Hubs Capture kopieert gegevens rechtstreeks vanuit de interne Event Hubs-opslag, slaat de quota voor uitgaande doorvoereenheden of verwerkingseenheden over en slaat uw uitgangspunten op voor andere verwerkingslezers, zoals Stream Analytics of Spark.

Zodra de gebeurtenis is geconfigureerd, wordt Event Hubs Capture automatisch uitgevoerd wanneer u uw eerste gebeurtenis verzendt en blijft werken. Om het voor uw downstreamverwerking gemakkelijker te maken om te weten dat het proces werkt, schrijft Event Hubs lege bestanden wanneer er geen gegevens zijn. Dit proces biedt een voorspelbare frequentie en markering die uw batchprocessors kan voeden.

Event Hubs Capture instellen

U kunt Capture configureren tijdens het maken van de Event Hub met behulp van Azure Portal of met behulp van Azure Resource Manager-sjablonen. Raadpleeg voor meer informatie de volgende artikelen:

Notitie

Als u de functie Capture inschakelt voor een bestaande Event Hub, worden gebeurtenissen vastgelegd die binnenkomen bij de Event Hub nadat de functie is ingeschakeld. Er worden geen gebeurtenissen vastgelegd die aanwezig waren in de Event Hub voordat de functie werd ingeschakeld.

Hoe Event Hubs Capture wordt in rekening gebracht

De opnamefunctie is opgenomen in de Premium-laag, zodat er geen extra kosten in rekening worden gebracht voor die laag. Voor de Standard-laag wordt de functie maandelijks in rekening gebracht en de kosten zijn rechtstreeks evenredig met het aantal doorvoereenheden of verwerkingseenheden dat is gekocht voor de naamruimte. Naarmate doorvoereenheden of verwerkingseenheden worden verhoogd en afgenomen, nemen Event Hubs Capture-meters toe en verlagen om overeenkomende prestaties te bieden. De meters komen in combinatie voor. Zie prijzen voor Event Hubs voor meer informatie.

Capture verbruikt geen uitgaand quotum, omdat het afzonderlijk wordt gefactureerd.

Integratie met Event Grid

U kunt een Azure Event Grid-abonnement maken met een Event Hubs-naamruimte als bron. In de volgende zelfstudie ziet u hoe u een Event Grid-abonnement maakt met een Event Hub als bron en een Azure Functions-app als sink: Vastgelegde Event Hubs-gegevens verwerken en migreren naar een Azure Synapse Analytics met behulp van Event Grid en Azure Functions.

Vastgelegde bestanden verkennen

Zie Vastgelegde Avro-bestanden verkennen voor meer informatie over het verkennen van vastgelegde Avro-bestanden.

Azure Storage-account als bestemming

Als u vastleggen wilt inschakelen op een Event Hub met Azure Storage als de capture-bestemming of eigenschappen wilt bijwerken op een Event Hub met Azure Storage als de capture-bestemming, moet de gebruiker of service-principal een RBAC-rol hebben met de volgende machtigingen die zijn toegewezen aan het bereik van het opslagaccount. 

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

 

Zonder bovenstaande machtiging ziet u de onderstaande fout:

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>

De eigenaar van de opslagblobgegevens is een ingebouwde rol met bovenstaande machtigingen, dus voeg het gebruikersaccount of de service-principal toe aan deze rol.  

Volgende stappen

Event Hubs Capture is de eenvoudigste manier om gegevens in Azure op te halen. Met behulp van Azure Data Lake, Azure Data Factory en Azure HDInsight kunt u batchverwerking en andere analyses uitvoeren met behulp van vertrouwde hulpprogramma's en platforms van uw keuze, op elke gewenste schaal.

Meer informatie over het inschakelen van deze functie met behulp van de Azure-portal en de Azure Resource Manager-sjabloon: