1

这是场景。我不使用实时数据。相反,我从我的电力公司获取过去一天用电量的数据。具体来说,每天我都可以在过去一天的时钟上获得每小时的千瓦时数。

因此,我想每天将这些过去的信息加载到事件中心。这是可行的吗?事件中心是否支持加载过去的信息,或者它只是永远关于实时流数据,无法加载过去的数据?

恐怕是这种情况,因为我没有在我能找到的有限 api 文档中看到任何日期规范。不过我想确认...

谢谢,约翰

4

2 回答 2

2

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

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

至于附加日期时间。如果您将其作为 JSON 发送,只需将其作为键和消息值附加即可。带有时间的示例消息:{ "Time": "My UTC Time here" }

于 2015-06-08T13:10:26.693 回答
0

这种类型的流系统不关心特定应用程序可能希望应用于项目的时间。除非您的代码执行此操作,否则根本不会基于时间字段进行任何处理。

发送的每条消息都是一个EventData,其中包含带有任意字节集的消息。您可以轻松地在该序列化数据结构中包含日期/时间,但 EventHubs 不会关心它。除了由序列号定义的分区内的插入顺序外,没有执行排序或固定排序。虽然排队时间可用,但它主要用于监控您的处理进度落后多远。

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

于 2015-06-05T00:36:19.283 回答