Event Hub-dataanslutning (förhandsversion)
Azure Event Hubs är en stordataströmningsplattform och händelseinmatningstjänst. Azure Synapse Data Explorer erbjuder kontinuerlig inmatning från kundhanterade händelsehubbar.
Händelsehubbens inmatningspipeline överför händelser till Azure Synapse Data Explorer i flera steg. Du skapar först en händelsehubb i Azure Portal. Sedan skapar du en måltabell i Azure Synapse Data Explorer där data i ett visst format matas in med hjälp av de angivna inmatningsegenskaperna. Event Hub-anslutningen måste känna till händelsedirigering. Data bäddas in med valda egenskaper enligt mappningen av händelsesystemegenskaper. Skapa en anslutning till händelsehubben för att skapa en händelsehubb och skicka händelser. Den här processen kan hanteras via Azure Portal, programmatiskt med C# eller Python eller med Azure Resource Manager-mallen.
Allmän information om datainmatning i Azure Synapse Data Explorer finns i översikten över Azure Synapse Data Explorer datainmatning.
Dataformat
Data läss från händelsehubben i form av EventData-objekt .
Se format som stöds.
Anteckning
Event Hub stöder inte .raw-formatet.
Data kan komprimeras med hjälp av komprimeringsalgoritmen
GZip
. AngeCompression
inmatningsegenskaper.- Datakomprimering stöds inte för komprimerade format (Avro, Parquet, ORC).
- Anpassade kodnings- och inbäddade systemegenskaper stöds inte på komprimerade data.
Inmatningsegenskaper
Inmatningsegenskaper instruerar inmatningsprocessen, var data ska dirigeras och hur de ska bearbetas. Du kan ange inmatningsegenskaper för händelseinmatningen med hjälp av EventData.Properties. Du kan ange följande egenskaper:
Egenskap | Beskrivning |
---|---|
Tabell | Namn (skiftlägeskänsligt) för den befintliga måltabellen. Åsidosätter uppsättningen Table i fönstret Data Connection . |
Format | Dataformat. Åsidosätter uppsättningen Data format i fönstret Data Connection . |
IngestionMappingReference | Namnet på den befintliga inmatningsmappningen som ska användas. Åsidosätter uppsättningen Column mapping i fönstret Data Connection . |
Komprimering | Datakomprimering, None (standard) eller GZip komprimering. |
Kodning | Datakodning, standardvärdet är UTF8. Kan vara någon av .NET-kodningar som stöds. |
Taggar | En lista över taggar som ska associeras med inmatade data, formaterade som en JSON-matrissträng. Det finns prestandakonsekvenser när du använder taggar. |
Anteckning
Endast händelser som anges när du har skapat dataanslutningen matas in.
Händelseroutning
När du konfigurerar en Event Hub-anslutning till Azure Synapse Data Explorer kluster anger du måltabellegenskaper (tabellnamn, dataformat, komprimering och mappning). Standardroutningen för dina data kallas också .static routing
Du kan också ange måltabellegenskaper för varje händelse med hjälp av händelseegenskaper. Anslutningen dirigerar dynamiskt data enligt vad som anges i EventData.Properties, vilket åsidosättar de statiska egenskaperna för den här händelsen.
I följande exempel anger du Event Hub-information och skickar vädermåttdata till tabell WeatherMetrics
.
Data är i json
format. mapping1
är fördefinierad i tabellen WeatherMetrics
.
var eventHubNamespaceConnectionString=<connection_string>;
var eventHubName=<event_hub>;
// Create the data
var metric = new Metric { Timestamp = DateTime.UtcNow, MetricName = "Temperature", Value = 32 };
var data = JsonConvert.SerializeObject(metric);
// Create the event and add optional "dynamic routing" properties
var eventData = new EventData(Encoding.UTF8.GetBytes(data));
eventData.Properties.Add("Table", "WeatherMetrics");
eventData.Properties.Add("Format", "json");
eventData.Properties.Add("IngestionMappingReference", "mapping1");
eventData.Properties.Add("Tags", "['mydatatag']");
// Send events
var eventHubClient = EventHubClient.CreateFromConnectionString(eventHubNamespaceConnectionString, eventHubName);
eventHubClient.Send(eventData);
eventHubClient.Close();
Mappning av händelsesystemegenskaper
Systemegenskaper lagrar egenskaper som anges av Event Hubs-tjänsten när händelsen visas. Azure Synapse Data Explorer Event Hub-anslutningen bäddar in de valda egenskaperna i datalandningen i tabellen.
Anteckning
- Systemegenskaper stöds för
json
och tabellformat (csv
tsv
osv.) och stöds inte för komprimerade data. När du använder ett format som inte stöds matas data fortfarande in, men egenskaperna ignoreras. - För tabelldata stöds systemegenskaper endast för händelsemeddelanden med en post.
- För JSON-data stöds även systemegenskaper för händelsemeddelanden med flera poster. I sådana fall läggs systemegenskaperna endast till i den första posten i händelsemeddelandet.
- För
csv
mappning läggs egenskaper till i början av posten i den ordning som anges i tabellen Systemegenskaper . - För
json
mappning läggs egenskaper till enligt egenskapsnamn i tabellen Systemegenskaper .
Systemegenskaper
Event Hub visar följande systemegenskaper:
Egenskap | Datatyp | Beskrivning |
---|---|---|
x-opt-enqueued-time | datetime | UTC-tid när händelsen kördes |
x-opt-sequence-number | long | Det logiska sekvensnumret för händelsen i partitionsströmmen för händelsehubben |
x-opt-offset | sträng | Förskjutningen av händelsen från händelsehubbens partitionsström. Förskjutningsidentifieraren är unik i en partition av Händelsehubbens dataström |
x-opt-publisher | sträng | Utgivarens namn, om meddelandet skickades till en utgivarslutpunkt |
x-opt-partition-key | sträng | Partitionsnyckeln för motsvarande partition som lagrade händelsen |
Om du har valt Egenskaper för händelsesystem i avsnittet Datakälla i tabellen måste du inkludera egenskaperna i tabellschemat och mappningen.
Exempel på schemamappning
Exempel på mappning av tabellscheman
Om dina data innehåller tre kolumner (Timespan
, Metric
och ) och Value
de egenskaper som du inkluderar är x-opt-enqueued-time
och x-opt-offset
, skapar eller ändrar du tabellschemat med hjälp av det här kommandot:
.create-merge table TestTable (TimeStamp: datetime, Metric: string, Value: int, EventHubEnqueuedTime:datetime, EventHubOffset:string)
Exempel på CSV-mappning
Kör följande kommandon för att lägga till data i början av posten. Observera ordningstalsvärden.
.create table TestTable ingestion csv mapping "CsvMapping1"
'['
' { "column" : "Timespan", "Properties":{"Ordinal":"2"}},'
' { "column" : "Metric", "Properties":{"Ordinal":"3"}},'
' { "column" : "Value", "Properties":{"Ordinal":"4"}},'
' { "column" : "EventHubEnqueuedTime", "Properties":{"Ordinal":"0"}},'
' { "column" : "EventHubOffset", "Properties":{"Ordinal":"1"}}'
']'
JSON-mappningsexempel
Data läggs till med hjälp av mappningen av systemegenskaper. Kör dessa kommandon:
.create table TestTable ingestion json mapping "JsonMapping1"
'['
' { "column" : "Timespan", "Properties":{"Path":"$.timestamp"}},'
' { "column" : "Metric", "Properties":{"Path":"$.metric"}},'
' { "column" : "Value", "Properties":{"Path":"$.value"}},'
' { "column" : "EventHubEnqueuedTime", "Properties":{"Path":"$.x-opt-enqueued-time"}},'
' { "column" : "EventHubOffset", "Properties":{"Path":"$.x-opt-offset"}}'
']'
Händelsehubbsanslutning
Anteckning
För bästa prestanda skapar du alla resurser i samma region som det Azure Synapse Data Explorer klustret.
Skapa en händelsehubb
Om du inte redan har en skapar du en händelsehubb. Anslutning till Händelsehubb kan hanteras via Azure Portal, programmatiskt med C# eller Python eller med Azure Resource Manager-mallen.
Anteckning
- Partitionsantalet kan inte ändras, så du bör överväga långsiktig skalning när du anger antal partitioner.
- Konsumentgruppen måste vara unik per konsument. Skapa en konsumentgrupp som är dedikerad för Azure Synapse Data Explorer anslutning.
Skicka händelser
Se exempelappen som genererar data och skickar dem till en händelsehubb.
Ett exempel på hur du genererar exempeldata finns i Mata in data från Händelsehubb till Azure Synapse Data Explorer
Konfigurera en lösning för geo-haveriberedskap
Event Hub erbjuder en lösning för geo-haveriberedskap .
Azure Synapse Data Explorer stöder Alias
inte Event Hub-namnrymder. Om du vill implementera geo-haveriberedskap i din lösning skapar du två Event Hub-dataanslutningar: en för det primära namnområdet och en för det sekundära namnområdet. Azure Synapse Data Explorer lyssnar på båda Event Hub-anslutningarna.
Anteckning
Det är användarens ansvar att implementera en redundansväxling från det primära namnområdet till det sekundära namnområdet.
Nästa steg
- Mata in data från Event Hub till Azure Synapse Data Explorer
- Skapa en Event Hub-dataanslutning för Azure Synapse Data Explorer med C #
- Skapa en Event Hub-dataanslutning för Azure Synapse Data Explorer med hjälp av Python
- Skapa en Event Hub-dataanslutning för Azure Synapse Data Explorer med hjälp av en Azure Resource Manager-mall
Feedback
https://aka.ms/ContentUserFeedback.
Kommer snart: Under hela 2024 kommer vi att fasa ut GitHub-problem som feedbackmekanism för innehåll och ersätta det med ett nytt feedbacksystem. Mer information finns i:Skicka och visa feedback för