Freigeben über


Event Hubs-Datenverbindung (Vorschau)

Von Bedeutung

Azure Synapse Analytics Data Explorer (Vorschau) wird am 7. Oktober 2025 eingestellt. Nach diesem Datum werden Arbeitslasten, die im Synapse-Daten-Explorer ausgeführt werden, gelöscht, und die zugehörigen Anwendungsdaten gehen verloren. Es wird dringend empfohlen , zu Eventhouse in Microsoft Fabric zu migrieren.

Das Microsoft Cloud Migration Factory (CMF)-Programm wurde entwickelt, um Kunden bei der Migration zu Fabric zu unterstützen. Das Programm bietet dem Kunden kostenlos praktische Tastaturressourcen. Diese Ressourcen werden für einen Zeitraum von 6-8 Wochen mit einem vordefinierten und vereinbarten Umfang zugewiesen. Kunden nominierungen werden vom Microsoft-Kontoteam oder direkt durch Senden einer Anfrage zur Hilfe an das CMF-Team akzeptiert.

Bei Azure Event Hubs handelt es sich um eine Big Data-Streamingplattform und einen Ereigniserfassungsdienst. Azure Synapse Data Explorer bietet eine kontinuierliche Erfassung von vom Kunden verwalteten Event Hubs.

Die Event Hubs-Ingestionspipeline überträgt Ereignisse in mehreren Schritten an den Azure Synapse-Daten-Explorer. Sie erstellen zuerst einen Event Hubs im Azure-Portal. Anschließend erstellen Sie eine Zieltabelle im Azure Synapse-Daten-Explorer, in die die Daten in einem bestimmten Format aufgenommen werden, mithilfe der angegebenen Aufnahmeeigenschaften. Die Event Hubs-Verbindung muss das Routing von Ereignissen kennen. Daten werden gemäß der Zuordnung der Ereignissystemeigenschaften mit ausgewählten Eigenschaften eingebettet. Erstellen Sie eine Verbindung zu Event Hubs, um ein Event Hub zu erstellen und Ereignisse zu senden. Dieser Prozess kann über das Azure-Portal, programmgesteuert mit C# oder Python oder mit der Azure Resource Manager-Vorlage verwaltet werden.

Allgemeine Informationen zur Datenaufnahme im Azure Synapse-Daten-Explorer finden Sie in der Übersicht über die Datenaufnahme in Azure Synapse-Daten-Explorer.

Datenformat

  • Daten werden in Form von EventData-Objekten aus Event Hubs gelesen.

  • Siehe Unterstützte Formate.

    Hinweis

    Event Hub unterstützt das .raw Format nicht.

  • Daten können mit dem GZip-Komprimierungsalgorithmus komprimiert werden. Geben Sie Compression in Aufnahmeeigenschaften an.

    • Die Datenkomprimierung wird für komprimierte Formate (Avro, Parkett, ORC) nicht unterstützt.
    • Benutzerdefinierte Codierungs- und eingebettete Systemeigenschaften werden für komprimierte Daten nicht unterstützt.

Aufnahmeeigenschaften

Erfassungseigenschaften weisen den Erfassungsprozess an, wohin die Daten weitergeleitet und wie sie verarbeitet werden sollen. Sie können Erfassungseigenschaften der Ereigniserfassung mithilfe von EventData.Properties angeben. Sie können die folgenden Eigenschaften festlegen:

Eigentum Description
Table Name (Groß-/Kleinschreibung beachten) der vorhandenen Zieltabelle. Überschreibt das Table-Element, das im Bereich Data Connection festgelegt ist.
Format Datenformat. Überschreibt das Data format-Element, das im Bereich Data Connection festgelegt ist.
IngestionMappingReference Name der zu verwendenden vorhandenen Erfassungszuordnung. Überschreibt das Column mapping-Element, das im Bereich Data Connection festgelegt ist.
Komprimierung Datenkomprimierung, None (Standardeinstellung) oder GZip Komprimierung.
Codierung Datencodierung. Die Standardeinstellung ist UTF8. Alle von .NET unterstützten Codierungen können verwendet werden.
Stichwörter Eine Liste der Tags, die den erfassten Daten zugeordnet werden sollen (formatiert als JSON-Arrayzeichenfolge). Die Verwendung von Tags hat Auswirkungen auf die Leistung.

Hinweis

Nur Ereignisse, die nach dem Erstellen der Datenverbindung in die Warteschlange eingereiht werden, werden erfasst.

Ereignisrouting

Wenn Sie eine Event Hubs-Verbindung mit dem Azure Synapse Data Explorer-Cluster einrichten, geben Sie Zieltabelleneigenschaften an (Tabellenname, Datenformat, Komprimierung und Zuordnung). Das Standardrouting für Ihre Daten wird auch als static routing. Sie können auch Zieltabelleneigenschaften für jedes Ereignis mithilfe von Ereigniseigenschaften angeben. Die Verbindung leitet die Daten dynamisch gemäß der EventData.Properties weiter und überschreibt dabei die statischen Eigenschaften für dieses Ereignis.

Legen Sie im folgenden Beispiel Event Hubs-Details fest, und senden Sie Wettermetrikdaten an die Tabelle WeatherMetrics. Die Daten sind im json Format. mapping1 ist in der Tabelle WeatherMetricsvordefiniert.

Warnung

