Event Hubs-utdata från Azure Stream Analytics
Den Azure Event Hubs tjänsten är en mycket skalbar publicerings-prenumerera händelse-ingestor. Den kan samla in miljontals händelser per sekund. En användning av en händelsehubb som utdata är när utdata från ett Stream Analytics-jobb blir indata för ett annat strömningsjobb. Information om den maximala meddelandestorleken och batchstorleksoptimeringen finns i avsnittet batchstorlek för utdata .
Konfiguration av utdata
I följande tabell finns de parametrar som behövs för att konfigurera dataströmmar från händelsehubbar som utdata.
Egenskapsnamn | Beskrivning |
---|---|
Utdataalias | Ett eget namn som används i frågor för att dirigera frågeutdata till den här händelsehubben. |
Namnområde för händelsehubb | En container för en uppsättning meddelandeentiteter. När du skapade en ny händelsehubb skapade du även ett namnområde för händelsehubben. |
Namn på händelsehubb | Namnet på händelsehubbens utdata. |
Namn på händelsehubbprincip | Principen för delad åtkomst, som du kan skapa på fliken Konfigurera för händelsehubben. Varje princip för delad åtkomst har ett namn, behörigheter som du anger och åtkomstnycklar. |
Principnyckel för händelsehubb | Den delade åtkomstnyckeln som används för att autentisera åtkomst till händelsehubbens namnområde. |
Partitionsnyckelkolumn | Valfritt. En kolumn som innehåller partitionsnyckeln för händelsehubbens utdata. |
Händelseserialiseringsformat | Serialiseringsformatet för utdata. JSON, CSV och Avro stöds. |
Kodning | För CSV och JSON är UTF-8 det enda kodningsformat som stöds just nu. |
Avgränsare | Gäller endast för CSV-serialisering. Stream Analytics stöder ett antal vanliga avgränsare för serialisering av data i CSV-format. Värden som stöds är kommatecken, semikolon, blanksteg, flik och lodrätt fält. |
Format | Gäller endast för JSON-serialisering. Radavgränsad anger att utdata formateras genom att varje JSON-objekt avgränsas med en ny rad. Om du väljer Radavgränsad läss JSON ett objekt i taget. Hela innehållet i sig skulle inte vara en giltig JSON. Matrisen anger att utdata formateras som en matris med JSON-objekt. |
Egenskapskolumner | Valfritt. Kommaavgränsade kolumner som måste kopplas som användaregenskaper för det utgående meddelandet i stället för nyttolasten. Mer information om den här funktionen finns i avsnittet Anpassade metadataegenskaper för utdata. |
Partitionering
Partitionering varierar beroende på partitionsjustering. När partitionsnyckeln för händelsehubbens utdata är lika justerad med det överordnade (föregående) frågesteget är antalet skrivare detsamma som antalet partitioner i händelsehubbens utdata. Varje skrivare använder klassen EventHubSender för att skicka händelser till den specifika partitionen. När partitionsnyckeln för händelsehubbens utdata inte är justerad med det överordnade (föregående) frågesteget är antalet skrivare detsamma som antalet partitioner i föregående steg. Varje skrivare använder klassen SendBatchAsync i EventHubClient för att skicka händelser till alla utdatapartitioner.
Batchstorlek för utdata
Den maximala meddelandestorleken är 256 KB eller 1 MB per meddelande. Mer information finns i Event Hubs-gränser. När partitioneringen av indata/utdata inte är justerad packas varje händelse individuellt i EventData
och skickas i en batch med upp till den maximala meddelandestorleken. Detta inträffar också om anpassade metadataegenskaper används. När partitioneringen av indata/utdata justeras packas flera händelser i en enda EventData
instans, upp till den maximala meddelandestorleken och skickas.
Anpassade metadataegenskaper för utdata
Du kan bifoga frågekolumner som användaregenskaper till dina utgående meddelanden. Dessa kolumner hamnar inte i nyttolasten. Egenskaperna finns i form av en ordlista i utdatameddelandet. Nyckeln är kolumnnamnet och värdet är kolumnvärdet i egenskapsordlistan. Alla Stream Analytics-datatyper stöds förutom Post och Matris.
I följande exempel läggs fälten DeviceId
och DeviceStatus
till i metadata.
Använd följande fråga:
select *, DeviceId, DeviceStatus from iotHubInput
Konfigurera
DeviceId,DeviceStatus
som egenskapskolumner i utdata.
Följande bild är av de förväntade egenskaperna för utdatameddelanden som inspekteras i en händelsehubb med Service Bus Explorer.
Leverans exakt en gång
Exakt när leveransen stöds i Event Hubs-utdata som standard. Oavsett dina indata garanterar Stream Analytics ingen dataförlust eller inga dubbletter i en Event Hubs-utdata, över användarinitierade omstarter från den senaste utdatatiden, vilket förhindrar att dubbletter skapas. Detta förenklar strömningspipelinen avsevärt genom att inte behöva övervaka, implementera och felsöka dedupliceringslogik.