0

次のリンクは、WSO2 CEP サンプルを提供します

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 はいつ、どこで定義されますか? 自動生成?

と...

overdueDeliveries はストリームまたはテーブルですか?

4

1 に答える 1

0

overdueDeliveries はストリームであり、Siddhi エンジンによって暗黙的に定義されます。

このクエリを見ると:

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

このクエリでは、orderStream を経由するすべての属性が overdueDeliveries ストリームに追加され、Siddhi エンジンはそれらを使用してストリームを定義します。

同様に、次のようなクエリを記述した場合:

from orderStream
select orderNo
insert into orderNumbersStream;

この場合、Siddhi エンジンは、明示的に選択されているため、属性「orderNo」のみを持つ orderNumbersStream という名前のストリームを定義します。select ステートメントがない場合、デフォルトで、すべての属性がストリームに追加されます。

また、orderStream、deliveryStream、deliveredOrders はストリームです。siddhi では、イベントは「ストリーム」を介して流れ、あるクエリから別のクエリ (1 つまたは複数) にイベントを渡す方法として想像できます。

テーブルについて - テーブルを定義するときはdefine table、この実行計画で指定されているように、クエリを使用して明示的に定義する必要があります。

于 2015-02-12T04:56:18.633 に答える