Какие типы объектов поддерживаются Сиддхи для типа атрибута "объект"?
Я выполняю некоторые эксперименты для прототипа с использованием 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
?
2 ответа
Он принимает экземпляры java.lang.Object. Таким образом, вы можете передать любой объект Java. Но эти объекты являются только сквозными (движок Siddhi просто передает их вместе с событием), и вы не сможете выполнять какие-либо изменения / обработку этих объектов, если не напишите какое-либо пользовательское расширение.
Если вы хотите обработать входные данные json, используйте продукт WSO2 CEP. Вы сможете определять сопоставления и разбирать входные данные json для некоторых примитивных типов, таких как string, int, float и т. Д., Которые может обрабатывать движок Siddhi.
В новой сиддхи 4.х все является расширением сиддхи. И у него есть набор расширений mapper, которые можно использовать, даже если вы используете siddhi в качестве библиотеки. С использованием расширения исходного кода и расширения картографа вам не нужно будет писать собственный код для получения и отображения данных.
Последняя версия аналитики WSO2, WSO2 SP основана на Siddhi 4.x