sys.sp_create_event_group_stream(Transact-SQL)

适用于: SQL Server 2025 (17.x) 预览版

为 SQL Server 2025 (17.x) 预览版中引入 的更改事件流 (CES) 功能创建事件组流。

注释

更改事件流目前以 SQL Server 2025 预览版提供

Transact-SQL 语法约定

语法

sp_create_event_stream_group
    [ @stream_group_name = ] N'stream_group_name'
    , [ @destination_type = ] N'destination_type'
    , [ @destination_location = ] N'destination_location'
    [, [ @destination_credential = ] N'destination_credential' ]
    [, [ @max_message_size_kb = ] max_message_size_kb ]
    [, [ @partition_key_scheme = ] N'partition_key_scheme' ]
    [, [ @partition_key_column_name = ] N'partition_key_column_name' ]
    [, [ @encoding = ] N'encoding' ]

论据

[ @stream_group_name = ] N'stream_group_name'

指定要创建的事件流组的名称。 @stream_group_namesysname,不能 NULL

[ @destination_type = ] N'destination_type'

指定流式处理目标类型。 @destination_typesysname,不能 NULL。 可以是以下值之一: AzureEventHubsAmqpAzureEventHubsApacheKafka

[ @destination_location = ] N'destination_location'

描述 Azure 事件中心命名空间和实例名称。 @destination_locationnvarchar(4000),不能 NULL

对于 Apache Kafka 协议,请指定端口。

[ @destination_credential = ] N'destination_credential'

指定要使用的数据库作用域凭据名称。 @destination_credentialsysname,不能 NULL

[ @max_message_size_kb = ] max_message_size_kb

如果指定,则定义最大 CES 消息大小(以千字节为单位)。 @max_message_size_kb是 int 的,不能NULL。 如果消息超出指定的最大大小,则会拆分消息。 此参数是可选的。

@max_message_size_kb 具有以下特征:

  • 默认值: 256 (对应于 256 KB)
  • 允许的最小值: 128 (对应于 128 KB)
  • 允许的最大值: 1024 (对应于 1 MB)

@max_message_size_kb参数应与目标的限制保持一致。 例如,Azure 事件中心的最大消息大小是标准层和高级层的 1 MB。 若要了解详细信息,请查看 Azure 事件中心配额

[ @partition_key_scheme = ] N'partition_key_scheme'

定义分区的类型。 @partition_key_schemesysname,不能 NULL

@partition_key_scheme 可以是以下值之一:

价值 DESCRIPTION
None(默认值) 未指定分区,因此事件中心 使用轮循策略将事件分配给分区。
StreamGroup 分区由流组完成,以便流组中的所有表都流式传输到同一分区。
Table 分区由表完成,以便流组中的每个表流式传输到不同的分区。
Column 分区由列完成,以便流组中的每一列都流式传输到不同的分区。

[ @partition_key_column_name = ] N'partition_key_column_name'

定义 在@partition_key_scheme 设置为 Column@partition_key_scheme时用于分区的列。 @partition_key_column_namesysname,不能 NULL

对包含架构名称和列名的列使用由两部分构成的名称。 例如,有效值为 dbo.Addresses.

[ @encoding = ] N'encoding'

指定消息编码。 @encodingsysname,不能 NULL。 可以是以下其中一个值:

  • JSON(默认值)
  • Binary

返回代码值

0(成功)或 1(失败)。

权限

具有 CONTROL 数据库权限db_owner 数据库角色成员身份或 sysadmin 服务器角色成员身份的用户可以执行此过程。

例子

答: 使用 AMQP 协议创建流式传输到 Azure 事件中心的事件流组

EXECUTE sys.sp_create_event_stream_group
    @stream_group_name = N'myStreamGroup',
    @destination_type = N'AzureEventHubsAmqp',
    @destination_location = N'myEventHubsNamespace.servicebus.windows.net/myEventHubsInstance',
    @destination_credential = MyDatabaseScopedCredentialForCes;

B. 使用 Kafka 协议创建流式传输到 Azure 事件中心的事件流组

EXECUTE sys.sp_create_event_stream_group
    @stream_group_name = N'myStreamGroup',
    @destination_type = N'AzureEventHubsAmqp',
    @destination_location = N'myEventHubsNamespace.servicebus.windows.net:9093/myEventHubsInstance',
    @destination_credential = MyDatabaseScopedCredentialForCes;