Dela via


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 . Ange Compressioninmatningsegenskaper.

    • 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 (csvtsvosv.) 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, Metricoch ) och Valuede 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