In diesem Beispiel wird die Verbindungszeichenfolgenauthentifizierung verwendet, um eine Verbindung mit Event Hubs herzustellen, um die Einfachheit des Beispiels zu gewährleisten. Das hartcodieren einer Verbindungszeichenfolge in Ihr Skript erfordert jedoch ein sehr hohes Vertrauen in die Anwendung und birgt Sicherheitsrisiken.

Verwenden Sie für langfristige, sichere Lösungen eine der folgenden Optionen:

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();

Zuordnung von Ereignissystemeigenschaften

Systemeigenschaften speichern Eigenschaften, die vom Event Hubs-Dienst zum Zeitpunkt des Einreihens eines Ereignisses festgelegt werden. Die Azure Synapse Data Explorer Event Hubs-Verbindung bettet die ausgewählten Eigenschaften in die Datenlandung in Ihrer Tabelle ein.

Hinweis

  • Systemeigenschaften werden für json und Tabellenformate (csv, tsv usw.), aber nicht für komprimierte Daten unterstützt. Bei Verwendung eines nicht unterstützten Formats werden die Daten weiterhin erfasst, die Eigenschaften werden jedoch ignoriert.
  • Bei Tabellendaten werden Systemeigenschaften nur für Ereignismeldungen mit einem Datensatz unterstützt.
  • Bei JSON-Daten werden Systemeigenschaften auch für Ereignismeldungen mit mehreren Datensätzen unterstützt. In solchen Fällen werden die Systemeigenschaften nur dem ersten Datensatz der Ereignismeldung hinzugefügt.
  • Für die csv-Zuordnung werden Eigenschaften in der in der Tabelle csv aufgeführten Reihenfolge am Anfang des Datensatzes hinzugefügt.
  • Für die json-Zuordnung werden Eigenschaften entsprechend den Eigenschaftsnamen in der Tabelle Systemeigenschaften hinzugefügt.

Systemeigenschaften

Event Hubs macht die folgenden Systemeigenschaften verfügbar:

Eigentum Datentyp Description
x-opt-enqueued-time Datum/Uhrzeit UTC-Zeit, zu der das Ereignis in die Warteschlange eingereiht wurde.
x-opt-sequence-number long Die logische Sequenznummer des Ereignisses innerhalb des Partitionsdatenstroms der Event Hubs
x-opt-offset Schnur Der Offset des Ereignisses im Event Hubs-Partitionsdatenstrom. Der Offsetbezeichner ist innerhalb einer Partition des Event Hubs-Datenstroms eindeutig.
x-opt-Publisher Schnur Der Name des Herausgebers, wenn die Nachricht an einen Herausgeberendpunkt gesendet wurde.
x-opt-partition-key Schnur Der Partitionsschlüssel der entsprechenden Partition, in der das Ereignis gespeichert wurde.

Wenn Sie Ereignissystemeigenschaften im Abschnitt Datenquelle der Tabelle ausgewählt haben, müssen Sie die Eigenschaften in das Tabellenschema und die Zuordnung einschließen.

Beispiele für die Schemazuordnung

Beispiel für die Tabellenschemazuordnung

Wenn Ihre Daten drei Spalten (Timespan, Metric und Value) enthalten und die Eigenschaften, die Sie einschließen, x-opt-enqueued-time und x-opt-offset lauten, erstellen oder ändern Sie das Tabellenschema mit dem folgenden Befehl:

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

Beispiel für eine CSV-Zuordnung

Führen Sie die folgenden Befehle aus, um am Anfang des Datensatzes Daten hinzuzufügen. Beachten Sie die Ordinalwerte.

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

Beispiel für eine JSON-Zuordnung

Daten werden mithilfe der Systemeigenschaftenzuordnung hinzugefügt. Führen Sie diese Befehle aus:

    .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 Hubs-Verbindung

Hinweis

Um eine optimale Leistung zu erzielen, erstellen Sie alle Ressourcen in derselben Region wie der Azure Synapse-Daten-Explorer-Cluster.

Event Hubs erstellen

Wenn Sie noch keines haben, erstellen Sie einen Event Hubs. Das Herstellen einer Verbindung mit Event Hubs kann über das Azure-Portal, programmgesteuert mit C# oder Python oder mit der Azure Resource Manager-Vorlage verwaltet werden.

Hinweis

  • Die Partitionsanzahl kann nicht geändert werden, daher sollten Sie beim Festlegen der Partitionsanzahl eine langfristige Skalierung in Betracht ziehen.
  • Die Consumergruppe muss pro Consumer eindeutig sein. Erstellen Sie eine Verbrauchergruppe, die der Azure Synapse-Daten-Explorer-Verbindung zugeordnet ist.

Senden von Ereignissen

Sehen Sie sich die Beispiel-App an, die Daten generiert und an einen Event Hub sendet.

Ein Beispiel zum Generieren von Beispieldaten finden Sie unter "Aufnehmen von Daten aus Event Hubs" im Azure Synapse-Daten-Explorer

Einrichten einer Lösung für die georedundante Notfallwiederherstellung

Event Hubs bietet eine Lösung für die Geo-Notfallwiederherstellung . Der Azure Synapse-Daten-Explorer unterstützt Alias keine Event Hubs-Namespaces. Um die Geo-Notfallwiederherstellung in Ihrer Lösung zu implementieren, erstellen Sie zwei Event Hubs-Datenverbindungen: eine für den primären Namespace und eine für den sekundären Namespace. Der Azure Synapse-Daten-Explorer überwacht beide Event Hubs-Verbindungen.

Hinweis

Es liegt in der Verantwortung des Benutzers, ein Failover vom primären Namespace auf den sekundären Namespace zu implementieren.

Nächste Schritte