共用方式為


什麼是變更事件串流(預覽)?

適用於: SQL Server 2025 (17.x) Azure SQL Database

本文介紹了 SQL Server 2025(17.x)及 Azure SQL 資料庫引入的變更事件串流(CES)功能。

若要開始使用此功能,請參閱 設定變更事件串流

備註

變更活動串流目前正處於 預覽 階段:

在預覽期間,此功能可能會變更。 如需目前的可支援性,請參閱 限制

概觀

變更事件串流(CES)是一種現代資料整合功能,能將 SQL Server 的資料變更直接串流至 Azure Event Hubs ——一項高吞吐量的資料串流服務。 CES 會以近乎即時的方式擷取和發佈增量資料變更至 Azure 事件中樞目標。 擷取的變更包括更新、插入和刪除 (DML)。 數據變更的詳細數據(例如架構、先前的值和新值)會以 CloudEvent 的形式傳送至 Azure 事件中樞。 CloudEvent 會序列化為 JSON(原生)或 Avro 二進位制,然後串流至 Azure 事件中樞。

使用案例

使用 CES 來:

  • 在關係資料庫之上建置事件驅動系統,以最少的額外負荷和簡單的數據整合。
  • 跨系統同步處理數據。 更具體來說,在微服務之間同步處理數據,或讓分散式系統保持同步。
  • 在關係型數據之上實作即時分析。
  • 稽核和監視。 追蹤敏感數據的變更或記錄特定事件。

使用像 Azure Event Hubs 這類事件串流服務,以及 SQL Server 的變更事件串流,主要優點有:

  • 可擴展性:事件串流服務被設計來處理高吞吐量,並且可以獨立於資料庫進行擴展。
  • 解耦:資料庫和串流服務下游的系統是鬆散耦合的,這使得系統具有更大的彈性和更容易維護。
  • 多用戶支援:Azure 事件中樞允許多個用戶處理相同的數據流,從而從單一來源啟用不同的使用案例。
  • 即時整合:啟用 OLTP 系統與下游系統之間的無縫整合,以進行實時數據流。

使用變更事件流式傳輸

若要使用 CES,請建立一個串流群組,以定義您要追蹤的數據表,以及如何存取串流目的地。 串流群組會指定端點、提供驗證詳細數據、定義數據分割(如果有的話),並決定要追蹤的數據表。設定 CES 之後,串流群組中數據表內 INSERT、UPDATE 和 DELETE 命令所做的所有資料變更都會當做 CloudEvent 串流至串流目的地。

在 CES 的情境中,物件是正在追蹤的表格。 串流群組會定義追蹤的所有物件(也就是數據表)。

若要開始使用此功能,請參閱 設定變更事件串流。 如需常見問題,請參閱 變更事件串流常見問題

從 Azure 事件中樞取用變更事件串流事件

想了解如何用 .NET Core 主控台應用程式從 Azure Event Hubs 接收事件,該主控台應用程式使用事件處理器接收事件,請參考《 快速入門:使用 .NET 發送或接收事件》。

CES in Azure SQL Database

CES 也適用於 Azure SQL 資料庫的所有服務層級(包括超大規模),但 SQL Server 與 Azure SQL Database 之間有以下差異:

  • 在 Azure SQL 資料庫中使用 CES 並非必須具備預覽功能資料庫範圍設定。
  • Azure SQL 資料庫支援 Microsoft Entra 認證以支援 CES,而 SQL Server 僅支援金鑰值驗證及共享存取簽章(SAS)認證。
  • Azure SQL Database 中的 xEvent 調試目前無法使用。

局限性

若要深入瞭解,請檢閱 CES 功能的限制