Share via


Event Hub-gegevensverbinding (preview)

Azure Event Hubs is een platform voor het streamen van big data en een service voor gebeurtenisopname. Azure Synapse Data Explorer biedt continue opname van door de klant beheerde Event Hubs.

De Opnamepijplijn van Event Hub draagt in verschillende stappen gebeurtenissen over naar Azure Synapse Data Explorer. U maakt eerst een Event Hub in de Azure Portal. Vervolgens maakt u een doeltabel in Azure Synapse Data Explorer waarin de gegevens in een bepaalde indeling worden opgenomen met behulp van de opgegeven opname-eigenschappen. De Event Hub-verbinding moet de routering van gebeurtenissen kennen. Gegevens worden ingesloten met geselecteerde eigenschappen volgens de toewijzing van de gebeurtenissysteemeigenschappen. Maak een verbinding met Event Hub om een Event Hub te maken en gebeurtenissen te verzenden. Dit proces kan worden beheerd via de Azure Portal, programmatisch met C# of Python, of met de Azure Resource Manager-sjabloon.

Zie overzicht van Azure Synapse Data Explorer gegevensopname voor algemene informatie over gegevensopname in Azure Synapse Data Explorer.

Gegevensindeling

  • Gegevens worden gelezen uit de Event Hub in de vorm van EventData-objecten .

  • Zie ondersteunde indelingen.

    Notitie

    Event Hub biedt geen ondersteuning voor de RAW-indeling.

  • Gegevens kunnen worden gecomprimeerd met behulp van het GZip compressie-algoritme. Geef Compressioneigenschappen voor opname op.

    • Gegevenscompressie wordt niet ondersteund voor gecomprimeerde indelingen (Avro, Parquet, ORC).
    • Aangepaste codering en ingesloten systeemeigenschappen worden niet ondersteund voor gecomprimeerde gegevens.

Opname-eigenschappen

Opname-eigenschappen geven instructies voor het opnameproces, waar de gegevens moeten worden gerouteerd en hoe deze moeten worden verwerkt. U kunt opname-eigenschappen van de gebeurtenisopname opgeven met behulp van EventData.Properties. U kunt de volgende eigenschappen instellen:

Eigenschap Beschrijving
Tabel Naam (hoofdlettergevoelig) van de bestaande doeltabel. Hiermee overschrijft u de Table set in het Data Connection deelvenster.
Indeling Gegevensindeling. Hiermee overschrijft u de Data format set in het Data Connection deelvenster.
IngestionMappingReference Naam van de bestaande opnametoewijzing die moet worden gebruikt. Hiermee overschrijft u de Column mapping set in het Data Connection deelvenster.
Compressie Gegevenscompressie ( None standaard) of GZip compressie.
Encoding Gegevenscodering, de standaardwaarde is UTF8. Kan een van de door .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.

Notitie

Alleen gebeurtenissen die worden opgehaald nadat u de gegevensverbinding hebt gemaakt, worden opgenomen.

Routering van gebeurtenissen

Wanneer u een Event Hub-verbinding met Azure Synapse Data Explorer cluster instelt, geeft u eigenschappen van de doeltabel op (tabelnaam, gegevensindeling, compressie en toewijzing). De standaardroutering voor uw gegevens wordt ook wel aangeduid als static routing. U kunt ook eigenschappen van de doeltabel voor elke gebeurtenis opgeven met behulp van gebeurteniseigenschappen. Met de verbinding worden de gegevens dynamisch gerouteerd zoals opgegeven in EventData.Properties, waarbij de statische eigenschappen voor deze gebeurtenis worden overschreven.

In het volgende voorbeeld stelt u Event Hub-details in en verzendt u metrische gegevens over het weer naar de tabel WeatherMetrics. Gegevens hebben json de indeling. mapping1 is vooraf gedefinieerd in de tabel 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();

Toewijzing van gebeurtenissysteemeigenschappen

