Page tree
Skip to end of metadata
Go to start of metadata

Sometimes, the real data source is not available or for testing purposes a controlled input data is necessary. Odysseus provides a wide range of predefined data generators that can be used to test queries.

The following generators can be downloaded from ... todo

WORK IN PROGRESS

 

 

 

Under application/generator in the SVN repository, there is an abstract generator framework that can be used to simplify the generation and transfering of data to Odysseus.

  • The execution of the data generator has no dependencies to Odysseus so that it can be run on other machines.
  • Only three bundles are needed
    • The bundle with the abstract generator (de.uniol.inf.is.odysseus.generator)
    • The bundle that holds the own implementation of the generator
    • the OSGi framwork, e.g. org.eclipse.osgi

Accessing by Odysseus

In Odysseus you may use a normal channel-connection (in detail: a tcp socket and pushed based byte stream connection)

according to the example above, the schema must match the definition of the DataTuple-instances. The port is the one that is provided for starting the StreamServer. So, if both Odysseus and the generator run on the same machine (localhost), the create stream statement in StreamSQL may look like the following:

CREATE STREAM hier_den_stream_namen (timestamp STARTTIMESTAMP, transaction_id INTEGER, name STRING, value INTEGER) 
  CHANNEL localhost : 54321;

The same in PQL

#PARSER PQL
#TRANSCFG Standard
#QUERY
hier_den_stream_namen:= ACCESS({Source='hier_den_stream_namen', Wrapper='GenericPush', 
        Schema=[['timestamp ','Starttimestamp'],
                ['transaction_id','INTEGER'],
                ['name','String'],
                ['value','Integer']],
                transport='NonBlockingTcp',
                protocol='SizeByteBuffer',
                dataHandler='Tuple',
                Options=[['port','54321'], ['host','localhost']]})

 

In the following, we show how to use available generators and how to build own generators. You may either build your own data generation mechanism or you can also use value-generators that also use pre-defined error and burst-models.

  • No labels