...
Code Block | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
#COMMAND parameter1 parameter2 |
...
Code Block | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
#PARSER PQL #TRANSCFG Standard ... |
...
Code Block | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
///this is ignored by the parser |
...
Code Block | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
#DEFINE currentid 1234 #DEFINE path F:/odysseus/example/ #RUNQUERY SELECT * FROM example WHERE id = ${currentid} #RUNQUERY CREATE STREAM source (id Double, data STRING) WRAPPER 'GenericPush' PROTOCOL 'CSV' TRANSPORT 'File' DATAHANDLER 'Tuple' OPTIONS ( 'filename' '${path}input.csv') |
...
Code Block | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
#LOOP i 0 UPTO 10 #RUNQUERY SELECT ${i} AS b, * FROM bid #ENDLOOP |
...
Code Block | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
#DEFINE latencyOn .... #IFDEF latencyOn #TRANSCFG StandardLatency #ELSE #TRANSCFG Standard #ENDIF |
...
Code Block | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
#BUFFERPLACEMENT None |
...
Code Block | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
#BUFFERPLACEMENT Standard Buffer Placement |
...
Code Block | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
#BUFFERPLACEMENT Source Buffer Placement |
...
Code Block | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
#BUFFERPLACEMENT Query Buffer Placement |
...
Code Block | |||||||||
---|---|---|---|---|---|---|---|---|---|
| |||||||||
#DEFINE one #DEFINE two 1234 |
...
Code Block | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
/// query sharing off #DOQUERYSHARING false /// query sharing on #DOQUERYSHARING true |
...
Code Block | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
/// query rewrite off #DOREWRITE false /// query rewrite on #DOREWRITE true |
...
This command drops all installed queries (. It does not sources or sinks)remove andy sources or sinks, but you can use #DROPALLSINKS or #DROPALLSOURCES for this.
Parameters
It has no parameters.
Example
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
#DROPALLQUERIES |
#DROPALLSINKS
This command drops all installed sinks. It does not remove andy queries or sources, but you can use #DROPALLQUERIES or #DROPALLSOURCES
Parameters
It has no parameters.
Example
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
#DROPALLSINKS |
#DROPALLSOURCES
This command drops all installed sources. It does not remove andy queries or sinks, but you can use #DROPALLQUERIES or #DROPALLSINKS
Parameters
It has no parameters.
Example
Code Block | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
#DROPALLQUERIES#DROPALLSOURCES |
#LOGIN
Changes the login that is used by other commands like #QUERY
Parameters
There are two parameters: the username and the password.
Example
This example changes the user to "System" with password "manager"
Code Block | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
#LOGIN System manager |
...
Logs the current used user out
Parameters
Has no parameters
Example
Code Block | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
#LOGOUT |
#ODYSSEUS_PARAM
Can be used to set internal Odysseus configuration params. This should be only
Parameters
The parameters are: The name of the Odysseus configuration param and the new value
Example
Code Block | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
#ODYSSEUS_PARAM scheduler_TimeSlicePerStrategy 10 |
...
This command sets the current parser for following commands, e.g. by #QUERY or #ADDQUERY. The according parser is used until another parser is set.
Parameters
The parser: Which parsers are available strongly depends on the current system setting and installed features. Normally in the default product, there is "PQL" for Procedural Query Language (PQL) and "CQL" for Continuous Query Language (CQL).
Example
Code Block | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
#PARSER PQL |
...
Code Block | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
#QNAME Query1 |
...
This command executes a query in a certain language. This might be, for example Procedural Query Language (PQL) or Continuous Query Language (CQL). There are three different commands to execute such a query: #QUERY, #ADDQUERY and #RUNQUERY. While #QUERY and #ADDQUERY (they are one and the same) only passes the definied query to Odysseus, the #RUNQUERY additionally starts the query. This means, a query that was added with #QUERY or #ADDQUERY is inactive and not started until it is explicetely started. The #RUNQUERY in contrast immediatly starts a query after it is added, e.g. by using #STARTQUERIES .
Parameters
The query command is dependent on the current parser (which is set by #PARSER) and the current transformation configuration (which is set by #TRANSCFG). Therefore, it is necessary to run these two commands before. Furthermore, you can switch to other parsers / transformation within one script by using #PARSER or #TRANSCFG again. Thus, if you want to run a query in CQL that last #PARSER command before should set the parser to "CQL".
If #QName is defined before, the query will get this name.
Example
The example shows four queries after the parser is set to CQL and the transformation configuration is set to Standard. The first one uses #QUERY and it is executed as a CQL-Query, but not started. The second query is equal to the first one (it still uses CQL and is not started). The third query also uses CQL and the Standard transformation configuration, but is (in contrast to the first and second) started (it is directly running). Then, the parser is switched to PQL, so that the fourth query is parsed by the PQL-Parser and not by the CQL-Parser anymore.
Code Block | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
#PARSER CQL #TRANSCFG Standard #QUERY SELECT * FROM bid #ADDQUERY SELECT * FROM bid #RUNQUERY SELECT * FROM bid #PARSER PQL #QUERY result = PROJECT({ATTRIBUTES=['id','name']}, person) |
...
The reload log is a file that logs all queries that were sucessfully installed into the system. This command can be used to run these logged queries from the log, e.g. to recreat an old ystem state.
Parameters
This command has no parameters.
Example
Code Block | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
#RELOADFROMLOG |
...
Sets the used scheduler and its scheduling strategy.
Parameters
It needs two parameters: The scheduler and the scheduling-strategy. The available schedulers and strategies depends on the current system setting (additional features could be necessary!), because they are dynamically bound.
Example
Uses the "Single Thread Scheduler" with a "Round Robin" scheduling strategy
Code Block | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
#SCHEDULER "Single Thread Scheduler RR" "Round Robin" |
...
Code Block | |||||||||
---|---|---|---|---|---|---|---|---|---|
| |||||||||
#SCHEDULER "Single Thread Scheduler RR" "Aurora Min Cost" |
...
Code Block | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
#SCHEDULER "Single Thread Scheduler RR" "Aurora Min Latency" |
...
Code Block | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
#SCHEDULER "Single Thread Scheduler RR" "Chain" |
...
Code Block | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
#SCHEDULER "Single Thread Scheduler RR" "Biggest Queue" |
...
Code Block | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
#SCHEDULER "Simple Dynamic Priority Scheduler" "Round Robin" |
...
This command can be used to wait a certain time before executing the next command
Parameters
The parameter is a number. It defines the time in milliseconds for which the script execution should sleep.
Example
Waiting 2 seconds (2000 milliseconds) until the next command is invoked.
Code Block | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
#SLEEP 2000 |
...
This command starts all installed queries that are not running at the moment.
Parameters
This command has no parameters.
Example
Code Block | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
#STARTQUERIES |
...
This command starts the scheduling.Notice that the scheduling strongly influences the processing and should be carefully used. The scheduler is running by default. You can stop it by using #STOPSCHEDULER
Parameters
This command has no parameters.
Example
Code Block | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
#STARTSCHEDULER |
...
This command stops the scheduling.Notice that the scheduling strongly influences the processing and should be carefully used. The scheduler is running by default. You can start it by using #STARTSCHEDULER
Parameters
This command has no parameters.
Example
Code Block | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
#STOPSCHEDULER |
...
This command sets the transformation configuration for following commands. The transformation configuration defines how a query is transformed into an executable plan. The transformation configuration that was set is used until another configuration is explicitly set.
Parameters
The configuration: Which configruations are available strongly depends on the current system setting and installed features. Normally in the default product, there is "Standard" for the default transformation configuration. If the latency feature is installed, there is also "StandardLatency" available, which invokes specific transformations so that the latency is automatically calculated.
Example
Code Block | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
#TRANSCFG Standard |
...
This command sets the transformation configuration for following commands. The transformation configuration defines how a query is transformed into an executable plan. The transformation configuration that was set is used until another configuration is explicitly set.
Parameters
The configuration: Which configruations are available strongly depends on the current system setting and installed features. Normally in the default product, there is "Standard" for the default transformation configuration. If the latency feature is installed, there is also "StandardLatency" available, which invokes specific transformations so that the latency is automatically calculated.
Example
Code Block | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
#TRANSCFG Standard |
...