Systeemeigenschappen slaan eigenschappen op die zijn ingesteld door de Event Hubs-service, op het moment dat de gebeurtenis wordt onderbroken. Met de Azure Synapse Data Explorer Event Hub-verbinding worden de geselecteerde eigenschappen ingesloten in de gegevenslanding in uw tabel.

Notitie

  • Systeemeigenschappen worden ondersteund voor json tabellaire indelingen (csvenzovoort tsv ) en worden niet ondersteund voor gecomprimeerde gegevens. Wanneer u een niet-ondersteunde indeling gebruikt, worden de gegevens nog steeds opgenomen, maar worden de eigenschappen genegeerd.
  • Voor gegevens in tabelvorm 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 toegevoegd aan het begin van de record in de volgorde die wordt vermeld in de tabel Systeemeigenschappen .
  • Voor json toewijzing worden eigenschappen toegevoegd op basis van eigenschapsnamen in de tabel Systeemeigenschappen .

Systeemeigenschappen

Event Hub maakt de volgende systeemeigenschappen beschikbaar:

Eigenschap Gegevenstype Beschrijving
x-opt-enqueued-time datum/tijd UTC-tijd waarop de gebeurtenis is ge-enqueued
x-opt-sequence-number long Het logische volgnummer van de gebeurtenis in de partitiestroom van de Event Hub
x-opt-offset tekenreeks De offset van de gebeurtenis van de Event Hub-partitiestroom. De offset-id is uniek binnen een partitie van de Event Hub-stream
x-opt-publisher tekenreeks De naam van de uitgever, als het bericht is verzonden naar een uitgeverseindpunt
x-opt-partition-key tekenreeks De partitiesleutel van de bijbehorende partitie die de gebeurtenis heeft opgeslagen

Als u Gebeurtenissysteemeigenschappen hebt geselecteerd in de sectie Gegevensbron van de tabel, moet u de eigenschappen opnemen in het tabelschema en de toewijzing.

Voorbeelden van schematoewijzing

Voorbeeld van tabelschematoewijzing

Als uw gegevens drie kolommen bevatten (Timespan, Metricen Value) en de eigenschappen die u opneemt en x-opt-offsetzijnx-opt-enqueued-time, maakt of wijzigt u het tabelschema met behulp van deze opdracht:

    .create-merge table TestTable (TimeStamp: datetime, Metric: string, Value: int, EventHubEnqueuedTime:datetime, EventHubOffset:string)

Voorbeeld van CSV-toewijzing

Voer de volgende opdrachten uit om gegevens toe te voegen aan het begin van de record. Noteer rangtelwaarden.

    .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"}}'
    ']'

Voorbeeld van JSON-toewijzing

Gegevens worden toegevoegd met behulp van de toewijzing van systeemeigenschappen. Voer deze opdrachten uit:

    .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"}}'
    ']'

Event Hub-verbinding

Notitie

Voor de beste prestaties maakt u alle resources in dezelfde regio als het Azure Synapse Data Explorer-cluster.

Een Event Hub maken

Als u er nog geen hebt, maakt u een Event Hub. 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

  • Het aantal partities kan niet worden gewijzigd, dus u moet rekening houden met langetermijnschaal bij het instellen van het aantal partities.
  • De consumentengroep moet uniek zijn per consument. Maak een consumentengroep die is toegewezen aan Azure Synapse Data Explorer verbinding.

Gebeurtenissen verzenden

Bekijk de voorbeeld-app waarmee gegevens worden gegenereerd en verzonden naar een Event Hub.

Zie Gegevens van Event Hub opnemen in Azure Synapse Data Explorer voor een voorbeeld van het genereren van voorbeeldgegevens

Oplossing voor herstel na een geo-noodgeval instellen

Event Hub biedt een oplossing voor herstel na een geo-noodgeval . Azure Synapse Data Explorer biedt geen ondersteuning voor Alias Event Hub-naamruimten. Als u herstel na een geo-noodgeval in uw oplossing wilt implementeren, maakt u twee Event Hub-gegevensverbindingen: één voor de primaire naamruimte en één voor de secundaire naamruimte. Azure Synapse 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.

Volgende stappen