/ / Dotaz na kontrolu preťaženia automobilov na ceste pomocou jazyka Esper Query - java, cep, esper

Kontrola kongescií Dotaz na autá na ceste pomocou Esper Query Language - java, cep, esper

Dostávam údaje zo simulácie na internetenasledujúci formát: Ako je vidieť, v súčasnosti existujú dve autá, ktoré idú z ulice 7 na ulicu 11 (pretože prechádzajú mnohými zónami, v ktorých sú umiestnené senzory na sledovanie pohybu).

Teraz chcem zastaviť signál, keď to bude naposledyrozdiel medzi autom č. 1 a autom č. 2 je iba 3 sekundy alebo menej. Ako to môžem urobiť v jazyku esper query. Musím napísať dopyt na komplexné spracovanie udalostí, ktorý mi umožní generovať udalosť, akonáhle bude splnená vyššie uvedená podmienka. Z údajov je zrejmé, že spočiatku je čas, keď auto # 1 vchádza do ulice # 7, 42500, zatiaľ čo keď auto # 2 vchádza do ulice # 7, čas je 42508, čo predstavuje časový rozdiel 8 sekúnd.

    { time: 42500,
location: { Zone: "Z3", Street: "Street#7" },
carID: "car#1" }
---------------------------------------
{ time: 42502,
location: { Zone: "Z5", Street: "Street#7" },
carID: "car#1" }
---------------------------------------
{ time: 42502,
location: { Zone: "Z1", Street: "Street#8" },
carID: "car#1" }
---------------------------------------
{ time: 42504,
location: { Zone: "Z4", Street: "Street#8" },
carID: "car#1" }
---------------------------------------
{ time: 42505,
location: { Zone: "Z5", Street: "Street#8" },
carID: "car#1" }
---------------------------------------
{ time: 42505,
location: { Zone: "Z1", Street: "Street#9" },
carID: "car#1" }
---------------------------------------
{ time: 42507,
location: { Zone: "Z4", Street: "Street#9" },
carID: "car#1" }
---------------------------------------
{ time: 42508,
location: { Zone: "Z3", Street: "Street#7" },
carID: "car#2" }
---------------------------------------
{ time: 42508,
location: { Zone: "Z5", Street: "Street#9" },
carID: "car#1" }
---------------------------------------
{ time: 42508,
location: { Zone: "Z1", Street: "Street#10" },
carID: "car#1" }
---------------------------------------
{ time: 42509,
location: { Zone: "Z4", Street: "Street#10" },
carID: "car#1" }
---------------------------------------
{ time: 42509,
location: { Zone: "Z5", Street: "Street#7" },
carID: "car#2" }
---------------------------------------
{ time: 42509,
location: { Zone: "Z1", Street: "Street#8" },
carID: "car#2" }
---------------------------------------
{ time: 42511,
location: { Zone: "Z5", Street: "Street#10" },
carID: "car#1" }
---------------------------------------
{ time: 42511,
location: { Zone: "Z1", Street: "Street#11" },
carID: "car#1" }
---------------------------------------
{ time: 42511,
location: { Zone: "Z4", Street: "Street#8" },
carID: "car#2" }
---------------------------------------
{ time: 42512,
location: { Zone: "Z4", Street: "Street#11" },
carID: "car#1" }
---------------------------------------
{ time: 42512,
location: { Zone: "Z5", Street: "Street#8" },
carID: "car#2" }
---------------------------------------
{ time: 42512,
location: { Zone: "Z1", Street: "Street#9" },
carID: "car#2" }
---------------------------------------
{ time: 42513,
location: { Zone: "Z5", Street: "Street#11" },
carID: "car#1" }
---------------------------------------
{ time: 42513,
location: { Zone: "Z1", Street: "Street#12" },
carID: "car#1" }
---------------------------------------

odpovede:

0 pre odpoveď č. 1

Znie to trochu ako spojenie udalostí pre auto 1s udalosťami automobilu 2. Otázkou potom je, ku ktorej podskupine udalostí sa treba pripojiť. Zdá sa, že prípad použitia si vyžaduje uchovanie histórie histórie ulíc, ktoré navštívilo každé auto. Mohli by sme na to použiť dlhé okno alebo jedinečné okno alebo spojenie týchto okien. Umožňuje použiť dĺžkové okno, ktoré zohľadňuje posledných 10 ulíc alebo udalostí. Napríklad dotaz ako tento:

select * from Event(carID="car#1").win:length(20) as car1, Event(carID="car#2").win:length(20) as car2 where Math.abs(car1.time-car2.time) > 3 and car1.Location.Street = car2.Location.Street