流分析从历史记录中获取平均一年的时间

时间:2019-01-24 10:49:40

标签: stream azure-stream-analytics stream-analytics

我有流分析工作 输入:

1)“ InputStreamCSV”-链接到事件中心并接收数据。 InputStreamHistory
2)“ InputStreamHistory”-输入流链接到BlobStorage。 InputStreamCSV

输出:
1)“ AlertOUT”-链接到表存储,并将警报事件作为表中的行插入

我想计算2018年所有交易的平均金额(一个数字-5,2),并将其与2019年即将到来的交易进行比较:
如果新交易金额大于平均金额,则将该交易放入“ AlertOUT”输出中。

我将平均值计算为:

SELECT AVG(Amount) AS TresholdAmount
FROM InputStreamHistory 
group by TumblingWindow(minute, 1)

将新交易接收为:

SELECT * INTO AlertOUT FROM InputStreamCSV TIMESTAMP BY EventTime

如何结合这两个查询以检查新交易金额是否大于去年的平均交易金额?

2 个答案:

答案 0 :(得分:1)

请在ASA sql中使用JOIN运算符,您可以参考下面的sql尝试合并两个查询sql。

  "timestamp": 1548408353973,
  "status": 500,
  "error": "Internal Server Error",
  "exception": "org.thymeleaf.exceptions.TemplateInputException",
  "message": "Error resolving template \"addImage\", template might not 
  exist or might not be accessible by any of the configured Template 
  Resolvers",
  "path": "/addImage"

如果历史记录数据稳定,您还可以以reference data的身份加入历史记录数据。请参考官方sample

答案 1 :(得分:0)

如果将去年的平均值与当前数据流进行比较,最好使用参考数据。使用asa本身或与存储blob不同的查询引擎来计算2018年的平均值。之后,您可以将blob用作asa查询中的参考数据-它会替换示例中的平均计算。

之后,您可以与myHandler进行参考数据联接以产生警报。

即使您想偶尔更新一次平均值,上述模式也可以使用。根据刷新频率,您可以将另一个作业或批处理分析解决方案使用。