Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

To process external data streams they need to be registered in Odysseus. This is typically done with one of the query languages Odysseus provides. Although it is possible to use CQL to attach data streams, the PQL approach is much more flexible. In the following we will concentrate on the integration approach with PQL (some corresponding approaches with CQL can be found in the appendix)

...

To integrate new streams with PQL the ACCESS-Operator is needed. Because of compatibility issues, there are a lot of more deprecated parameters, which can be set. In the following we will only describe the preferred parameters. The deprecated parameters will be removed in a future version.


The following parameters can be used in the ACCESS-Operator:

  • Source: This is the system wide unique name of the source. If the source name is already used and further parameters are given, an error is thrown. An already created source can be reused by using this source parameter only.
  • Wrapper: This parameter allows the selection of the wrapper that is responsible for the integration of the sources. In Odysseus the default wrappers are GenericPush and GenericPull. Other extensions provide further names.
  • Schema: This parameter is needed as the output schema of the access operator and for the creation of some data handler (e.g. Tuple). For each Element there must be a base data handler available. The special types StartTimestamp(String) and EndTimestamp(String) are used to set the time meta data of the created element. Example:[['TIMESTAMP','StartTimeStamp', ['NAME','String'],['TEMP','Double'],

...

If the source needs login and password

      • User
      • Password

The following values are currently supported for the GenericPush-Wrapper:

...

If the source needs login and password

      • User: The login
      • Password: The password

Protocol

The parameter determines how the input from the transport is processed. The main task for this component is the identification of objects in the input and the preparation for the data handler (see next parameter).
The following protocols are currently available in Odysseus.

...

The following pql command creates a new source with

Code Block
nexmark_person := ACCESS({source='nexmark:person', wrapper='GenericPush', transport='NonBlockingTcp', protocol='SizeByteBuffer',

...

 
 						  dataHandler='Tuple',options=[['host','odysseus.offis.uni-oldenburg.de'],['port','65440'],['ByteOrder','Little_Endian']],

...


						  schema=[['timestamp','StartTimeStamp'],

...


								  ['id','INTEGER'],

...


								  ['name','String'],

...


								  ['email','String'],

...


								  ['creditcard','String'],

...


								  ['city','String'],

...


								  ['state','String']

...

 
 ]

...

})
Code Block
worldBoundaries := ACCESS({Source='WorldBoundaries', Wrapper='GenericPull',

...

 
 Schema=[['geometry','SpatialGeometry'],

...

 
 ['geometry_vertex_count','Integer'],

...


 ['OBJECTID','Integer'],

...


 ['ISO_2DIGIT','String'],

...


 ['Shape_Leng','Double'],

...


 ['Shape_Area','Double'],

...


 ['Name','String'],

...


 ['import_notes','String'],

...


 ['Google requests','String']

...


 ],

...


 InputSchema=['SpatialKML','Integer','Integer','String','Double','Double','String','String','String'],

...


 transport='File',

...


 protocol='csv',

...


 dataHandler='Tuple',

...



 Options=[['filename','C:/Users/Marco Grawunder/Documents/My 
Dropbox/OdysseusQuickShare/Daten/Geo/World Country Boundaries.csv'],

...


 ['Delimiter',',']]}

...

Extending the framework

AccessAO, AccessAOBuilder ¿ PQL Documentation
GenericPush and GenericPull
New Wrapper

...