我是天蓝色分析的新手。我使用分析来获取用户的反馈。大约有50个事件我会在一秒钟内发送到azure,我试图从两个输入中获得合并结果,但无法获得有效输出。我的问题是在sql查询输出。
现在我正在发送输入信息。
Recommandations:
{"appId":"1","sequentialId":"28","ItemId":"1589018","similaristyValue":"0.104257207028537","orderId":"0"}
ShownLog:
{"appId":"1","sequentialId":"28","ItemId":"1589018"}
我需要将它们与sequentialId和ItemId连接起来,并计算两个有序顺序之间的差异。
例如:我发送10个推荐事件,之后(如2秒后)发送3个ShownLog事件。所以我需要做的是我必须获得前3的总和(因为我发送3个显示的事件事件)事件的相似的名字来自“推荐”中的“orderid”。我还需要从“ShownLog”中获得相似值的总和。最后我需要一个输入(对于每个顺序ID):
sequentialID差异 168 1.21
到目前为止我所做的是。我保存所有输入我的azure sql并且我设法编写了我想要的sql。您可以找到它的mssql查询:
declare @sumofSimValue float;
declare @totalItemCount int;
declare @seqId float;
select
@sumofSimValue = sum(b.[similarityValue]),
@totalItemCount = count(*),
@seqId = a.sequentialId
from EventHubShownLog a inner join EventHubResult b on a.sequentialId=b.sequentialId and a.ItemId=b.ItemId group by a.sequentialId
--select @sumofSimValue,@totalItemCount,@seqId
SELECT @seqId, SUM([similarityValue])-@sumofSimValue
FROM (
SELECT TOP(@totalItemCount) [similarityValue]
FROM [EventHubResult] where sequentialId=@seqId order by orderId
) AS T
但它在分析中给出了很多错误。它也缺乏天蓝色分析的逻辑。我希望我能说出这个问题。
你能告诉我怎样才能为我的系统做这样的工作?我如何使用时间窗口或如何正确加入它们?
答案 0 :(得分:0)
对于每个显示的日志,您必须选择相似度值的总和。这是意图吗?为什么不加入并选择总和呢?它只会选择与显示日志一样多的行。
要确定的一件事是推荐事件和显示的日志事件之间的最大时间差异,您可以使用Azure流分析加入https://msdn.microsoft.com/en-us/library/azure/dn835026.aspx