2017-04-03 25 views
0

我對WSO2 CEP Siddhi QL相當陌生,我得到了一個分析流入事件的要求。WSO2 CEP:Siddhi QL:創建一條具有類似事件記錄的獨特流

對於回:我的數據來在這樣的[ID,值]:

InputStream=[1001,90] 
InputStream=[1001,85] 
InputStream=[1002,70] 
InputStream=[1001,85] 
InputStream=[1003,70] 
InputStream=[1003,85] 
InputStream=[1002,70] 
InputStream=[1003,70] 
InputStream=[1003,85] 
InputStream=[1002,70] 
InputStream=[1001,95] 
InputStream=[1001,65] 

在此,筆者想根據id來隔離每個記錄和組1001,1002和1003記錄和創建一個新的臨時流爲每個ID分組,並檢查其中的最高值並提醒它。嘗試了不同的模式和連接,但無法將其歸入精確的解決方案。

任何幫助/指導解決方案將不勝感激。謝謝。

回答

0

在Siddhi中,無法根據事件值創建新的流。但是,由於您的要求是基於ID建立組,並提醒每個組的最高價值。我們可以通過一個輸出流實現這一點。我們需要做的是在一段時間內保持一個窗口(時間或長度窗口),然後按ID分組,並選擇max(temp)並插入警報流。請參考下面的示例siddhi查詢。

from TempStream#window.time(2 min) 
select max(temp) as highestTemperature 
group by id 
insert into alertStream; 
+0

謝謝你Tharik。從這裏我看到的是在Siddhi嘗試它,它創建了與輸入相同記錄的類似流。儘管我們已經提供了group by屬性,但我沒有看到分組發生。 所以你說我們不能用輸入流創建一個具有每個事件中的值的臨時流?我的意思是說我們不能將上述樣本與包含1001,1002等記錄的事件分開嗎? – Kannan

相關問題