Siddhi поток данных без схемы - PullRequest
0 голосов
/ 09 мая 2018

У меня есть исходные данные из ActiveMQ, у меня проблема в том, что эти данные не имеют фиксированной структуры, поэтому, когда я определяю поток, он выдает несовместимую ошибку типа данных, есть ли способ обусловить исходный поток по какому-то условию?

Заранее спасибо.

/*
* Origin of data.
*/
@source(type='jms',
        @map(type='csv', delimiter=',', fail.on.unknown.attribute='false'),
        factory.initial='org.apache.activemq.jndi.ActiveMQInitialContextFactory',
        provider.url='tcp://127.0.0.1:61616',
        destination='simulatedData',
        connection.factory.type='queue',
        connection.factory.jndi.name='QueueConnectionFactory',
        transport.jms.SubscriptionDurable='true',
        transport.jms.DurableSubscriberClientID='wso2SPclient1')


define stream FileSourceProductionStream(type string, time long, studentId string, fileId string, totalAccesses float); /* totalAccesses : float Incompatible DataType*/
define stream TaskSourceProductionStream(type string, time long, studentId string, taskId string, deadline long); /*deadline: long Incompatible DataType*/

1 Ответ

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

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

Одним из возможных решений для вашего сценария является определение потока со всеми возможными входными атрибутами и предварительное форматирование ввода в форматы JSON [1], XML [2] или TEXT [3], которые поддерживаются картой siddhi-map расширения, с именами и значениями атрибутов. Для отсутствующих атрибутов не будет ключа или тега в полезной нагрузке json / xml / text input.

Затем используйте конфигурацию @map (fail.on.missing.attributes = 'false) в исходной конфигурации.

Тогда для всех отсутствующих атрибутов во входной полезной нагрузке NULL будет присвоен соответствующий атрибут входного потока.

[1] https://wso2 -extensions.github.io / siddhi-map-json / api / 4.0.20 /

[2] https://wso2 -extensions.github.io / siddhi-map-xml / api / 4.0.12 /

[3] https://wso2 -extensions.github.io / siddhi-map-text / api / 1.0.16 /

...