Azure Stream Analytics获取上一个输出行以加入到输入

时间:2017-06-08 20:13:34

标签: azure azure-stream-analytics

我有以下情况:

移动应用程序会生成发送到Event Hub的事件,Event Hub是Stream Analytics查询的输入流源。从那里,它们通过顺序的查询流,根据标准将流分成2个流,评估其他条件并决定是否让事件继续流经管道(如果它不是简单的话丢弃)。您可以对我们正在做的是降噪/事件过滤进行分类。基本上,如果刚刚发生A,请不要让A再次发生,除非B& C发生或X时间过去了。在查询gauntlet结束时,流再次合并并且选择""事件被传播为"选择"输出。

我的问题是,我需要能够将当前事件与先前选择的""事件(不仅仅是上一个输入事件)所以本质上我需要将输入流加入到输出流中。我已经尝试了各种方法来做到这一点,到目前为止没有一个工作,我知道其他CEP引擎支持这个概念。我的查询大多都被定义为WITH语句中的临时结果集(我的初始输入流被拉入第一个查询,后面的每个查询依赖于上面的查询)但是我看不出任何一个将我的输入连接到我的输出或将我的输入加入到链中更下方的另一个临时结果集。看来join只支持输入?

目前我正在尝试使用我真正不希望在制作中执行的操作来解决此限制,但实际上我已将一个输出定义到Azure队列,然后是由该事件触发的Azure功能唤醒并将其发布到另一个事件中心的队列,该中心被映射为recirc feed输入回到我可以加入的查询中。仍然将所有这些连接起来所以不是100%确定它会起作用但是认为这个相对常见的模式必须有更好的选择吗?

2 个答案:

答案 0 :(得分:1)

WITH语句确实是使用其他一些数据加入先前输入的正确方法。 您可能需要将其与LAG operator结合使用,以获取数据流中的上一个事件。

让我们知道它是否适合您。

谢谢,

JS - Azure流分析

答案 1 :(得分:0)

AFAIK,流分析作业支持两种不同的数据输入类型:数据流输入参考数据输入。根据我的理解,您可以利用参考数据来执行查找或与您的数据流相关联。有关更多详细信息,请参阅以下教程:

Data input types: Data stream and reference data

Configuring reference data

Tips on refreshing your reference data

Reference Data JOIN (Azure Stream Analytics)