This is an old revision of the document!


Omnidex SQL: CREATE ENVIRONMENT

Description

The CREATE ENVIRONMENT statement creates an Omnidex Environment File stored in an XML file. This file contains Omnidex's view of the data to be used for indexing and retrieval. The Omnidex Environment File is then specified in the CONNECT statement to establish a connection to an Omnidex Environment from an ODBC or JDBC application.

An Omnidex Environment File may contain a complete or partial mapping to one or more relational data bases or a mapping to one or more raw data files. When using raw data files, several raw data files can be described just like a database, with datatypes, table relationships and indexing. The CREATE ENVIRONMENT statement is used in conjunction with the CREATE DATABASE, the CREATE TABLE and the CREATE INDEX statements to specify the entire meta-data for an Omnidex Environment.

The CREATE ENVIRONMENT statement has optional clauses to configure global settings. The CREATE ENVIRONMENT statement also is used to specify Omnidex Grid nodes for splitting data files into smaller partitions to facilitate query processing performance. These nodes are then referenced by name in the CREATE DATABASE and CREATE TABLE statements.

Syntax

CREATE ENVIRONMENT 
    [ DATA_CACHE number_of_megabytes ] 
    [ MAX_THREADS thread_count ]
    [ NODE node_name 
        [ <PARTITIONED | UNPARTITIONED> ]
        [ CONNECTIONSTRING "filespec" ] ]
     [ SQL_SYNTAX < OMNIDEX | ORACLE | SQLSERVER > ]
     [ CENTURY_THRESHOLD year ]
    IN “filename”                             /* must be after all previous clauses */
    [WITH options]                            /* if used, must be the very last clause  */

Discussion

The CREATE ENVIRONMENT statement can be used in conjunction with the DROP ENVIRONMENT statement but typically the WITH DELETE option is used instead of DROP ENVIRONMENT.

create environment in "odx.xml" with delete;

DATA_CACHE number_of_megabytes

The DATA_CACHE clause declares the number of megabytes for Omnidex's internal hash tables used for high-speed table joins. The default is 32 megabytes and can be changed by specifying a numeric value representing the number of megabytes of memory. A value of NONE can also be used to cause Omnidex to not use any internal cache.

create environment 
  data_cache 1024               /* sets the data_cache to 1 gigabyte */
  in "sales.xml";

MAX_THREADS thread_count

The MAX_THREADS setting optionally specifies the number of concurrent nodes that will be being processed concurrently during an Omnidex query. Typically this value is set to one to two less than the number of processors. For example, on an eight processor system, a setting of MAX_THREADS 6 or MAX_THREADS 7 would be appropriate. The default is the number of nodes specified in CREATE ENVIRONMENT NODE clauses.

create environment 
  max_threads 7
  in "sales.xml";

NODE node_name

The NODE clause declares a node in an Omnidex Grid. Nodes can then be referenced in subsequent CREATE DATABASE and CREATE TABLE statements.

The node_name uniquely identifies the node within this environment. It may be up to 32 characters long, and can contain letters, digits and the following special characters: ! @ # $ % ^ _. It must begin with a letter and is case-insensitive. The node_name must be unique within the environment.

<PARTITIONED | UNPARTITIONED>

Nodes are declared as either partitioned or unpartitioned. Omnidex Grids are initially created by partitioning a database into nodes. Each partitioned node contains a portion of the database, and the entire database then consists of the collection of partitioned nodes. An Omnidex Grid may also have unpartitioned nodes. An unpartitioned node is a complete copy of the database. Some queries will perform better when they are processed against a single node containing the entire database, rather than across many nodes containing individual partitions.

create environment          
  node                        "GRID01" partitioned
  node                        "GRID02" partitioned
  node                        "GRID03" partitioned
  node                        "GRID04" partitioned
  node                        "GRID05" unpartitioned
  in                          "list.xml";
HOST < host_name | ip_address | LOCALHOST > PORT port_no ENVIRONMENT "filename"

