如何查看Azure事件中心的最新数据? 。净

时间:2019-04-28 13:18:29

标签: .net azure azure-eventhub

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

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

有满足上述需求的方法吗?

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

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

1 个答案:

答案 0 :(得分:0)

这不是为事件中心设计的方案。它旨在处理大规模的传入数据,典型的用例是尽快处理这些数据。

在您的情况下,您希望每隔一小时一次又一次地处理大部分相同的数据。 EventProcessrHost旨在在后台进程中连续运行。

将传入数据存储到blob存储中的格式可能更容易得多,该格式包括小时部分,例如container \ date \ time \ blob1.json(\ container \ 2019-12-22 \ 07 \ blob1.json)并有一个计划触发了azure function,该计划根据触发的时间知道process的斑点。

  

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

是的,EventProcessorHost将在新事件上运行。使用检查点的概念一次处理事件。您可以使用偏移来倒流,但是我认为我的选择要容易得多。

Azure Stream Analytics是另一种可能对您有用并且可以与事件中心配合使用的技术,它允许您定义基于时间的窗口,但是24小时可能对此有点麻烦,对此不确定。 / p>