In die original solution, there was a protobuf base server. This server is no longer available. To process the data in any case we provide a simple example with a csv file:
In this case, the csv file is found in the workspace folder.
- The input file does not contains long values for the time stamp but a String date format. The format of the input string is given with the option:dateformat.
- The input file contains some time stamps out of order. So the TimestampOrderValidate Operator is used to suppress these values.
In the original version, we used google protobuf, which is not supported anymore
We provide two solutions. The first one reads its input by providing a Google Protobuf server.
Solution with Protobuf
To use this solution, the following features need to be installed:
The source definition is done with a Receive operator. This means, the source sends its information to Odysseus.
Further information for the Protobuf Server is given with the options:
OPTIONS=[ ['type','debs.challenge.msg.CDataPoint'], ['port','9999'], ['BaseTimeUnit','NANOSECONDS']],
The type is the compiled version of the protobuf specification file given by the DEBS organisators. Is must be provided inside a special bundle.
Port if the port on which der Server is started on the machine where the query is executed. In a monolithic version this would be on localhost, in a server version this would be on the Odysseus server.
Odysseus can read the timestamps from the input schema. If no further information is given, the unit of the timestamp is assumed to be milliseconds. With BaseTimeUnit the real time unit can be set.
Finally, the schema definition represents the internal format of the data inside of Odysseus, i.e. there are tuples with the given schema.