Поделиться через


Сжатие журналов в Azure Event Hubs

Сжатие журналов — это способ хранения данных в Центрах событий с помощью хранения ключа события. По умолчанию каждый концентратора событий или тема Kafka создается с временным хранением или политикой удаления, при которой события удаляются после истечения срока хранения. Вместо использования грубого механизма хранения на основе времени, можно применять механизм, основанный на ключах событий, при котором Event Hubs сохраняет последнее известное значение для каждого ключа события в концентраторе событий или в Kafka-топике.

Примечание.

Функция сжатия журналов не поддерживается на базовом уровне.

Как показано на следующем рисунке, журнал событий (секции концентратора событий) может содержать несколько событий с одним ключом. Если вы используете компактный концентратор событий, служба Центров событий заботится о очистке старых событий и сохранении последних событий заданного ключа события.

Схема, показывающая, как тема сжимается.

Ключ сжатия

Ключ партиционирования, заданный для каждого события, используется в качестве ключа сжатия.

Надгробия

Клиентское приложение может пометить существующие события концентратора событий для удаления во время задания сжатия. Эти маркеры известны как Томбстоуны. Клиентские приложения задают нагруженные камни, отправляя новое событие с существующим ключом и полезными null данными события.

Как работает сжатие журналов

Вы можете включить сжатие журналов на каждом уровне концентратора событий или раздела Kafka. Вы можете получать события в сжатой сущности из любого поддерживаемого протокола. Служба Azure Event Hubs выполняет задание сжатия для каждого концентрированного концентратора событий. Задание сжатия очищает каждый журнал секций концентратора событий, сохраняя только последнее событие заданного ключа события.

Схема, показывающая, как работает сжатие журналов.

В любое время журнал событий сжатого концентратора событий может иметь чистую часть и грязную часть. Чистая часть содержит события, которые уплотнены заданием компактации, а грязная часть состоит из событий, которые еще не были уплотнены.

Служба Центров событий управляет выполнением задания сжатия, и пользователь не может управлять им. Поэтому служба Центров событий определяет, когда следует начать сжатие и как быстро она сжимает заданный компактный концентратор событий.

Примечание.

Центры событий выполняют сжатие для устранения полезных данных событий с теми же ключами, но этот процесс запускается непредсказуемо, что может привести к наличию нескольких полезных данных событий с одинаковыми ключами между запусками задач по сжатию.

Гарантии сжатия

Функция сжатия журналов центров событий обеспечивает следующую гарантию:

  • Порядок сообщений всегда поддерживается на уровне ключа и раздела. Задание сжатия не изменяет порядок сообщений, но просто удаляет старые события одного и того же ключа.
  • Порядковый номер и смещение сообщения никогда не изменяются.
  • Любой потребитель, начинающий с начала журнала событий, видит по крайней мере окончательное состояние всех событий в том порядке, в котором они были написаны.
  • Потребители по-прежнему могут видеть события, помеченные как удаленные в течение времени, определенного временем хранения Tombstone (часы).

Варианты использования сжатия журналов

Сжатие журналов может быть полезным в сценариях, в которых выполняется потоковая передача одного набора обновляемых событий. Так как сжатые центры событий сохраняют только последние события, пользователям не нужно беспокоиться о росте хранилища событий. Поэтому сжатие журналов обычно используется в таких сценариях, как запись измененных данных (CDC), обслуживание событий в таблицах для потоковой обработки приложений и кэширования событий.

Квоты и ограничения

Лимит Базовый Стандарт Премиум Преданные
Размер сжатого концентратора событий Не применимо 1 ГБ на секцию 250 ГБ на секцию 250 ГБ на секцию

Дополнительные сведения о квотах и ограничениях см. в разделе "Квоты и ограничения Центров событий".

Следующие шаги

Инструкции по использованию сжатия журналов в Центрах событий см. в разделе "Использование сжатия журналов"