我在Azure Cloud中有一个事件中心,它接收我有时间戳值和其他参数的消息。 使用命令
将时间戳与流分析对齐TIMESTAMP AS [TimeStamp]
这是Stream Analytics查询(输入是事件中心,本例中的输出是blob)
SELECT
DateAdd(minute, -1, System.Timestamp) as FromTimestamp, System.Timestamp as ToTimestamp,
[MachineType], [MachineNumber], [Part], [PartNumber], [ValueKind], AVG(Value) AS AverageValue
INTO
[blob-avg]
FROM
[input]
TIMESTAMP BY [TimeStamp]
WHERE [ValueKind]='RPM' OR [ValueKind]='CUR' OR [ValueKind]='POW'
GROUP BY [MachineType], [MachineNumber], [Part], [PartNumber], [ValueKind], SlidingWindow(minute, 1)
我认为邮件的时间戳会被视为比较的时间戳,但是如何扫描? 在Utc时间?让我说,在消息中我有一个时间戳12:00(GMT + 2),UTC现在是10.00 翻滚是否考虑到2小时前到达的数据而不是实际数据? (在时间戳10:00(GMT + 2))(实际上在我看来是这样的)。
如果邮件延迟超过2小时,会附加什么?让我说一个消息到达有一天的延迟,翻滚会被重新调整吗?
答案 0 :(得分:1)
[Timestamp]列将转换为datetime,如果格式为GMT,则会将其考虑在内,并且可以安全地假设在进行时间相关计算时,所有内容都将转换为UTC。
Azure Stream Analytics不断从源中读取数据。迟到政策+窗口决定如何处理迟到的事件。
请看一下 https://msdn.microsoft.com/en-us/library/azure/mt674682.aspx
和
https://blogs.msdn.microsoft.com/streamanalytics/2015/05/17/out-of-order-events/
了解有关无序政策的详细信息。
对于您的具体示例,如果邮件的延迟时间超过2小时且您的延迟到达策略是丢弃事件,则事件将被删除。如果是adjust,则时间戳将调整为当前处理时间。