什么是更改事件流式处理(预览版)?

适用于: SQL Server 2025 (17.x) Azure SQL 数据库

本文介绍 SQL Server 2025(17.x)和 Azure SQL 数据库中引入的更改事件流式处理(CES)功能。

若要开始使用该功能,请参阅 “配置更改事件流式处理”。

注释

变更事件流目前处于预览版阶段:

在预览期间,此功能可能会更改。 有关当前可支持性,请参阅 “限制”。

概述

更改事件流式处理(CES)是一项新式数据集成功能,可将 SQL Server 数据更改直接流式传输到 Azure 事件中心 - 高吞吐量数据流式处理服务。 CES 以近乎实时的方式捕获和发布数据的增量更改至 Azure 事件中心目标。 捕获的更改包括更新、插入和删除(DML)。 数据更改的详细信息(例如架构、以前的值和新值)以 CloudEvent 的形式发送到 Azure 事件中心。 CloudEvent 序列化为 JSON(本机格式)或 Avro 二进制格式,然后流式传输到 Azure 事件中心的目标位置。

用例

使用 CES 可以:

  • 在关系数据库的基础上构建事件驱动系统,以最少的开销和简单的数据集成。
  • 跨系统同步数据。 更具体地说,在微服务之间同步数据或使分布式系统保持同步。
  • 在关系数据的基础上实现实时分析。
  • 审核和监控。 跟踪敏感数据的更改或记录特定事件。

使用事件流式处理服务(例如 Azure 事件中心)和 SQL Server 的更改事件流式处理的主要优点包括:

  • 可伸缩性:事件流式处理服务旨在处理高吞吐量,并且可以独立于数据库进行缩放。
  • 解耦:数据库和流式处理服务的下游系统实现了松散耦合,从而提高了灵活性并简化了维护。
  • 多使用者支持:Azure 事件中心允许多个使用者处理同一数据流,从而启用来自单个源的不同用例。
  • 实时集成:实现 OLTP 系统和下游系统之间的无缝集成,实现实时数据流。

使用变化事件流处理

若要使用 CES,请创建一个流式处理组,用于定义要跟踪的表以及如何访问流式处理目标。 流式处理组指定终结点、提供身份验证详细信息、定义分区(如果有),并确定要跟踪的表。配置 CES 后,流式处理组中表中的 INSERT、UPDATE 和 DELETE 命令所做的所有数据更改都作为 CloudEvents 流式传输到流式处理目标。

在 CES 的上下文中,对象是正在跟踪的表。 流式处理组定义了跟踪的所有对象(即所有表)。

若要开始使用该功能,请参阅 “配置更改事件流式处理”。 有关常见问题,请参阅 更改事件流式处理常见问题解答

使用来自 Azure 事件中心的事件流来处理更改事件

若要了解如何通过 .NET Core 控制台应用程序使用来自 Azure 事件中心的更改事件,该应用程序使用事件处理器从事件中心接收事件,请查看 快速入门:使用 .NET 发送或接收事件

Azure SQL 数据库中的 CES

CES 也适用于 Azure SQL 数据库的所有服务层(包括超大规模),但 SQL Server 和 Azure SQL 数据库之间的以下差异适用:

  • 在 Azure SQL 数据库中使用 CES 不需要预览功能数据库范围配置。
  • Azure SQL 数据库支持 CES Microsoft Entra 身份验证,而 SQL Server 仅支持密钥值身份验证和共享访问签名(SAS)身份验证。
  • Azure SQL 数据库中的 xEvent 调试当前不可用。

局限性

若要了解详细信息,请查看 CES 功能的限制