Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Documented the MDA store Odysseus Script command

...

Examples

No buffers:

Code Block
languagejavascript
themeEclipselanguagejavascript
linenumberstrue
#BUFFERPLACEMENT None

Adds a buffer before each operator:

Code Block
languagejavascript
themeEclipse
languagejavascript
linenumberstrue
#BUFFERPLACEMENT Standard Buffer Placement

Adds a buffer after each source:

Code Block
languagejavascript
themeEclipse
languagejavascript
linenumberstrue
#BUFFERPLACEMENT Source Buffer Placement

Adds a buffer for each query:

Code Block
language
languagejavascript
themeEclipse
javascriptlinenumberstrue
#BUFFERPLACEMENT Query Buffer Placement

...

The first variable is called "one" and has no value. The second variable is called "two" and has the value "1234". See at Commands or at #IFDEF for examples how to use a variable.

Code Block
languagejavascript
themeEclipselanguagejavascript
linenumberstrue
#DEFINE one
#DEFINE two 1234

...

Example

Code Block
languagejavascript
themeEclipse
languagejavascript
linenumberstrue
/// query sharing off
#DOQUERYSHARING false
/// query sharing on
#DOQUERYSHARING true

...

Example

Code Block
languagejavascript
themeEclipse
languagejavascript
linenumberstrue
/// query rewrite off
#DOREWRITE false
/// query rewrite on
#DOREWRITE true

...

Example

Code Block
languagejavascript
themeEclipse
languagejavascript
linenumberstrue
#DROPALLQUERIES

...

Example

Code Block
language
languagejavascript
themeEclipse
javascriptlinenumberstrue
#DROPALLSINKS

...

Example

Code Block
languagejavascript
themeEclipselanguagejavascript
linenumberstrue
#DROPALLSOURCES

...

The first variable is called "aNumber" and is a normal #DEFINE. "bNumber" gets the evaluated result of "aNumber + 2000": "3000". "cNumber" demonstrates an alternative way to specify new variables (omitting "=").

Code Block
languagejavascript
themeEclipse
languagejavascript
linenumberstrue
#DEFINE aNumber 1000
#EVAL bNumber = aNumber + 2000
#EVAL cNumber aNumber + 2000

...

This example changes the user to "System" with password "manager"

Code Block
languagejavascript
themeEclipselanguagejavascript
linenumberstrue
#LOGIN System manager

...

Example

Code Block
languagejavascript
themeEclipse
linenumberstrue
#LOGOUT

#MDASTORE_DROP

This command drops an existing MDA store. See MDA store functions.

Parameters

Example

Code Block
languagejavascript
themeEclipse
linenumberstrue
#MDASTORE_DROP MyStore

#MDASTORE_INIT

This command creates a new MDA store. See  MDA store functions.

Parameters

  1. The name for the store
  2. A list of the dimensions for the MDA store. Each dimension must contain the following information separated by colons:
    1. The lower border for the dimension
    2. The upper border for the dimension
    3. The number of borders for the dimension (incl. lower and upper)

Example

Code Block
languagejavascript
themeEclipse
linenumberstrue
#MDASTORE_INIT MyStore 0:200:3 100:300:5#LOGOUT

#METADATA

In the default processing scenario, all elements in Odysseus are tagged with time stamp meta data. This command can be used to define the meta data.

...

Can be used to set internal Odysseus configuration params. This should be only

Parameters

Example

Code Block
languagejavascript
themeEclipse
languagejavascript
linenumberstrue
#ODYSSEUS_PARAM scheduler_TimeSlicePerStrategy 10

...

Enable predicate optimization for the current query. The optimizer tries to simplify the predicates used in select operations and transforms the predicate into its conjunctive normal form to move clauses in the expression down to the sources.

Example

Code Block
languagejavascript
themeEclipselanguagejavascript
linenumberstrue
#OPTIMIZE_PREDICATES true

...

For debugging purpose the values of variables that are defined using Commands or arbitrary expressions can be printed to the std output using Commands.

Code Block
languagejavascript
themeEclipse
languagejavascript
linenumberstrue
#DEFINE path F:/odysseus/example/
#PRINT path
#PRINT "Running on "+toString(OS.NAME) 

...

This command sets the current parser for following commands, e.g. by Commands or Commands. 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
languagejavascript
themeEclipselanguagejavascript
linenumberstrue
#PARSER PQL

...

Set the name of the following query.

Code Block
languagejavascript
themeEclipse
languagejavascript
linenumberstrue
#QNAME Query1

...

Set the priority of the next following query

Code Block
language
languagejavascript
themeEclipse
javascriptlinenumberstrue
#QPRIORITY 10

...

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 Commands .

Parameters

The query command is dependent on the current parser (which is set by Commands) and the current transformation configuration (which is set by Commands). Therefore, it is necessary to run these two commands before. Furthermore, you can switch to other parsers / transformation within one script by using Commands or Commands again. Thus, if you want to run a query in CQL that last Commands 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
language
languagejavascript
themeEclipse
javascriptlinenumberstrue
#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

Example

Code Block
languagejavascript
themeEclipse
languagejavascript
linenumberstrue
#RELOADFROMLOG

...

Sets the used scheduler and its scheduling strategy.

Parameters

Example

Uses the "Single Thread Scheduler" with a "Round Robin" scheduling strategy

Code Block
languagejavascript
themeEclipselanguagejavascript
linenumberstrue
#SCHEDULER "Single Thread Scheduler RR" "Round Robin"

Uses the "Single Thread Scheduler" with a "Aurora Min Cost" scheduling strategy

Code Block
languagejavascript
themeEclipse
languagejavascript
linenumberstrue
#SCHEDULER "Single Thread Scheduler RR" "Aurora Min Cost"

Uses the "Single Thread Scheduler" with a "Aurora Min Latency" scheduling strategy

Code Block
language
languagejavascript
themeEclipse
javascriptlinenumberstrue
#SCHEDULER "Single Thread Scheduler RR" "Aurora Min Latency"

Uses the "Single Thread Scheduler" with a "Chain" scheduling strategy

Code Block
languagejavascript
themeEclipselanguagejavascript
linenumberstrue
#SCHEDULER "Single Thread Scheduler RR" "Chain"

Uses the "Single Thread Scheduler" with a "Biggest Queue" scheduling strategy

Code Block
languagejavascript
themeEclipse
languagejavascript
linenumberstrue
#SCHEDULER "Single Thread Scheduler RR" "Biggest Queue"

 Uses the "Simple Dynamic Priority  Scheduler" with a "Round Robin" scheduling strategy

Code Block
languagejavascript
themeEclipselanguagejavascript
linenumberstrue
#SCHEDULER "Simple Dynamic Priority  Scheduler" "Round Robin"

...

This command can be used to wait a certain time before executing the next command

Parameters

Example

Waiting 2 seconds (2000 milliseconds) until the next command is invoked.

Code Block
languagejavascript
themeEclipselanguagejavascript
linenumberstrue
#SLEEP 2000

...

This command starts all installed queries that are not running at the moment.

Parameters

Example

Code Block
languagejavascript
themeEclipse
languagejavascript
linenumberstrue
#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 Commands

Parameters

Example

Code Block
languagejavascript
themeEclipselanguagejavascript
linenumberstrue
#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 Commands

Parameters

Example

Code Block
languagejavascript
themeEclipse
languagejavascript
linenumberstrue
#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

Example

Code Block
language
languagejavascript
themeEclipse
javascriptlinenumberstrue
#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

Example

Code Block
languagejavascript
themeEclipselanguagejavascript
linenumberstrue
#UNDEF variable