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

There are some options that are not used by transformation:

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']]
})
 


Here a complexer example about what could be possible:

in = ACCESS({
          transport = 'FILE',
          datahandler = 'Tuple',
          source = 'AVKVIN1',
          wrapper = 'GenericPull',
          protocol = 'simplecsv',
          dateformat = 'dd.MM.yyyy HH:mm:ss',
          options = [
            ['filename','${FILEPATH}'],
            ['skipFirstLines','5'],
            ['delimiter',';'],
            ['decimalseparator',','],
            ['csv.floatingformatter','#,##'],
            ['debug','true'],
            ['maxLines','323944'] /// there are empty lines at the end of the file
          ],
          schema = [
            ['ts','STARTTIMESTAMPSTRING'],
            ['1SMA10CW001/XQ12.OS','Double',[['Unit','t/h'],['Info','This is explaining text']]],
            ['1LBA10CF901/GW/MA1.U','Double',[['Unit','t/h'],['Info','Other Text']]],
            ['1LBA10CP001/GW/MA1.U','Double',[['Unit','°C'],['Info','...']]],
            ['1HAH25CT001/XQ01/MA2.U','Double',[['Unit','°C'],['Info','...']]],
            ['1HAH25CT002/XQ01/MA2.U','Double',[['Unit','°C'],['Info','...']]],
            ['1HAH35CT001/XQ01/MA2.U','Double',[['Unit','°C'],['Info','..']]]
          ]                                        
        }                                    
      )
         



There are some special logical Operators, that allow an easier handling of the ACCESS-Operation (but are semantically equal)