Protokollkomprimierung in Azure Event Hubs

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

Das Protokollkomprimierungsfeature wird im Basic-Tarif nicht unterstützt.

Wie in der folgenden Abbildung gezeigt, kann ein Ereignisprotokoll (einer Event Hub-Partition) mehrere Ereignisse mit demselben Schlüssel aufweisen. Wenn Sie einen komprimierten Event Hub verwenden, sorgt der Event Hubs-Dienst für die Bereinigung alter Ereignisse, sodass nur die neuesten Ereignisse eines bestimmten Ereignisschlüssels beibehalten werden.

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. Clientanwendungen legen Tombstones fest, 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.

Der Event Hubs-Dienst verwaltet die Ausführung des Komprimierungsauftrags, der Benutzer kann diesen Vorgang nicht beeinflussen. 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 sieht fortschreitend vom Anfang des Ereignisprotokolls zumindest den Endzustand aller Ereignisse in der Reihenfolge, in der sie geschrieben wurden.
  • Consumer können weiterhin Ereignisse sehen, die für die durch die Tombstone-Aufbewahrungszeit in Stunden definierte Zeit zum Löschen markiert sind.

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.

Kontingente und Grenzwerte

Begrenzung Basic Standard Premium Dediziert
Größe des komprimierten Event Hub 1 GB pro Partition 250 GB pro Partition 250 GB pro Partition

Weitere Informationen zu Kontingenten und Grenzwerten finden Sie unter Kontingente und Grenzwerte in Event Hubs.

Nächste Schritte

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