Samla in händelser via Azure Event Hubs i Azure Blob Storage eller Azure Data Lake Storage

Med Azure Event Hubs kan du automatiskt samla in strömmande data i Event Hubs i ett Azure Blob Storage - eller Azure Data Lake Storage Gen 1- eller Gen 2-konto , med den extra flexibiliteten att ange ett tids- eller storleksintervall. Det går snabbt att konfigurera Avbildning, det finns inga administrativa kostnader för att köra den och den skalas automatiskt med Event Hubs-dataflödesenheter på standardnivån eller bearbetningsenheterna på premiumnivån. Event Hubs Capture är det enklaste sättet att läsa in strömmande data till Azure och gör att du kan fokusera på databearbetning i stället för på datainsamling.

Bild som visar insamling av Event Hubs-data i Azure Storage eller Azure Data Lake Storage

Kommentar

Att konfigurera Event Hubs Capture för att använda Azure Data Lake Storage Gen 2 är detsamma som att konfigurera den för att använda en Azure Blob Storage. Mer information finns i Konfigurera Event Hubs Capture.

Med Event Hubs Capture kan du bearbeta realtids- och batchbaserade pipelines på samma ström. Det innebär att du kan skapa lösningar som växer med dina behov över tid. Oavsett om du skapar batchbaserade system i dag med sikte på framtida realtidsbearbetning, eller om du vill lägga till en effektiv kall sökväg till en befintlig realtidslösning, gör Event Hubs Capture det enklare att arbeta med strömmande data.

Viktigt!

  • Mållagringskontot (Azure Storage eller Azure Data Lake Storage) måste finnas i samma prenumeration som händelsehubben när den inte använder hanterad identitet för autentisering.
  • Event Hubs stöder inte insamling av händelser i ett Premium Storage-konto.
  • Event Hubs Capture stöder alla azure-lagringskonton som inte är premium med stöd för blockblobar.

Så här fungerar Event Hubs Capture

Event Hubs är en tidsbevarande varaktig buffert för telemetriingress, ungefär som en distribuerad logg. Nyckeln till skalning i Event Hubs är den partitionerade konsumentmodellen. Varje partition är ett oberoende segment av data och används oberoende av varandra. Med tiden åldras dessa data, baserat på den konfigurerbara kvarhållningsperioden. Därför blir en viss händelsehubb aldrig "för full".

Med Event Hubs Capture kan du ange ditt eget Azure Blob Storage-konto och -container, eller Azure Data Lake Storage-konto, som används för att lagra insamlade data. Dessa konton kan finnas i samma region som din händelsehubb eller i en annan region, vilket ökar flexibiliteten för funktionen Event Hubs Capture.

Insamlade data skrivs i Apache Avro-format : ett kompakt, snabbt binärt format som ger omfattande datastrukturer med infogat schema. Det här formatet används ofta i Hadoop-ekosystemet, Stream Analytics och Azure Data Factory. Mer information om hur du arbetar med Avro finns senare i den här artikeln.

Kommentar

När du inte använder någon kodredigerare i Azure-portalen kan du samla in strömmande data i Event Hubs i ett Azure Data Lake Storage Gen2-konto i Parquet-format . Mer information finns i Så här samlar du in data från Event Hubs i Parquet-format och Självstudie: samla in Event Hubs-data i Parquet-format och analysera med Azure Synapse Analytics.

Avbilda fönster

Med Event Hubs Capture kan du konfigurera ett fönster för att styra insamlingen. Det här fönstret är en minsta storlek och tidskonfiguration med en "first wins-princip", vilket innebär att den första utlösaren som påträffades orsakar en avbildningsåtgärd. Om du har ett avbildningsfönster på 15 minuter och 100 MB och skickar 1 MB per sekund utlöses storleksfönstret före tidsfönstret. Varje partition samlar in oberoende och skriver en slutförd blockblob vid tidpunkten för avbildningen, med namnet för den tidpunkt då insamlingsintervallet påträffades. Namngivningskonventionen för lagring är följande:

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

