【发布时间】:2017-07-01 23:47:20
【问题描述】:
我有一个流分析作业,它使用 avro 消息的事件中心(我们称之为 RawEvents),转换/展平消息并将它们触发到单独的事件中心(我们称之为 FormattedEvents)。
RawEvents 中的每个 EventData 实例都由一个顶级 json 对象组成,该对象具有更详细的事件数组。这是一个人为的例子:
[{ "事件": [{ "dataOne": 123.0, "dataTwo": 234.0, “subEventCode”:3,“dateTimeLocal”:1482170771,“dateTimeUTC”: 1482192371 },{“dataOne”:456.0,“dataTwo”:789.0, “subEventCode”:20,“dateTimeLocal”:1482170771,“dateTimeUTC”: 1482192371 }],“messageType”:“myDeviceType-Events”,“deviceID”: “我的设备”,}]
流分析作业将结果展平并解压缩 subEventCode,这是一个位掩码。结果如下所示:
{"messagetype":"myDeviceType-Event","deviceid":"myDevice",eventid:1,"dataone":123,"datatwo":234,"subeventcode":6,"flag1":0, "flag2":1,"flag3":1,"flag4":0,"flag5":0,"flag6":0,"flag7":0,"flag8":0,"flag9":0,"flag10 ":0,"flag11":0,"flag12":0,"flag13":0,"flag14":0,"flag15":0,"flag16":0,"eventepochlocal":"2016-12-06T17 :33:11.0000000Z","eventepochutc":"2016-12-06T23:33:11.0000000Z"} {"messagetype":"myDeviceType-Event","deviceid":"myDevice",eventid:2,"dataone" :456,"datatwo":789,"subeventcode":8,"flag1":0,"flag2":0,"flag3":0,"flag4":1,"flag5":0,"flag6":0 ,"flag7":0,"flag8":0,"flag9":0,"flag10":0,"flag11":0,"flag12":0,"flag13":0,"flag14":0," flag15":0,"flag16":0,"eventepochlocal":"2016-12-06T17:33:11.0000000Z","eventepochutc":"2016-12-06T23:33:11.0000000Z"}
当我从 FormattedEvents 事件中心提取消息时,我希望看到两个 EventData 实例。我得到的是一个 EventData,在同一条消息中包含两个“扁平化”事件。这是针对 blob 存储或数据湖时的预期行为,但在针对事件中心时令人惊讶。我的期望是类似于服务总线的行为。
这是预期的行为吗?如果是这样,是否有强制行为的配置选项?
【问题讨论】:
标签: azure azure-eventhub azure-stream-analytics