2016-09-02 56 views
0

以下Stream AnalyticsQuery計數的事件的數量,按IP地址進行分組,在10秒的時間間隔Sliding Window流分析事件集線器輸出

Select 
    Min(Time) as FirstHit, 
    Max(Time) as LastHit, 
    Count(*) as Total, 
    IPAddress 
From 
    Input Partition By PartitionId TimeStamp By Time 
Group By 
    SlidingWindow(second, 10), IPAddress, PartitionId 
Having 
    Total >= 10 

所得聚合輸出到Event Hub

以下JSON有效載荷10個簡單對象的,間隔開的精確爲1秒開,10秒窗口內被髮布​​到Stream Analytics,由上述Query進行處理:

[{ 
    "IPAddress": "192.168.0.10", 
    "Time": "2016-09-02T11:40:01" 
}, { 
    "IPAddress": "192.168.0.10", 
    "Time": "2016-09-02T11:40:02" 
}, { 
    "IPAddress": "192.168.0.10", 
    "Time": "2016-09-02T11:40:03" 
}, { 
    "IPAddress": "192.168.0.10", 
    "Time": "2016-09-02T11:40:04" 
}, { 
    "IPAddress": "192.168.0.10", 
    "Time": "2016-09-02T11:40:05" 
}, { 
    "IPAddress": "192.168.0.10", 
    "Time": "2016-09-02T11:40:06" 
}, { 
    "IPAddress": "192.168.0.10", 
    "Time": "2016-09-02T11:40:07" 
}, { 
    "IPAddress": "192.168.0.10", 
    "Time": "2016-09-02T11:40:08" 
}, { 
    "IPAddress": "192.168.0.10", 
    "Time": "2016-09-02T11:40:09" 
}, { 
    "IPAddress": "192.168.0.10", 
    "Time": "2016-09-02T11:40:10" 
}] 

兩個Stream Analytics作業和Event Hub實例被新實例化。

Stream Analytics不輸出相應的事件,儘管事件有效負載符合Query標準。

但是,在發出第二個請求後,將相同的有效負載發佈到Stream Analytics,使用正確的元數據創建輸出事件。

我的配置是否存在差異,或Stream Analytics的某種引導 - 剝離器/預熱/偏移功能導致第一個有效負載被有效忽略?

回答

1

我的猜測是,你用它按以下順序進行交互:

  1. 事件被髮送到集線器。
  2. StreamAnalytics作業從當前時間開始。
  3. 其他事件發送到集線器。

作爲EventHub流,它不具有的當前時間的概念,StreamAnalytics需要正確的偏移量開始處理事件。

如果您向我們提供更多詳情,我們可以進一步確認或進一步調查問題。

從我的評論中,從門戶網站StreamAnalytics的輸入刀片中,您可以從輸入中採樣數據並將其提供給查詢,以確保您期望的結果在那裏(時間窗口將被忽略,但您可以首先從輸入中抽取想要的時間窗口)。

此外,當您指定TIMESTAMP BY子句時,請確保您的輸入配置了無序的事件容差,以防您的訂單無法得到保證(https://msdn.microsoft.com/en-us/library/azure/mt674682.aspx)。

對遲到的更多細節/輸出爲輸入順序設置:https://blogs.msdn.microsoft.com/streamanalytics/2015/05/17/out-of-order-events/

+0

的分析數據的作業,從當前時間開始。所有發送到事件中心的事件都將被初始化爲時間屬性,該時間屬性設置爲Stream Analytics開始時間和當前時間之間的值。讓我知道你需要什麼細節,我會很樂意提供。 –

+0

@PaulMooney我現在有點忙,但看看這個:http:// stackoverflow。com/questions/30646588/can-a-date-and-time-be-specified-when-sending-data-to-azure-event-hub我不確定你可以重寫消息的時間。一個人認爲嘗試只是從一個較舊的日期開始工作,看看你是否得到任何輸出。 –

+0

診斷的另一種方法是從門戶採樣輸入數據並在StreamAnalytics查詢的測試刀片中處理它,並查看輸出以確保您所期望的消息與查詢匹配。 –