Samla in händelser via Azure Event Hubs i Azure Blob Storage eller Azure Data Lake Storage
Azure Event Hubs gör att du automatiskt kan samla in strömmande data i Event Hubs i en Azure Blob Storage- eller Azure Data Lake Storage Gen 1- eller Gen 2-konto som du väljer, med den extra flexibiliteten att ange ett tids- eller storleksintervall. Det går snabbt att konfigurera Capture, det finns inga administrativa kostnader för att köra den och den skalas automatiskt med Event Hubs-dataflödesenheter på standardnivån eller bearbetningsenheter 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å databehandling i stället för på datainsamling.
Anteckning
Att Event Hubs Capture att använda Azure Data Lake Storage Gen 2 är samma sak som att konfigurera den för att använda en Azure Blob Storage. Mer information finns i Konfigurera Event Hubs Capture.
Event Hubs Capture kan du bearbeta realtids- och batchbaserade pipelines i samma dataströ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 ett öga 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.
Så Event Hubs Capture
Event Hubs är en beständig buffert för kvarhållning av telemetriindata, ungefär som en distribuerad logg. Nyckeln till att skala in Event Hubs är den partitionerade konsumentmodellen. Varje partition är ett oberoende datasegment och används oberoende av varandra. Med tiden blir dessa data äldre, baserat på den konfigurerbara kvarhållningsperioden. Därför blir en viss händelsehubb aldrig "för full".
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 infångade data. Dessa konton kan finnas i samma region som din händelsehubb eller i en annan region, vilket ökar flexibiliteten i Event Hubs Capture-funktionen.
Infångade data är skrivna i Apache Avro-format: ett kompakt, snabbt, binärt format som tillhandahåller omfattande datastrukturer med infogade scheman. 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.
Fönster för avskiljning
Event Hubs Capture kan du konfigurera ett fönster för att styra avbildningen. Det här fönstret är en minsta storleks- och tidskonfiguration med en "första wins-princip", vilket innebär att den första utlösaren som påträffas orsakar en av capture-åtgärd. Om du har en 15 minuter lång avfångst på 100 MB och skickar 1 MB per sekund utlöses storleksfönstret före tidsfönstret. Varje partition avbildas oberoende av varandra och skriver en slutförd blockblob vid tidpunkten för insamlingen, med namnet för den tid då avfångstintervallet påträffades. Namngivningskonventionen för lagring är följande:
{Namespace}/{EventHub}/{PartitionId}/{Year}/{Month}/{Day}/{Hour}/{Minute}/{Second}
Datumvärdena är utplattade 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 inte är tillgänglig för tillfället behåller Event Hubs Capture dina data under den datalagringsperiod som konfigurerats på händelsehubben och fyller i data igen när ditt lagringskonto ä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 kvoter för utgående dataflöde eller bearbetningsenhet och sparar utgående data för andra bearbetningsläsare, till exempel Stream Analytics eller Spark.
När du har konfigurerat 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 den underordnade bearbetningen att veta att processen fungerar Event Hubs skriver 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 avskiljning när händelsehubben skapas med hjälp Azure Portal, eller med hjälp Azure Resource Manager mallar. Mer information finns i följande artiklar:
- Aktivera avbildningsfunktionen i Event Hubs med Azure Portal
- Skapa ett namnområde för Event Hubs med en händelsehubb och aktivera avbildning med hjälp av en Azure Resource Manager-mall
Anteckning
Om du aktiverar funktionen Capture 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 var aktiverad.
Utforska de avbildade filerna och arbeta med Avro
Event Hubs Capture skapar filer i Avro-format, enligt vad som anges i det konfigurerade tidsfönstret. Du kan visa dessa filer i val annat verktyg, till exempel Azure Storage Explorer. Du kan ladda ned filerna lokalt för att arbeta med dem.
Filerna som skapas av Event Hubs Capture har följande Avro-schema:

Ett enkelt sätt att utforska Avro-filer är att använda Avro Tools-jar-filen från Apache. Du kan också använda Apache Drill för SQL enkel och Apache Spark för att utföra komplex distribuerad bearbetning av inkommande data.
Använda Apache Drill
Apache Drill är en "öppen källkod SQL frågemotor för stordatautforskning" som kan fråga strukturerade och halvstrukturerade data oavsett var de finns. Motorn kan köras som en fristående nod eller som ett stort kluster för bra prestanda.
Det finns ett inbyggt stöd för Azure Blob Storage, vilket gör det enkelt att fråga efter data i en Avro-fil, enligt beskrivningen i dokumentationen:
Apache Drill: Plugin-programmet Azure Blob Storage
För att enkelt köra frågor mot avbildade filer kan du skapa och köra en virtuell dator med Apache Drill aktiverat via en container för att få åtkomst till Azure Blob Storage. Se följande exempel: Streaming at Scale with Event Hubs Capture.
Använda Apache Spark
Apache Spark är en "enhetlig analysmotor för storskalig databehandling". Den stöder olika språk, inklusive SQL, och kan enkelt komma åt Azure Blob Storage. Det finns några alternativ för att köra Apache Spark i Azure, och var och en ger enkel åtkomst till Azure Blob Storage:
- HDInsight: Adressera filer i Azure Storage
- Azure Databricks: Azure Blob Storage
- Azure Kubernetes Service
Använda Avro-verktyg
Avro Tools är tillgängligt som ett jar-paket. När du har hämtat jar-filen kan du se schemat för en specifik Avro-fil genom att köra följande kommando:
java -jar avro-tools-1.9.1.jar getschema <name of capture file>
Det här kommandot returnerar
{
"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"]}
]
}
Du kan också använda Avro Tools för att konvertera filen till JSON-format och utföra annan bearbetning.
Om du vill utföra mer avancerad bearbetning laddar du ned och installerar Avro för din val av plattform. När detta skrivs finns det implementeringar för C, C++, # C, Java, NodeJS, Perl, PHP, Python och Ruby.
Apache Avro har fullständiga Komma igång guider för Java och Python. Du kan också läsa artikeln Komma igång med Event Hubs Capture.
Hur Event Hubs Capture debiteras
Event Hubs Capture mäts på samma sätt som dataflödesenheter (standardnivå) eller bearbetningsenheter (på premiumnivå): som en avgift per timme. Avgiften är direkt proportionell mot antalet dataflödesenheter eller bearbetningsenheter som köpts för namnområdet. När dataflödesenheter eller bearbetningsenheter ökar och minskar, ökar Event Hubs öka och minska för att ge matchande prestanda. Mätare sker tillsammans. Prisinformation finns i Event Hubs priser.
Avskiljningen förbrukar inte utgående kvot eftersom den faktureras separat.
Integrering med Event Grid
Du kan skapa en Azure Event Grid-prenumeration med Event Hubs ett 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 avbildade Event Hubs-datatill en Azure Synapse Analytics med hjälp av Event Grid och Azure Functions .
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 andra analyser 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 Azure Portal och Azure Resource Manager mall: