为复杂的输出连接输入

Posted

技术标签:

【中文标题】为复杂的输出连接输入【英文标题】:Joining inputs for a complicated output 【发布时间】:2016-08-04 06:56:02 【问题描述】:

我是天蓝色分析的新手。我使用分析来获取用户的反馈。我在一秒钟内发送到 azure 大约有 50 个事件,我试图从两个输入中获得组合结果,但无法获得工作输出。我的问题是在 sql 查询中输出。

现在我正在发送输入。

建议:

"appId":"1","sequentialId":"28","ItemId":"1589018","similaristyValue":"0.104257207028537","orderId":"0"

显示日志:

"appId":"1","sequentialId":"28","ItemId":"1589018"

我需要将它们与 sequenceId 和 ItemId 连接并计算两个有序序列之间的差异。

例如:我发送 10 个 Recommandations 事件,之后(例如 2 秒后)我发送 3 个 ShownLog 事件。所以我需要做的是我必须得到前 3 个的总和(因为我发送了 3 个显示日志事件)事件的相似性值,由“recommandations”中的“orderid”排序。我还需要从“ShownLog”中获取similarityValues 的总和。最后我需要一个输入(对于每个顺序 ID):

sequentialID 差异 168 1.21

到目前为止,我所做的是。我将所有输入保存在我的天蓝色 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

但它会在分析中产生很多错误。它也缺乏天蓝色分析的逻辑。我希望我能说出问题所在。

你能告诉我如何为我的系统做这样的工作吗?如何使用时间窗口或如何正确加入?

【问题讨论】:

【参考方案1】:

对于每个显示的日志,您必须选择相似值的总和。是这个意图吗?为什么不直接加入并选择总和?它只会选择与显示的日志一样多的行。

要确定的一件事是推荐事件和显示的日志事件之间的最大时间差,您可以使用 Azure 流分析加入,https://msdn.microsoft.com/en-us/library/azure/dn835026.aspx

【讨论】:

以上是关于为复杂的输出连接输入的主要内容,如果未能解决你的问题,请参考以下文章

最大整数

NodeJs原理 - Stream

P1107 最大整数

字串的连接最长路径查找

linux中重定向学习总结

luogu P1107 最大整数