Azure Stream Analytics至Event Hub输出批处理大小配置咨询
Azure Stream Analytics 向 Event Hub 输出的批处理配置详解
刚好之前研究过这个问题,给你梳理清楚:
批处理大小能不能手动配置?
跟Table Storage、Azure Function这些输出类型不一样,ASA目前给Event Hub的输出没有在门户里提供直接的批处理大小配置项。不过ASA的批处理逻辑是自动适配Event Hub约束的——它会把多条事件打包,直到接近Event Hub单条消息256KB的上限,或者达到了默认的时间窗口,才会发送这条批量消息。能不能彻底关闭批处理,让每条事件单独发(batchsize=1)?
官方没给直接的开关,但有几个间接办法可以实现类似效果:- 确保你每条输出的事件本身大小就接近256KB,这样ASA根本没法把多个事件打包成一条消息;
- 要是能接受额外的组件开销,可以把输出先转到Azure Function,在Function里控制每条事件单独发送到Event Hub,相当于绕开ASA直接输出的批处理逻辑。
批处理的核心约束是什么?
不管ASA怎么打包,最终单条Event Hub消息绝对不能超过256KB的硬性限制,这是Event Hub本身的规则,ASA的批处理逻辑会严格遵守这个上限。
额外提一句:如果你在意批处理带来的延迟,可以去ASA输出配置的「高级」选项里调整输出延迟设置,把延迟时间调短,ASA就会更频繁地发送小批量事件,间接减少单条消息里的事件数量。
内容的提问来源于stack exchange,提问作者silent
相关产品推荐
相关产品推荐

