Remark: Currently (2016/06/01) not working.
In this example I will show how to connect data from a DDS (Data distribution service for Real-Time Systems). Be aware, that this is very alpha
...
Code Block | ||
---|---|---|
| ||
#PARSER PQL #RUNQUERY sampleArray := RECEIVEDDSSOURCE({ source = 'SampleArray', transport = 'dds', datahandler = 'tuple', options=[ ['qosFile',' qosfile='${WORKSPACEPROJECT}/USERice_QOS_PROFILESlibrary.xml'], ['idlFile','idlfile='${WORKSPACEPROJECT}/ice.idl'], ['topic',='SampleArray'], ['topicType','topictype='ice::SampleArray'], ['qosLibrary',qoslibrary='ice_library'], ['qosProfile','qosprofile='waveform_data'], ['domain','0'] =0 ], schema = [ ['unique_device_identifier', 'String'], ['metric_id', 'String'], ['instance_id','Long'], ['unit_id','String'], ['frequency','long'], ['values','List<Double>'], } ['time','Tuple<Long,Long>'] ] } ) |
There are two important files:
...
They contain information necessary for DDS. You can download the files from the following locations:
https://github.com/mdpnp/hello-openicemdpnp/blob/master/data-types/x73-idl-rti-dds/USER_QOS_PROFILES.xml
Copy them to the workspace.
...
Now run the query, and show as table. You should see something like:
As you can see, the values attribute contains a list, and the time attribute attributes a tuple.
Storing to a relational database
...
You can store complex objects to a document store like MongoDB. For this, you have to convert the tuple to a KeyValueObject. This can be done with the TupleToKeyValueOperator.
See MongoDB Feature for more information on the Mongo DB feature.
Code Block |
---|
#RUNQUERY
kv = TUPLETOKEYVALUE(sampleArray)
mongo = MONGODBSINK({PORT = port, HOST = 'host', COLLECTIONNAME = 'collectionname', DATABASE = 'database'}, kv)
|
#