Stream Siddhi流无模式数据
我有一个来自ActiveMQ的源数据,我的问题是这些数据没有固定的结构,因此,当我定义流时,它会抛出一个不兼容的数据类型错误,有没有办法通过某种条件来调整源流 提前谢谢Stream Siddhi流无模式数据,stream,wso2,complex-event-processing,siddhi,wso2sp,Stream,Wso2,Complex Event Processing,Siddhi,Wso2sp,我有一个来自ActiveMQ的源数据,我的问题是这些数据没有固定的结构,因此,当我定义流时,它会抛出一个不兼容的数据类型错误,有没有办法通过某种条件来调整源流 提前谢谢 /* * Origin of data. */ @source(type='jms', @map(type='csv', delimiter=',', fail.on.unknown.attribute='false'), factory.initial='org.apache.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*/
在siddhi中,源流应该具有输入数据的模式。因此,我们不能将无模式数据接收到定义的流中 对于您的场景,一个可能的解决方案是使用所有可能的输入属性定义一个流,并将输入预格式化为JSON[1]、XML[2]或文本[3]格式,这些格式由siddhi map extensions支持,并带有属性名称和值。对于缺少的属性,json/xml/text输入负载中不会有键或标记 然后在源配置中使用@map(fail.on.missing.attributes='false)配置 然后,对于输入有效负载中所有缺少的属性,NULL将被分配给输入流的相应属性 [1] [2]
[3] 在siddhi中,源流应该具有输入数据的模式。因此,我们不能将无模式数据接收到定义的流中 对于您的场景,一个可能的解决方案是使用所有可能的输入属性定义一个流,并将输入预格式化为JSON[1]、XML[2]或文本[3]格式,这些格式由siddhi map extensions支持,并带有属性名称和值。对于缺少的属性,json/xml/text输入负载中不会有键或标记 然后在源配置中使用@map(fail.on.missing.attributes='false)配置 然后,对于输入有效负载中所有缺少的属性,NULL将被分配给输入流的相应属性 [1] [2] [3]