The access operator can be used to integrate new sources into Odysseus. Further information can be found in the Documentation to the Access Operator Framework.
Remark: There is no need to define an access operator as view (:=) or source (::=). Each access operator is automatically a source with name source. For most cases the assignment is only for parsing purposes (see example below).
Parameter
source:The name of the access operator. Remark: This name must be different to all source names and all view or stream definitions! A new source will be added to the data dictionary automatically.wrapper:In Odysseus the default wrappers are GenericPush and GenericPulltransport:The transport defines the transport protocol to use.protocol:The protocol parameter defines the application protocol to transform the processing results.datahandler:This parameter defines the transform of the single attributes of the processing results.options:Transport protocol and application protocol depending optionsschema:The output schema of the access operator (may depend on the protocol handler)metaattribute: What kind of meta data should the source provide.
There are some options that are not used by transformation:
BaseTimeUnit: Timeunit used for long based input start/endtimestamps (be careful, the option is case sensitive). The TimeUnits are case sensitive as well, e.g. SECONDS (https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/TimeUnit.html)
Example
PQL
input = ACCESS({source='Source',
wrapper='GenericPush',
transport='TCPClient',
protocol='CSV',
dataHandler='Tuple',
METAATTRIBUTE = ['TimeInterval','Latency','Datarate'], /// or: METAATTRIBUTE = 'TimeIntervalLatencyDatarate'
options=[['host', 'example.com'],['port', '8080'],['read', '10240'],['write', '10240']],
schema=[
['id', 'Double'],
['data', 'String']]
})