2015-02-11 17 views
0

下面的鏈接提供了WSO2 CEP樣品WSO2 CEP pizzaOrderProcessingPlan的西提語言是奇怪

https://docs.wso2.com/display/CEP310/Getting+Started+with+CEP 

我以下順序進行排列的文檔,並沒有問題。

但我有一個關於下列西提語言

define table pizza_deliveries (deliveredTime long, order_id string); 

from deliveryStream 
select time, orderNo 
insert into pizza_deliveries; 

from orderStream#window.time(30 seconds) 
insert into overdueDeliveries for expired-events; 

from overdueDeliveries as overdueStream unidirectional join pizza_deliveries 
on pizza_deliveries.order_id == overdueStream.orderNo 
select count(overdueStream.orderNo) as sumOrderId, overdueStream.customerName 
insert into deliveredOrders; 

在此執行計劃的問題,pizza_deliveries被定義爲表。 orderStream,deliveryStream,deliveredOrders被定義爲文檔。

我無法找到「逾期交貨」的定義時間和地點。但是,它的工作..

我的問題是

何時何overdueDeliveries定義?自動生成?

而且......

是overdueDeliveries流或表?

回答

0

逾期交貨是一個流,它由Siddhi引擎隱式定義。

如果你看看這個查詢:

from orderStream#window.time(30 seconds) 
insert into overdueDeliveries for expired-events; 

在此查詢通過orderStream未來所有屬性都加入到overdueDeliveries流和西提引擎定義與他們流。

同樣,如果你編寫類似下面的查詢:在這種情況下

from orderStream 
select orderNo 
insert into orderNumbersStream; 

的西提引擎將定義一個名爲orderNumbersStream與屬性「orderNo」只因爲它明確地選擇流。如果沒有選擇語句,默認情況下,所有屬性都添加到流中。

此外,orderStream,deliveryStream和deliveredOrders是流。在siddhi中,事件流過'流',您可以將其想象爲將事件從一個查詢傳遞到另一個查詢(一個或多個)的方式。

關於表格 - 定義表格時,必須使用本執行計劃中給出的define table查詢明確定義表格。

+0

謝謝你的友好和明確的答案。對理解有很大的幫助。 – 2015-02-12 12:38:33