Как я могу предоставить входные данные для inputHandler - PullRequest
0 голосов
/ 17 мая 2018

Я не могу найти ни одного варианта использования или какой-либо документации, в которой упоминается, что мы можем предоставить входные данные для inputHandler, не жестко связывая их при использовании siddhi в качестве библиотеки.

Все, что я нашел в интернете - это inputHandler со статическими данными. например: - inputHandler.send (new Object [] {"WSO2", 50f, 30L}); и т.д ..,

Я хочу знать, как мы можем передавать данные JSON в inputHandler или потоки при использовании siddhi в качестве библиотеки?

1 Ответ

0 голосов
/ 17 мая 2018

В siddhi простой поток данных может быть изображен, как показано ниже.

source (input) -> sourceMapper -> stream> {query -> stream} -> .... stream -> sinkMapper ->сток (вывод)

При использовании siddhi в качестве библиотеки InputHandler используется для предоставления данных в поток.

Но когда вы предоставляете данные непосредственно в поток, сопоставление не происходит.Следовательно, вы должны предоставить точные значения для каждого атрибута соответствующего потока.

Если вам необходимо программно предоставлять данные на уровне источника, вы можете использовать источник типа " inMemory "[1], а затем предоставьте данные, используя InMemoryBroker [2]

Для примера см. Код [3].

[1] https://github.com/wso2-extensions/siddhi-map-json/blob/master/component/src/test/java/org/wso2/extension/siddhi/map/json/sourcemapper/JsonSourceMapperTestCase.java#L52

[2] https://github.com/wso2-extensions/siddhi-map-json/blob/master/component/src/test/java/org/wso2/extension/siddhi/map/json/sourcemapper/JsonSourceMapperTestCase.java#L87

[3] https://github.com/wso2-extensions/siddhi-map-json/blob/master/component/src/test/java/org/wso2/extension/siddhi/map/json/sourcemapper/JsonSourceMapperTestCase.java

...