如何让Azure Stream Analytics始终单次发送LineSeparated格式事件?
解决Azure Stream Analytics单次发送单个事件的方法
方法1:调整Event Hub输出的批量配置
在Azure Stream Analytics的Event Hub输出设置中,找到批量设置选项,修改以下两个参数:
- 把**最大批量大小(事件数)**设为
1 - 把**最大等待时间(秒)**设为
0
配置后,Stream Analytics会尽可能在收到单个事件时立即发送,大幅降低批量发送的概率,满足单事件输出的需求。
方法2:通过查询语句强制单事件输出
在Stream Analytics的查询中添加最小粒度的翻滚窗口,确保每个事件被单独拆分输出。示例查询:
SELECT * INTO [目标Event Hub名称] FROM [输入Event Hub名称] TIMESTAMP BY EventEnqueuedUtcTime GROUP BY TumblingWindow(millisecond, 1), *
1毫秒的窗口会将每个事件单独分配到独立窗口中,Stream Analytics会针对每个窗口输出一条事件,实现严格的单事件发送。
方法3:用唯一标识分组强制单事件处理
如果窗口方式不适用,可给每个事件生成唯一标识并按该标识分组,确保每个分组仅包含单个事件。示例查询:
SELECT * INTO [目标Event Hub名称] FROM [输入Event Hub名称] GROUP BY NewID(), *
NewID()函数会为每个事件生成唯一GUID,分组后每个分组仅对应一个事件,Stream Analytics会逐个输出这些分组结果。
内容的提问来源于stack exchange,提问作者Rodrigo Santos Barbosa
相关产品推荐
相关产品推荐

