将数据发送到Azure事件中心时,是否可以指定日期和时间?

时间:2015-06-04 14:27:10

标签: azure azure-eventhub

这是场景。我不是在处理实时数据。相反,我从我的电力公司获取过去一天电力使用情况的数据。具体来说,每天我可以在过去一天的每个小时获得每小时的#whwh。

所以,我想在第二天将这些过去的信息加载到事件中心。这可行吗?事件中心是否支持加载过去的信息,或者只关注实时流数据,而无法加载过去的数据?

我担心情况确实如此,因为我没有看到任何有关api文档的日期规范。我想证实,但是......

谢谢, 约翰

2 个答案:

答案 0 :(得分:2)

Azure Event Hub真正用于短期存储。默认情况下,您最多只能保留7天的数据。之后,将根据消息首次进入事件中心时创建的附加时间戳删除数据。因此,对于超过7天的数据,使用Azure事件中心是不切实际的。

Azure事件中心用于消息/事件管理,而不是长期存储。可能的解决方案是将Event Hub数据写入Azure SQL服务器或blob存储以进行长期存储。然后使用Azure Stream Analytics(事件处理器)将活动流与SQL Server上累积的旧数据相连接。另请注意,您可以调用此附加属性。它被称为“EventEnqueuedUtcTime”。请记住,它将在服务器时间,其时钟可能与实际测量的日期/时间不同。

至于附加日期时间。如果您将其作为JSON发送,只需将其作为键和消息值附加即可。带时间的示例消息:{“时间”:“我的UTC时间在这里”}

答案 1 :(得分:0)

此类流媒体系统并不关心特定应用程序可能希望应用于项目的时间。根据时间字段,根本没有任何处理发生,除非您的代码执行此操作。

发送的每条消息都是EventData,其中包含带有任意字节集的消息。您可以轻松地在该序列化数据结构中包含日期/时间,但EventHubs不会关心它。除了由序列号定义的分区内的插入顺序之外,没有执行排序或固定排序。虽然可以使用enqueued time,但它对于监控您处理的距离非常有用。

关于你的其他问题,我同意有关EventHubs可能不是最佳选择的评论。您当然可以每天将数据加载到其中一次,但如果它实际上只有24个数据点/天,那么它并不是真正适合的技术选择,除非它是一个系统的原型/技术演示,最终应该有一整套智能电表以合理的频率报告。 (另请注意,EventHubs最低费用为每月11美元,服务总线队列最低为10美元/月,AWS SQS最低为0分钟)