如何查看Azure Event Hub中的最新数据? 。净

问题描述 投票:0回答:1

我有一个关于如何通过.NET应用程序从Event Hub查看最新数据的问题。我们的要求是每小时不断读取/获取Event Hub中的最后1天数据。例如,在6点钟,我想从昨天的6点到今天的6点获取数据。然后,在7点钟,我想从昨天的7点到今天的7点得到数据。

我曾尝试在tutorial之后接收来自Azure事件中心的事件。但它并不能满足我的要求。我对这个接收事件过程的理解是,每当有一个新事件进入事件中心时,将设置一个信号并触发EventProcessorHost class以获取事件数据。 (我怀疑我的理解是否正确。)但是,在这种方法中,事件数据只能被访问一次。它无法在下一个接收操作中访问,因为它在事件中心中消失。

有没有一种方法可以达到上述要求?

同时,我也想知道如何在接收事件过程中使用“offset”。我知道它的概念,但更好的是有一个如何使用它的演示。

如果您有任何建议,我将不胜感激。 :)

.net azure azure-eventhub
1个回答
0
投票

这不是设计事件中心的场景。它旨在大规模处理传入的数据,典型的用例是尽可能快地处理数据。

在您的情况下,您希望一次又一次地处理大致相同的数据,每隔一小时。 EventProcessrHost意味着在后台进程中持续运行。

以包含小时组件的格式将传入数据存储到blob存储可能要容易得多,例如container \ date \ time \ blob1.json(\ container \ 2019-12-22 \ 07 \ blob1.json)并且具有,例如,一个计划触发了azure function,而不是根据触发时间知道process的blob。

我对这个接收事件过程的理解是,每当有一个新事件进入事件中心时,将建立一个信号并触发EventProcessorHost类以获取事件数据。 (我怀疑我的理解是否正确。)但是,在这种方法中,事件数据只能被访问一次。它无法在下一个接收操作中访问,因为它在事件中心中消失。

这是正确的,EventProcessorHost将在新事件上运行。使用检查点的概念处理事件一次。您可以使用偏移来回放流,但我认为我的替代方案更容易。

另一项可能对您有用且与事件中心配合良好的技术是Azure Stream Analytics,它允许您定义基于时间的窗口,但24小时可能对此有点太多,不确定。

© www.soinside.com 2019 - 2024. All rights reserved.