Datumvärdena är vadderade med nollor. ett exempel på filnamn kan vara:

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

Om din Azure Storage-blob är tillfälligt otillgänglig behåller Event Hubs Capture dina data under den datakvarhållningsperiod som konfigurerats på händelsehubben och fyller tillbaka data när lagringskontot är tillgängligt igen.

Skala dataflödesenheter eller bearbetningsenheter

På standardnivån för Event Hubs styrs trafiken av dataflödesenheter och på premiumnivån Event Hubs styrs den av bearbetningsenheter. Event Hubs Capture kopierar data direkt från den interna Event Hubs-lagringen, kringgår dataflödesenhets- eller bearbetningsenhetsutgående kvoter och sparar utgående data för andra bearbetningsläsare, till exempel Stream Analytics eller Spark.

När den har konfigurerats körs Event Hubs Capture automatiskt när du skickar din första händelse och fortsätter att köras. För att göra det enklare för nedströmsbearbetningen att veta att processen fungerar skriver Event Hubs tomma filer när det inte finns några data. Den här processen ger en förutsägbar takt och markör som kan mata dina batchprocessorer.

Konfigurera Event Hubs Capture

Du kan konfigurera Avbildning vid skapandetiden för händelsehubben med hjälp av Azure-portalen eller med hjälp av Azure Resource Manager-mallar. Mer information finns i följande artiklar:

Kommentar

Om du aktiverar avbildningsfunktionen för en befintlig händelsehubb samlar funktionen in händelser som kommer till händelsehubben när funktionen har aktiverats. Den samlar inte in händelser som fanns i händelsehubben innan funktionen aktiverades.

Så debiteras Event Hubs Capture

Avbildningsfunktionen ingår i premiumnivån, så det tillkommer ingen extra kostnad för den nivån. För standardnivån debiteras funktionen varje månad och avgiften är direkt proportionell mot antalet dataflödesenheter eller bearbetningsenheter som köpts för namnområdet. I takt med att dataflödesenheter eller bearbetningsenheter ökar och minskar ökar och minskar Event Hubs Capture-mätare för att ge matchande prestanda. Mätarna förekommer tillsammans. Prisinformation finns i Priser för Event Hubs.

Avbildningen förbrukar inte utgående kvot eftersom den faktureras separat.

Integrering med Event Grid

Du kan skapa en Azure Event Grid-prenumeration med ett Event Hubs-namnområde som källa. Följande självstudie visar hur du skapar en Event Grid-prenumeration med en händelsehubb som källa och en Azure Functions-app som mottagare: Bearbeta och migrera insamlade Event Hubs-data till en Azure Synapse Analytics med Event Grid och Azure Functions.

Utforska insamlade filer

Information om hur du utforskar insamlade Avro-filer finns i Utforska insamlade Avro-filer.

Azure Storage-konto som mål

Om du vill aktivera avbildning på en händelsehubb med Azure Storage som avbildningsmål eller uppdatera egenskaper på en händelsehubb med Azure Storage som avbildningsmål måste användaren eller tjänstens huvudnamn ha en RBAC-roll med följande behörigheter tilldelade i lagringskontots omfång. 

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

 

Utan ovanstående behörighet visas följande fel:

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>

Lagringsblobdataägaren är en inbyggd roll med ovanstående behörigheter, så lägg till användarkontot eller tjänstens huvudnamn i den här rollen.  

Nästa steg

Event Hubs Capture är det enklaste sättet att hämta data till Azure. Med Azure Data Lake, Azure Data Factory och Azure HDInsight kan du utföra batchbearbetning och annan analys med hjälp av välbekanta verktyg och plattformar som du väljer, i valfri skala.

Lär dig hur du aktiverar den här funktionen med hjälp av Azure-portalen och Azure Resource Manager-mallen: