在流分析工作并将它们路由到服务总线之后,事件中心中的事件会发生啥?

Posted

技术标签:

【中文标题】在流分析工作并将它们路由到服务总线之后,事件中心中的事件会发生啥?【英文标题】:What happens to events in event hub after stream analytics does it works and routes them to service bus?在流分析工作并将它们路由到服务总线之后,事件中心中的事件会发生什么? 【发布时间】:2020-09-07 17:22:24 【问题描述】:

我有以下场景:

    事件中心 (EH1) 配置了 7 天的保留策略。 生产者将事件发布到 EH1。 来自 EH1 的事件从流分析 (SA) 路由到服务总线(在 1 小时的时间窗口内执行某些计算之后),服务总线获取原始事件(作为消息)以及汇总计算。 假设在第 1 天的 24 小时内,生产者向 EH1 发布了 100 万个事件。 SA 启动并将原始事件和汇总计算(超过 1 小时的周期)路由到服务总线。 假设在第 1 天之后,接下来的 15 天没有事件推送到 EH1。

问题:

    100 万个原始事件(从第 1 天开始)会在 EH1 中保留多长时间? 这 100 万个原始事件(从第 1 天开始)在第 2 天(第 1 小时后)到第 7 天是否仍然存在(因为保留策略为 7)?或者当 SA 处理完所有这些事件后,它们会在第 1 天后消失吗?如果两者都没有,还会发生什么? 我应该在 EH1 中查看哪些指标来证明 (1) 和 (2) 的答案是什么?

【问题讨论】:

【参考方案1】:

首先,你应该先看看consumer group。

简而言之,当消费者(如任何用于从 eventthub 接收事件的应用程序或代码)读取事件时,它必须通过消费者组读取事件(我们在这里将其命名为 cg_1)-> 然后为下一个时间,你再次从cg_1读取事件,这些事件(你已经读取)将不会被再次读取。

但是如果你切换到另一个消费者组(比如你新创建一个名为cg_2的消费者组),你可以再次读取所有数据(即使数据已经从cg_1读取)。

所以对于你的问题:

#1: 由于您配置了 7 天的保留策略,因此事件(原始数据)将在 eventthub 中保留 7 天。如果事件已通过消费者组接收,则无法通过该消费者组再次接收。但是你可以使用另一个消费者组再次接收数据。

#2: 与问题 1 类似,原始事件将根据您配置的保留天数存储在 eventthub 中。

#没有这样的指标,但是你可以很容易地编写客户端代码,并创建一个新的消费者组,然后读取数据以检查它是否存在。

【讨论】:

以上是关于在流分析工作并将它们路由到服务总线之后,事件中心中的事件会发生啥?的主要内容,如果未能解决你的问题,请参考以下文章

Windows Azure 服务总线 - 一般问题

具有事件中心输入流位置的 Azure 流分析

在流分析中将时间戳拆分为单独的列,以便在 Power BI 中进行进一步筛选

使用 Azure 流分析进行简单的数据传递

如何在流分析作业 ARM 模板中指定数据库表作为输出

来自 azure template.json 中流分析作业模板的服务总线的 sharedAccessPolicyKey