Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Azure Event Hubs is een streamingplatform voor big data en een service voor gebeurtenisopname. Azure Data Explorer biedt continue opname van door de klant beheerde Event Hubs.
De Event Hubs-opnamepijplijn draagt in verschillende stappen gebeurtenissen over naar Azure Data Explorer. Eerst maakt u een Event Hub in Azure Portal. Maak vervolgens een doeltabel in Azure Data Explorer waarin de gegevens in een bepaalde indelingworden opgenomen, met gebruik van de verstrekte opname-eigenschappen. De Event Hubs-verbinding moet rekening houden met gebeurtenissenroutering. Gegevens kunnen worden ingesloten met geselecteerde eigenschappen volgens de eigenschappen van het gebeurtenissysteem. Breng een verbinding tot stand met Event Hubs om een event hub te maken en events te verzenden. Dit proces kan worden beheerd via Azure Portal, programmatisch met C# of Python, of met de Azure Resource Manager-sjabloon.
Verificatieopties voor gegevensverbinding in Azure Data Explorer
Beheerde identiteit gegevensverbinding (aanbevolen): Het gebruik van een gegevensverbinding op basis van een beheerde identiteit is de veiligste manier om verbinding te maken met gegevensbronnen. Het biedt volledige controle over de mogelijkheid om gegevens op te halen uit een gegevensbron. Voor het instellen van een gegevensverbinding met beheerde identiteit zijn de volgende stappen vereist:
- Een beheerde identiteit toevoegen aan uw cluster.
- Machtigingen verlenen aan de beheerde identiteit op de gegevensbron. Als u gegevens wilt ophalen uit Azure Event Hubs, moet de beheerde identiteit Azure Event Hubs-gegevensontvanger machtigingen hebben.
- Stel een beleid voor beheerde identiteiten in op de doeldatabases.
- Maak een gegevensverbinding met behulp van de verificatie van beheerde identiteiten om gegevens op te halen.
Waarschuwing
Als de machtigingen voor beheerde identiteiten worden verwijderd uit de gegevensbron, werkt de gegevensverbinding niet meer en kan de gegevens niet worden opgehaald uit de gegevensbron.
Gegevensverbinding op basis van een sleutel: als er geen verificatie van een beheerde identiteit is opgegeven voor de gegevensverbinding, wordt de verbinding automatisch standaard ingesteld op verificatie op basis van sleutels. Met sleutelverbindingen worden gegevens opgehaald via een resourceverbindingsreeks, zoals de Azure Event Hubs-verbindingsreeks. Azure Data Explorer haalt de verbindingsreeks voor de resource op voor de opgegeven resource en slaat deze veilig op. De verbindingsreeks wordt vervolgens gebruikt om gegevens op te halen uit de gegevensbron.
Waarschuwing
Als de sleutel wordt geroteerd, werkt de gegevensverbinding niet meer en kan de gegevens niet worden opgehaald uit de gegevensbron. U kunt het probleem oplossen door de gegevensverbinding bij te werken of opnieuw te maken.
Gegevensopmaak
- Gegevens worden gelezen uit de Event Hub in de vorm van EventData-objecten.
- Bekijk ondersteunde indelingen.
Notitie
- Het inlezen van Event Hubs biedt geen ondersteuning voor RAW-indeling.
- Azure Event Hubs Schema Registry en avro zonder schema worden niet ondersteund.
- Gegevens kunnen worden gecomprimeerd met behulp van het
gzip
compressie-algoritme. U kuntCompression
dynamisch specificeren met behulp van de -vereisten voor gegevensopname, of in de instellingen voor de statische gegevensverbinding. - Gegevenscompressie wordt niet ondersteund voor binaire indelingen (Avro, ApacheAvro, Parquet, ORC en W3CLOGFILE).
- Aangepaste codering en ingesloten systeemeigenschappen worden niet ondersteund met binaire indelingen en gecomprimeerde gegevens.
- Wanneer u binaire formatten (Avro, ApacheAvro, Parquet, ORC, en W3CLOGFILE) en opnametoewijzingengebruikt, moet de volgorde van de velden in de opnametoewijzingsdefinitie overeenkomen met de volgorde van de corresponderende kolommen in de tabel.
Event Hubs-eigenschappen
Azure Data Explorer ondersteunt de volgende Event Hubs-eigenschappen:
- Een gesloten set ingestie-eigenschappen , waardoor de gebeurtenis naar de relevante tabel wordt gerouteerd.
- Een gesloten set eigenschappen van het gebeurtenissysteem , die in de gegevens kunnen worden opgenomen op basis van een bepaalde toewijzing.
Notitie
Het opnemen van aangepaste eigenschappen in Event Hubs, die worden gebruikt om metagegevens aan gebeurtenissen te koppelen, wordt niet ondersteund. Als u aangepaste eigenschappen wilt opnemen, verzendt u deze in de hoofdtekst van de gebeurtenisgegevens. Voor meer informatie, zie Aangepaste eigenschappen opnemen.
Opname-eigenschappen
Opname-eigenschappen geven instructies aan het opnameproces over waar de gegevens naartoe moeten worden gerouteerd en hoe ze moeten worden verwerkt. U kunt opname-eigenschappen van de opname van gebeurtenissen opgeven met behulp van EventData.Properties. U kunt de volgende eigenschappen instellen:
Notitie
Eigenschapsnamen zijn hoofdlettergevoelig.
Vastgoed | Beschrijving |
---|---|
Gegevensbank | De hoofdlettergevoelige naam van de doeldatabase. Standaard worden gegevens opgenomen in de doeldatabase die is gekoppeld aan de gegevensverbinding. Gebruik deze eigenschap om de standaarddatabase te overschrijven en gegevens naar een andere database te verzenden. Hiervoor moet u eerst de verbinding instellen als een verbinding met meerdere databases. |
Tabel | De hoofdlettergevoelige naam van de bestaande doeltabel. Hiermee wordt de Table instelling op het Data Connection deelvenster overschreven. |
Formaat | Gegevensindeling. Hiermee wordt de Data format instelling op het Data Connection deelvenster overschreven. |
IngestionMappingReference | Naam van de bestaande opnametoewijzing die gebruikt moet worden. Hiermee wordt de Column mapping instelling op het Data Connection deelvenster overschreven. |
Compressie | Gegevenscompressie, None (standaard) of gzip . |
Codering | Gegevenscodering, de standaardwaarde is UTF8. Dit kunnen .NET-ondersteunde coderingen zijn. |
Tags | Een lijst met tags die moeten worden gekoppeld aan de opgenomen gegevens, opgemaakt als een JSON-matrixtekenreeks. Er zijn gevolgen voor de prestaties bij het gebruik van tags. |
Ruwe headers | Geeft aan dat de gebeurtenisbron Kafka is en Azure Data Explorer bytematrix deserialisatie moet gebruiken om andere routeringseigenschappen te lezen. Waarde wordt genegeerd. |
Notitie
Alleen gebeurtenissen die worden opgehaald nadat u de gegevensverbinding hebt gemaakt, worden opgenomen, tenzij er een aangepaste begindatum voor het ophalen is opgegeven. In elk geval mag de lookbackperiode de werkelijke retentieperiode van Event Hub niet overschrijden.
Routering van gebeurtenissen
Wanneer u een gegevensverbinding met uw cluster maakt, kunt u de routering opgeven voor waar opgenomen gegevens moeten worden verzonden. De standaardroutering is naar de doeltabel die is opgegeven in de verbindingsreeks die is gekoppeld aan de doeldatabase. De standaardroutering voor uw gegevens wordt ook wel statische routeringgenoemd. U kunt een alternatieve routerings- en verwerkingsopties voor uw gegevens opgeven door een of meer eigenschappen van gebeurtenisgegevens in te stellen die in de vorige alinea zijn vermeld.
Notitie
Event Hubs-gegevensverbinding probeert alle gebeurtenissen die worden gelezen uit de Event Hub te verwerken en elke gebeurtenis die om welke reden dan ook niet kan worden verwerkt, wordt gerapporteerd als opnamefout. Lees hoe u Azure Data Explorer-opname kunt bewaken hier.
Gebeurtenisgegevens routeren naar een alternatieve database
Routering van gegevens naar een alternatieve database is standaard uitgeschakeld. Als u de gegevens naar een andere database wilt verzenden, moet u eerst de verbinding instellen als een verbinding met meerdere databases. Deze functie kan worden ingeschakeld in Azure Portal Azure Portal, met C# of Python-beheer-SDK's of met een ARM-sjabloon. De gebruiker, groep, service-principal of beheerde identiteit die wordt gebruikt om databaseroutering toe te staan, moet ten minste de contributor rol hebben en schrijfrechten voor het cluster.
Als u een alternatieve database wilt opgeven, stelt u de instellingseigenschap Databasevoor gegevensinvoer in.
Waarschuwing
Als u een alternatieve database opgeeft zonder de verbinding in te stellen als een gegevensverbinding met meerdere databases, mislukt de opname.
Gebeurtenisgegevens routeren naar een alternatieve tabel
Als u voor elke gebeurtenis een alternatieve tabel wilt opgeven, stelt u de Tabel, Formaat, Compressieen de toewijzing van de opname-eigenschappenin. De verbinding routeert de opgenomen gegevens dynamisch zoals opgegeven in de EventData.Properties, waarbij de statische eigenschappen voor deze gebeurtenis worden overschreven.
In het volgende voorbeeld ziet u hoe u de details van de Event Hub instelt en metrische gegevens over het weer verzendt naar een alternatieve database (MetricsDB) en de tabel (WeatherMetrics). De gegevens zijn in JSON-indeling en toewijzing1 is voorafgaand gedefinieerd in tabel WeatherMetrics.
// This sample uses Azure.Messaging.EventHubs which is a .Net Framework library.
await using var producerClient = new EventHubProducerClient("<eventHubConnectionString>");
// Create the event and add optional "dynamic routing" properties
var eventData = new EventData(Encoding.UTF8.GetBytes(JsonConvert.SerializeObject(
new { TimeStamp = DateTime.UtcNow, MetricName = "Temperature", Value = 32 }
)));
eventData.Properties.Add("Database", "MetricsDB");
eventData.Properties.Add("Table", "WeatherMetrics");
eventData.Properties.Add("Format", "json");
eventData.Properties.Add("IngestionMappingReference", "mapping1");
eventData.Properties.Add("Tags", "['myDataTag']");
var events = new[] { eventData };
// Send events
await producerClient.SendAsync(events);
Toewijzing van systeemeigenschappen van Event Hubs
Systeemeigenschappen zijn velden die zijn ingesteld door de Event Hubs-service, op het moment dat de gebeurtenis wordt geïnventueerd. Azure Data Explorer Event Hubs-gegevensverbinding kan een vooraf gedefinieerde set systeemeigenschappen insluiten in de gegevens die zijn opgenomen in een tabel op basis van een bepaalde toewijzing.
Notitie
- Het insluiten van systeemeigenschappen wordt ondersteund voor json- en tabellaire indelingen (d.w.w.v.
JSON
,MultiJSON
,CSV
,TSV
,PSV
,SCsv
,SOHsv
,TSVE
). - Wanneer u een niet-ondersteunde indeling (i.e. TXT of gecomprimeerde indelingen zoals
Parquet
,Avro
enzovoort) gebruikt, worden de gegevens nog steeds opgenomen, maar worden de eigenschappen genegeerd. - Het insluiten van systeemeigenschappen wordt niet ondersteund wanneer een compressie van Event Hub-berichten is ingesteld. In dergelijke scenario's wordt een geschikte fout gegenereerd en worden de gegevens niet opgenomen.
- Voor tabelgegevens worden systeemeigenschappen alleen ondersteund voor gebeurtenisberichten met één record.
- Voor json-gegevens worden systeemeigenschappen ook ondersteund voor gebeurtenisberichten met meerdere records. In dergelijke gevallen worden de systeemeigenschappen alleen toegevoegd aan de eerste record van het gebeurtenisbericht.
- Voor
CSV
-toewijzing worden eigenschappen aan het begin van de gegevensrecord toegevoegd, in de volgorde die bij het maken van de gegevensverbinding is vermeld. Vertrouw niet op de volgorde van deze eigenschappen, omdat deze in de toekomst kan veranderen. - Voor de
JSON
toewijzing worden eigenschappen toegevoegd op basis van eigenschapsnamen in de tabel met systeemeigenschappen.
De Event Hubs-service maakt de volgende systeemeigenschappen beschikbaar:
Vastgoed | Gegevenssoort | Beschrijving |
---|---|---|
x-opt-enqueued-time | datetime |
UTC-tijd waarop de gebeurtenis in de wachtrij is geplaatst |
x-opt-volgnummer | long |
Het logische volgnummer van de gebeurtenis binnen de partitiestroom van de Event Hub |
x-opt-offset | string |
De verschuiving van de gebeurtenis uit de partitiestroom van de Event Hub. De offset-id is uniek binnen een partitie van de Event Hub-stream |
x-opt-uitgever | string |
De naam van de uitgever, als het bericht is verzonden naar een uitgeverseindpunt |
x-opt-partitie-sleutel | string |
De partitiesleutel van de bijbehorende partitie die de gebeurtenis heeft opgeslagen |
Wanneer u met IoT Central Event Hubs werkt, kunt u ook systeemeigenschappen van IoT Hub insluiten in de nettolading. Zie Systeemeigenschappen van IoT Hubvoor de volledige lijst.
Als u Gebeurtenissysteemeigenschappen hebt geselecteerd in de sectie Gegevensbron van de tabel, moet u de eigenschappen in het tabelschema en de toewijzing opnemen.
Voorbeelden van 'schema mapping'
Voorbeeld van tabelschematoewijzing
Als uw gegevens drie kolommen (TimeStamp
, MetricName
, en Value
) bevatten en de eigenschappen die u opneemt x-opt-enqueued-time
en x-opt-offset
zijn, maakt of wijzigt u het tabelschema met behulp van deze opdracht:
.create-merge table TestTable (TimeStamp: datetime, MetricName: string, Value: int, EventHubEnqueuedTime:datetime, EventHubOffset:string)
CSV-voorbeeldoverzicht
Voer de volgende opdrachten uit om gegevens toe te voegen aan het begin van de record. Let op rangtelwaarden.
.create table TestTable ingestion csv mapping "CsvMapping1"
'['
' { "column" : "TimeStamp", "Properties":{"Ordinal":"2"}},'
' { "column" : "MetricName", "Properties":{"Ordinal":"3"}},'
' { "column" : "Value", "Properties":{"Ordinal":"4"}},'
' { "column" : "EventHubEnqueuedTime", "Properties":{"Ordinal":"0"}},'
' { "column" : "EventHubOffset", "Properties":{"Ordinal":"1"}}'
']'
Voorbeeld van JSON-toewijzing
Gegevens worden toegevoegd met behulp van de systeemeigenschappentoewijzing. Voer deze opdrachten uit:
.create table TestTable ingestion json mapping "JsonMapping1"
'['
' { "column" : "TimeStamp", "Properties":{"Path":"$.TimeStamp"}},'
' { "column" : "MetricName", "Properties":{"Path":"$.MetricName"}},'
' { "column" : "Value", "Properties":{"Path":"$.Value"}},'
' { "column" : "EventHubEnqueuedTime", "Properties":{"Path":"$.x-opt-enqueued-time"}},'
' { "column" : "EventHubOffset", "Properties":{"Path":"$.x-opt-offset"}}'
']'
Schematoewijzing voor het vastleggen van Avro-bestanden via Event Hubs
Een manier om Event Hubs-gegevens te gebruiken, is door gebeurtenissen vast te leggen via Azure Event Hubs in Azure Blob Storage of Azure Data Lake Storage. Vervolgens kunt u de opnamebestanden opnemen terwijl ze worden geschreven met behulp van een Event Grid-gegevensverbinding in Azure Data Explorer.
Het schema van de opnamebestanden verschilt van het schema van de oorspronkelijke gebeurtenis die naar Event Hubs wordt verzonden. U moet het doeltabelschema ontwerpen met dit verschil in gedachten. De nettolading van de gebeurtenis wordt in het opnamebestand weergegeven als een bytematrix en deze matrix wordt niet automatisch gedecodeerd door de Azure Data Explorer-gegevensverbinding van Event Grid. Zie Verken vastgelegde Avro-bestanden in Azure Event Hubsvoor meer informatie over het bestandsschema voor Event Hubs Avro-opnamegegevens.
De nettolading van de gebeurtenis correct decoderen:
- Wijs het
Body
veld van de vastgelegde gebeurtenis toe aan een kolom van het typedynamic
in de doeltabel. - Pas een updatebeleid toe waarmee de bytematrix wordt geconverteerd naar een leesbare tekenreeks met behulp van de functie unicode_codepoints_to_string().
Aangepaste eigenschappen opnemen
Bij het opnemen van gebeurtenissen uit Event Hubs worden gegevens opgehaald uit de sectie body
van het gebeurtenisgegevensobject. Event Hubs aangepaste eigenschappen worden echter gedefinieerd in de properties
sectie van het object en worden niet opgenomen. Als u klanteigenschappen wilt opnemen, moet u deze insluiten in de gegevens in body
sectie van het object.
In het volgende voorbeeld wordt het gebeurtenisgegevensobject met aangepaste eigenschap customProperty
vergeleken met de als door Event Hubs gedefinieerde (links) en de ingesloten eigenschap die nodig is voor invoer (rechts).
{
"body":{
"value": 42
},
"properties":{
"customProperty": "123456789"
}
}
{
"body":{
"value": 42,
"customProperty": "123456789"
}
}
U kunt een van de volgende methoden gebruiken om aangepaste eigenschappen in te sluiten in de gegevens in body
sectie van het gebeurtenisgegevensobject:
- Sluit in Event Hubs bij het maken van het gebeurtenisgegevensobject de aangepaste eigenschappen in als onderdeel van de gegevens in de sectie
body
van het object. - Gebruik Azure Stream Analytics om gebeurtenissen van de Event Hub te te verwerken en de aangepaste eigenschappen in te sluiten in de gebeurtenisgegevens. Vanuit Azure Stream Analytics kunt u de gegevens systeemeigen opnemen met behulp van de Azure Data Explorer-uitvoerconnector, of de gegevens routeren naar een andere Event Hub en daar naar uw cluster.
- Gebruik Azure Functions om de aangepaste eigenschappen toe te voegen en de gegevens vervolgens op te nemen.
Event Hubs maken
Maak een Event Hub aan als u er nog geen hebt, . Verbinding maken met Event Hub kan worden beheerd via de Azure Portal, programmatisch met C#- of Python-, of met de Azure Resource Manager-sjabloon.
Notitie
- De mogelijkheid om partities dynamisch toe te voegen nadat u een Event Hub hebt gemaakt, is alleen beschikbaar met Event Hubs Premium- en Dedicated-lagen. Houd rekening met de schaal op lange termijn bij het instellen van het aantal partities.
- Consumentengroep moet uniek zijn per consument. Maak een toegewezen consumentengroep voor elke Azure Data Explorer-gegevensverbinding.
Event Hubs-gegevensverbinding tussen regio's
Voor de beste prestaties maakt u de Event Hub in dezelfde regio als het cluster. Als dit niet mogelijk is, kunt u overwegen om Premium- of Dedicated Event Hubs-lagen te gebruiken. Zie Azure Event Hubs-lagen vergelijkenvoor een vergelijking van lagen.
Gebeurtenissen verzenden
Bekijk de voorbeeld-app waarmee gegevens worden gegenereerd en verzonden naar een Event Hub.
Notitie
Om efficiënte verwerking van gebeurtenissen van Event Hubs naar Azure Data Explorer mogelijk te maken, vermijdt u een niet-verdeelde distributie van gebeurtenissen tussen partities. Ongelijke mapping kan leiden tot een hoge discovery latency. Zie Toewijzing van gebeurtenissen aan partitiesvoor meer informatie.
Oplossing voor geo-noodherstel instellen
Event Hub biedt een oplossing voor geo-noodherstel.
Azure Data Explorer biedt geen ondersteuning voor Alias
Event Hub-naamruimten. Als u het geo-noodherstel in uw oplossing wilt implementeren, maakt u twee Event Hub-gegevensverbindingen: een voor de primaire naamruimte en een voor de secundaire naamruimte. Azure Data Explorer luistert naar beide Event Hub-verbindingen.
Notitie
Het is de verantwoordelijkheid van de gebruiker om een failover van de primaire naamruimte naar de secundaire naamruimte te implementeren.
Verwante inhoud
- gegevens van Event Hub opnemen in Azure Data Explorer
- Een Event Hub-gegevensverbinding maken voor Azure Data Explorer met behulp van C#
- Een Event Hub-gegevensverbinding maken voor Azure Data Explorer met behulp van Python
- Een Event Hub-gegevensverbinding maken voor Azure Data Explorer met behulp van een Azure Resource Manager-sjabloon
- Event Hubs-gegevensverbindingen beheren in uw gratis cluster
- Azure Monitor-logboeken opnemen en er query's op uitvoeren met Azure Data Explorer