Как присвоить значение с помощью запроса сиддхи?

Мне нужно присвоить значение определенному атрибуту в потоке, проверив условие.

Как это сделать?

e.g

если человека зовут «Джон», и мне нужно изменить его имя на «Питер» и вставить в другой поток, как мне это сделать?

from myStream [name == 'John']
select *
insert into outStream;

person DesirePRG    schedule 28.11.2015    source источник


Ответы (1)


define stream myStream (name string, attribute1 int, attribute2 bool);

from myStream [name == 'John']                  --This filter matches any event with name equal to 'John'
select "Peter" as name, attribute1, attribute2  --Replaces the current name with 'Peter'
insert into outStream;

Пример 1

Вход:

{Dilini, 123, true}

Выход:

(выхода не будет, так как имя не удовлетворяет условию в фильтре name=='John')

Пример 2

Вход:

{John, 123, true}

Выход:

{Peter, 123, true}

См. возможности "Query Projection" в Siddhi. Отметьте действие: 'Введение значения по умолчанию'.

person Dilini    schedule 28.11.2015
comment
Не могли бы вы немного объяснить свое решение? - person Markus W Mahlberg; 28.11.2015
comment
Это было не обо мне, я даже не знаю, о чем это все. Наткнулся на ваш ответ в очереди на проверку и подумал, что может потребоваться небольшое объяснение, чтобы сделать его более полезным для других. - person Markus W Mahlberg; 28.11.2015