Nodes can reside on the local server or can reside on remote servers. Remote nodes require the declaration of the host name or IP address, an optional port number and the filename of the remote Omnidex Environment File.

create environment
  node "grid01" partitioned   
     host "localhost" port 7555 environment "c:\omnidex\list.xml"
  node "grid02" partitioned   
     host "SERVER1"   port 7555 environment "c:\omnidex\list.xml"
  node "grid03" partitioned   
     host "SERVER2"   port 7555 environment "c:\omnidex\list.xml"
  node "grid04" partitioned   
     host "SERVER2"   port 7555 environment "d:\omnidex\list.xml"
  node "grid05" unpartitioned
  in "list.xml"
  with delete;

SQL_SYNTAX <OMNIDEX | ORACLE | SQLSERVER >

Omnidex supports a limited number of specific vendor's SQL extensions such as some Orace functions and SQL Server's bracket syntax to make development easier. Note that this support is limited to a subset of each databases's extensions and does not encompass the complete set of extensions.

The SQL_SYNTAX clause determines whether Omnidex will allow these extensions when processing a SQL statement. This setting can also be set programatically using the Omnidex SET statement. The default for this setting is OMNIDEX, meaning that database extensions are not enabled. Once database extensions are enabled, they can be disabled by reverting back to OMNIDEX.

create environment 
  sql_syntax ORACLE
  in "sales.xml";

CENTURY_THRESHOLD year

The CENTURY_THRESHOLD setting determines whether a year that is expressed without the century (such as 12/31/80) is recognized as being in the current century (12/31/2080) or in the previous century (12/31/1980). Years that are later than the century threshold are considered part of the last century while years that are earlier than the century threshold are considered part of the current century. If no CENTURY_THRESHOLD is specified, then the internal default of 50 is used.

create environment 
  century_threshold 60
  in "sales.xml";

IN "env_filespec"

The IN clause is required and specifies the location of the physical XML Environment File. The IN clause must be specified after all other clauses except the WITH clause.

Env_filespec can be either an absolute or relative path. When using a relative file path , it will be relative to the current working directory for the program that is being run. Typically in a production environment, absolute paths are used. When using Omnidex's Network Services and the OdxNet process, absolute paths should always be used.

The env_filespec must be enclosed within double quotes.

  CREATE ENVIRONMENT 
    IN "odx.xml";              /* relative filespec for either Linux or Windows */

  CREATE ENVIRONMENT 
    IN "c:\dev\odx.xml";       /* Windows absolute filespec */

  create environment 
    in "/usr/opt/dev/odx.xml"; /* UNIX/Linus absolute filespec */

WITH options

DELETE

The DELETE option removes an existing Omnidex Environment File so that a new Omnidex Environment File can be created. The DELETE option will only delete files that are valid Omnidex Environment Files.

CREATE ENVIRONMENT IN "odx.xml" WITH DELETE

Examples

Minimal Working Statement

CREATE ENVIRONMENT IN "C:\data\daily_trans.xml";

With DROP ENVIRONMENT to facilitate scripting

DROP ENVIRONMENT IF EXISTS IN "C:\data\daily_trans.xml";
CREATE ENVIRONMENT IN "C:\data\daily_trans.xml";

With All Clauses

create environment
  data_cache                  32
  max_threads                 2
  sql_syntax                  oracle
  century_threshold           80
  node "grid01" partitioned   
     host "localhost" port 7555 environment "c:\omnidex\list.xml"
  node "grid02" partitioned   
     host "SERVER1"   port 7555 environment "c:\omnidex\list.xml"
  node "grid03" partitioned   
     host "SERVER2"   port 7555 environment "c:\omnidex\list.xml"
  node "grid04" partitioned   
     host "SERVER3"   port 7555 environment "c:\omnidex\list.xml"
  node "grid05" unpartitioned
  in "list.xml"
  with delete;

Additional Resources

 
Back to top
dev/sql/statements/create_environment/home.1294862773.txt.gz · Last modified: 2016/06/28 22:38 (external edit)