Какие типы объектов поддерживаются Сиддхи для данного типа атрибута объекта?

Я провожу несколько экспериментов для прототипа, используя Siddhi в качестве механизма CEP, и хотел бы знать, поддерживают ли входные потоки только плоские данные событий или могут также поддерживать иерархию данных, подобную JSON, для запросов.

в документации Сиддхи упоминается object тип для атрибутов , но я нигде не нашел, что относится к этому типу.

В образцы кода, предоставленные в исходном репозитории, этот тип атрибута также никогда не используется.

Расширяя один из запросов, написанных в этих примерах, я хотел бы иметь возможность делать что-то вроде:

String executionPlan = ""
    + "define stream cseEventStream (symbol string, price float, volume long, data object); "
    + " "
    + "@info(name = 'query1') "
    + "from cseEventStream[volume < 150 and data.myKey == 'myValue'] "
    + "select symbol,price "
    + "insert into outputStream ;";

Поддерживаются ли Siddhi какие-либо данные в формате JSON? Если да, то какие типы объектов Java следует передавать InputHandler?


person Alexandre Bourdin    schedule 04.11.2015    source источник


Ответы (2)


Он принимает экземпляры java.lang.Object. Таким образом, вы можете передать туда любой java-объект. Но эти объекты являются только сквозными (движок Siddhi просто передает их вместе с событием), и вы не сможете вносить какие-либо изменения / обработки в эти объекты, если не напишете какое-то собственное расширение.

Если вы хотите обрабатывать входные данные json, используйте продукт WSO2 CEP. Вы сможете определять сопоставления и разбирать ввод json на некоторые примитивные типы, такие как string, int, float и т. Д., Которые может обрабатывать движок Siddhi.

person Rajeev Sampath    schedule 04.11.2015
comment
Спасибо за Ваш ответ. Из того, что я прочитал, полный продукт WSO2 CEP поставляется со всем пользовательским интерфейсом и т. Д., А не только с библиотекой Java CEP? В моем случае мне нужна только библиотека CEP, чтобы интегрировать ее в другой продукт. - person Alexandre Bourdin; 04.11.2015
comment
Да, это не библиотека Java. В этом случае вам может потребоваться использовать некоторую библиотеку json для извлечения примитивов из входных данных json и отправки их в Siddhi. В противном случае вы можете передать json в виде строк и выполнить некоторую обработку с сопоставлением регулярных выражений и т. Д. - person Rajeev Sampath; 04.11.2015

В новом siddhi 4.x все является расширением сиддхи. И у него есть набор расширений mapper, которые можно использовать, даже если вы используете сиддхи в качестве библиотеки. С использованием расширения источника и расширения сопоставителя вам не придется писать собственный код для получения и сопоставления данных.

Последнее предложение WSO2 Analytics, WSO2 SP основано на Siddhi 4.x

person Sajith Eshan    schedule 02.05.2018