Protokollkomprimierung in Azure Event Hubs (Vorschau)

Protokollkomprimierung ist eine Möglichkeit, Daten in Event Hubs mithilfe der ereignisschlüsselbasierten Aufbewahrung beizubehalten. Standardmäßig wird jedes Event Hub-/Kafka-Thema mit zeitbasierter Aufbewahrung oder einer Löschbereinigungsrichtlinie erstellt, durch die Ereignisse nach Ablauf der Aufbewahrungszeit gelöscht werden. Anstelle einer gröberen zeitbasierten Aufbewahrung können Sie auch einen ereignisschlüsselbasierten Aufbewahrungsmechanismus verwenden, bei dem Event Hubs den letzten bekannten Wert für jeden Ereignisschlüssel eines Event Hub- oder Kafka-Themas beibehält.

Hinweis

  • Diese Funktion steht derzeit als Vorschau zur Verfügung.
  • Die Protokollkomprimierungsfunktion ist nur in den Tarifen Premium und Dediziert verfügbar.

Warnung

Die Verwendung der Protokollkomprimierungsfunktion ist nicht für Produktsupport über Microsoft Azure berechtigt.

Wie unten gezeigt, kann ein Ereignisprotokoll (einer Event Hub-Partition) mehrere Ereignisse mit demselben Schlüssel aufweisen. Wenn Sie einen komprimierten Event Hub verwenden, kümmert sich der Event Hubs-Dienst darum, alte Ereignisse zu bereinigen und nur die neuesten Ereignisse eines bestimmten Ereignisschlüssels beizubehalten.

Abbildung: Ein Thema wird komprimiert.

Komprimierungsschlüssel

Der Partitionsschlüssel, den Sie für jedes Ereignis festlegen, wird als Komprimierungsschlüssel verwendet.

Tombstones

Die Clientanwendung kann vorhandene Ereignisse eines Event Hubs markieren, die während des Komprimierungsauftrags gelöscht werden sollen. Diese Marker werden als Tombstones bezeichnet. Tombstones werden von den Clientanwendungen festgelegt, indem ein neues Ereignis mit einem vorhandenen Schlüssel und null-Ereignisnutzdaten gesendet wird.

Funktionsweise von Protokollkomprimierung

Sie können Protokollkomprimierung auf jeder Event Hub-/Kafka-Themaebene aktivieren. Sie können Ereignisse aus einem beliebigen Supportprotokoll in einem komprimierten Artikel erfassen. Der Azure Event Hubs-Dienst führt einen Komprimierungsauftrag für jeden komprimierten Event Hub aus. Der Komprimierungsauftrag bereinigt jedes Event Hub-Partitionsprotokoll, indem nur das neueste Ereignis eines bestimmten Ereignisschlüssels beibehalten wird.

Abbildung: Funktionsweise von Protokollkomprimierung.

Zu einem bestimmten Zeitpunkt kann das Ereignisprotokoll eines komprimierten Event Hubs einen bereinigten und einen unbereinigten Teil aufweisen. Der bereinigte Teil enthält die Ereignisse, die vom Komprimierungsauftrag komprimiert werden, während der unbereinigte Teil die Ereignisse umfasst, die noch komprimiert werden müssen.

Die Ausführung des Komprimierungsauftrags wird vom Event Hubs-Dienst verwaltet, und der Benutzer kann diesen Vorgang nicht steuern. Daher bestimmt der Event Hubs-Dienst, wann die Komprimierung gestartet werden soll und wie schnell ein bestimmter komprimierter Event Hub komprimiert wird.

Komprimierungsgarantien

Die Protokollkomprimierungsfunktion von Event Hubs bietet die folgende Garantie:

  • Die Reihenfolge der Nachrichten wird immer auf Schlüssel- und Partitionsebene beibehalten. Der Komprimierungsauftrag ändert nicht die Reihenfolge von Nachrichten, sondern verwirft lediglich die alten Ereignisse desselben Schlüssels.
  • Die Sequenznummer und der Offset einer Nachricht ändern sich nie.
  • Jeder Consumer, der am Anfang des Ereignisprotokolls beginnt, sieht zumindest den Endzustand aller Ereignisse in der Reihenfolge, in der sie geschrieben wurden.
  • Ereignisse, die der Benutzer zum Löschen markiert hat, können von Consumern während der durch die Tombstone-Aufbewahrungszeit (Stunden) definierte Zeitdauer weiterhin angezeigt werden.

Anwendungsfälle für Protokollkomprimierung

Protokollkomprimierung kann in Szenarien nützlich sein, in denen Sie denselben Satz aktualisierbarer Ereignisse streamen. Da komprimierte Event Hubs nur die neuesten Ereignisse beibehalten, müssen sich Benutzer keine Gedanken über das Wachstum des Ereignisspeichers machen. Daher wird Protokollkomprimierung häufig in Szenarien wie Change Data Capture (CDC) verwendet, die das Ereignis in Tabellen für Streamverarbeitungsanwendungen und Ereigniszwischenspeicherung beibehalten.

Nächste Schritte

Anweisungen zur Verwendung von Protokollkomprimierung in Event Hubs finden Sie unter Verwenden von Protokollkomprimierung.