WSO2 CEP pizzaOrderProcessingPlan 的 Siddhi 语言很奇怪
WSO2 CEP pizzaOrderProcessingPlan's Siddhi Language is strange
以下link提供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被定义为table。
orderStream、deliveryStream、deliveredOrders 被定义为 document.
我找不到定义 "overdueDeliveries" 的位置和时间。但是,它正在工作..
我的问题是
逾期交货是在何时何地定义的?自动生成?
还有……
是否逾期交货流或table?
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 引擎将定义一个名为 orderNumbersStream 且具有属性 'orderNo' 的流,因为它是显式 selected 的。如果没有 select 语句,默认情况下,所有属性都添加到流中。
此外,orderStream、deliveryStream 和 deliveredOrders 都是流。在 siddhi 中,事件流经 'streams',您可以将其想象成一种将事件从一个查询传递到另一个查询(一个或多个)的方式。
关于 tables - 当您定义 table 时,您必须使用此执行计划中给出的 define table
查询明确定义它。
以下link提供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被定义为table。 orderStream、deliveryStream、deliveredOrders 被定义为 document.
我找不到定义 "overdueDeliveries" 的位置和时间。但是,它正在工作..
我的问题是
逾期交货是在何时何地定义的?自动生成?
还有……
是否逾期交货流或table?
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 引擎将定义一个名为 orderNumbersStream 且具有属性 'orderNo' 的流,因为它是显式 selected 的。如果没有 select 语句,默认情况下,所有属性都添加到流中。
此外,orderStream、deliveryStream 和 deliveredOrders 都是流。在 siddhi 中,事件流经 'streams',您可以将其想象成一种将事件从一个查询传递到另一个查询(一个或多个)的方式。
关于 tables - 当您定义 table 时,您必须使用此执行计划中给出的 define table
查询明确定义它。