Azure 事件中樞的記錄壓縮
記錄壓縮是使用事件索引鍵型保留在事件中樞中保留資料的一種方式。 根據預設,每個事件中樞/Kafka 主題都是使用以時間為基礎的保留或刪除清除原則來建立,其中事件會在保留時間到期時予以清除。 您可以使用事件索引鍵型保留機制,而非使用廣泛以時間為基礎的保留機制,其中事件中樞會針對事件中樞或 Kafka 主題的每個事件索引鍵重新定型最後已知值。
注意
基本層中不支援記錄壓縮功能。
如下圖所示,(事件中樞分割區的) 事件記錄檔可能會有多個具有相同索引鍵的事件。 如果您使用壓縮的事件中樞,則事件中樞服務會負責清除舊事件,並只保留指定事件索引鍵的最新事件。
壓縮索引鍵
您使用每個事件設定的分割區索引鍵皆會做為壓縮索引鍵。
標記 (Tombstones)
用戶端應用程式可以將事件中樞的現有事件標示為在壓縮作業期間刪除。 這些標記稱為標記 (Tombstones)。 用戶端應用程式會傳送具有現有索引鍵和 null
事件裝載的新事件,來設定標記 (Tombstones)。
記錄壓縮的運作方式
您可以在每個事件中樞/Kafka 主題層級啟用記錄壓縮。 您可以從任何支援通訊協定擷取事件至壓縮的文章。 Azure 事件中樞服務會針對每個壓縮的事件中樞執行壓縮作業。 壓縮作業只保留指定事件索引鍵的最新事件,藉以清除每個事件中樞分割區記錄。
在任何指定時間,壓縮事件中樞的事件記錄檔可以有清除部分,中途部分。 清除部分包含壓縮作業所壓縮的事件,而中途部分則包含尚未壓縮的事件。
事件中樞服務會管理壓縮作業的執行,使用者並無法控制。 因此,事件中樞服務會決定何時開始壓縮,以及壓縮指定壓縮事件中樞的速度。
壓縮保證
事件中樞的記錄壓縮功能提供下列保證:
- 訊息的順序一律會保留在索引鍵和分割區層級。 壓縮作業不會改變訊息的順序,而只會捨棄相同索引鍵的舊事件。
- 訊息的順序和位移一律不會變更。
- 從事件記錄檔開頭的任何取用者進度,都會以寫入事件的順序,至少看到所有事件的最終狀態。
- 取用者仍可以看到標示為標記保留時間 (小時) 定義時間所要刪除的事件。
記錄壓縮使用案例
記錄壓縮在串流一組相同可更新事件的案例中很有用。 由於壓縮的事件中樞只會保留最新的事件,使用者不必擔心事件記憶體成長。 因此,記錄壓縮通常用於異動資料擷取 (CDC) 等案例中,維護資料表中的事件以進行資料流處理應用程式和事件快取。
配額和限制
限制 | 基本 | Standard | Premium | 專用 |
---|---|---|---|---|
壓縮事件中樞的大小 | N/A | 每個分割區 1 GB | 每個分割區 250 GB | 每個分割區 250 GB |
如需了解其他配額和限制,請參閱事件中樞配額和限制。
下一步
如需如何在事件中樞使用記錄壓縮的指示,請參閱使用記錄壓縮