The Root Schema - Defines the mapping for a document.

Type: object

The structure of this mapping definition follows the structure of the document data. This object represents the document root. Its properties are modeled in the fields property of this object. You only need to model properties of the document that you want to map.

You can define multiple mapping to map different types of documents (different tables or collections). Each of these objects must be stored in a single .json file and get uploaded to an directory in BucketFS.

No Additional Properties

Type: enum (of string)

Reference to the EDML schema. Setting this is required so that IDEs can assist you while writing your definition.

Must be one of:

  • "https://schemas.exasol.com/edml-1.0.0.json"
  • "../../main/resources/schemas/edml-1.0.0.json"
  • "https://schemas.exasol.com/edml-1.1.0.json"
  • "../../main/resources/schemas/edml-1.1.0.json"
  • "https://schemas.exasol.com/edml-1.2.0.json"
  • "../../main/resources/schemas/edml-1.2.0.json"
  • "https://schemas.exasol.com/edml-1.3.0.json"
  • "../../main/resources/schemas/edml-1.3.0.json"

Type: string

The identifier of the document collection.

Type: string

The name of the resulting table in Exasol.

Type: string

Using this property you can provide documentation.

Type: object

Defines the mapping for the document's properties. Typically you want to define fields here to define mappings for this document's properties. But you can also use toJsonMapping mapping here. In that case the whole document is mapped to a JSON string.

No Additional Properties

Type: object

This definition defines the expected nested properties of the current property. For each of the nested properties you can again define a mapping. You only need to define the properties you want to map.

Properties:

PROPERTY_NAME: mappingDefinition

It must be specified a least one column.

Each additional property must conform to the following schema

Type: object

A mapping definition can either:
- map the property to a column or table
- model nested properties of the current property (using fields)

Same definition as mapping

Type: object

Maps the selected document property to an Exasol VARCHAR, column.

No Additional Properties

Type: integer Default: 254

Value must be greater or equal to 1 and lesser or equal to 2000000

Type: enum (of string) Default: "TRUNCATE"

Behaviour to apply in case a value exceeds the size of the VARCHAR column.
- TRUNCATE: truncate the string
- NULL: use null instead
- ABORT: abort whole query

Must be one of:

  • "TRUNCATE"
  • "ABORT"
  • "NULL"

Type: string

Name of the Exasol column.

Default: name of the document property

Type: enum (of string) Default: "CONVERT_OR_ABORT"

Behaviour to apply in case a value is not the expected type:
- NULL: use NULL instead
- ABORT: abort whole query
- CONVERT_OR_NULL: try to convert the value. If not possible use NULL.
- CONVERT_OR_ABORT: try to convert the value. If not possible abort the whole query.

Must be one of:

  • "NULL"
  • "ABORT"
  • "CONVERT_OR_NULL"
  • "CONVERT_OR_ABORT"

Type: string

Using this property you can provide documentation.

Same definition as description

Type: boolean Default: false

If this property is set to true, queries will abort if the given mapping cannot find a single document. Else, the query will continue and set this cell to a default value. By default this is property is set to false.

Type: enum (of string) Default: "none"

Setting this property marks a column as key.

Key columns are used as foreign keys from ToTableMappings for nested lists.

A key can either be local or global. A global key must be unique over all rows of the table. A local key must only be unique in the scope of the nested list.

Must be one of:

  • "local"
  • "global"
  • "none"

Type: object

Maps the selected document property and all its descendants to a JSON string. You can alos use this mapping directly for a whole document.

No Additional Properties

Type: enum (of string) Default: "ABORT"

Behaviour to apply in case a value exceeds the size of the Exasol column.
- NULL: use NULL instead
- ABORT: abort whole query

Must be one of:

  • "NULL"
  • "ABORT"

Type: string

Name of the Exasol column.

Default: name of the document property

Same definition as destinationName

Type: string

Using this property you can provide documentation.

Same definition as description

Type: boolean Default: false

If this property is set to true, queries will abort if the given mapping cannot find a single document. Else, the query will continue and set this cell to a default value. By default this is property is set to false.

Same definition as required

Type: enum (of string) Default: "none"

Setting this property marks a column as key.

Key columns are used as foreign keys from ToTableMappings for nested lists.

A key can either be local or global. A global key must be unique over all rows of the table. A local key must only be unique in the scope of the nested list.

Same definition as key

Type: object

Maps the selected document property to an Exasol DECIMAL column.

No Additional Properties

Type: integer Default: 18

Precision of the Exasol DECIMAL type. See https://docs.exasol.com/sqlreferences/datatypes/datatypedetails.htm

default = 18

Type: integer Default: 0

Scale of the Exasol DECIMAL type. See https://docs.exasol.com/sqlreferences/datatypes/datatypedetails.htm

default = 0

Type: enum (of string) Default: "ABORT"

Behaviour to apply in case a value exceeds the size of the DECIMAL column.
- NULL: use NULL instead
- ABORT: abort whole query

Must be one of:

  • "NULL"
  • "ABORT"

Type: enum (of string) Default: "CONVERT_OR_ABORT"

Behaviour to apply in case a value is not the expected type:
- NULL: use NULL instead
- ABORT: abort whole query
- CONVERT_OR_NULL: try to convert the value. If not possible use NULL.
- CONVERT_OR_ABORT: try to convert the value. If not possible abort the whole query.

Same definition as nonStringBehaviour

Type: string

Name of the Exasol column.

Default: name of the document property

Same definition as destinationName

Type: string

Using this property you can provide documentation.

Same definition as description

Type: boolean Default: false

If this property is set to true, queries will abort if the given mapping cannot find a single document. Else, the query will continue and set this cell to a default value. By default this is property is set to false.

Same definition as required

Type: enum (of string) Default: "none"

Setting this property marks a column as key.

Key columns are used as foreign keys from ToTableMappings for nested lists.

A key can either be local or global. A global key must be unique over all rows of the table. A local key must only be unique in the scope of the nested list.

Same definition as key

Type: object

Maps the selected document property to an Exasol DOUBLE PRECISION column.

No Additional Properties

Type: enum (of string) Default: "ABORT"

Behaviour to apply in case a value exceeds the size of the DOUBLE PRECISION column.
- NULL: use NULL instead
- ABORT: abort whole query

Must be one of:

  • "NULL"
  • "ABORT"

Type: enum (of string) Default: "CONVERT_OR_ABORT"

Behaviour to apply in case a value is not the expected type:
- NULL: use NULL instead
- ABORT: abort whole query
- CONVERT_OR_NULL: try to convert the value. If not possible use NULL.
- CONVERT_OR_ABORT: try to convert the value. If not possible abort the whole query.

Same definition as nonStringBehaviour

Type: string

Name of the Exasol column.

Default: name of the document property

Same definition as destinationName

Type: string

Using this property you can provide documentation.

Same definition as description

Type: boolean Default: false

If this property is set to true, queries will abort if the given mapping cannot find a single document. Else, the query will continue and set this cell to a default value. By default this is property is set to false.

Same definition as required

Type: enum (of string) Default: "none"

Setting this property marks a column as key.

Key columns are used as foreign keys from ToTableMappings for nested lists.

A key can either be local or global. A global key must be unique over all rows of the table. A local key must only be unique in the scope of the nested list.

Same definition as key

Type: object

Maps the selected document property to an Exasol BOOL column.

No Additional Properties

Type: enum (of string) Default: "CONVERT_OR_ABORT"

Behaviour to apply in case a value is not the expected type:
- NULL: use NULL instead
- ABORT: abort whole query
- CONVERT_OR_NULL: try to convert the value. If not possible use NULL.
- CONVERT_OR_ABORT: try to convert the value. If not possible abort the whole query.

Same definition as nonStringBehaviour

Type: string

Name of the Exasol column.

Default: name of the document property

Same definition as destinationName

Type: string

Using this property you can provide documentation.

Same definition as description

Type: boolean Default: false

If this property is set to true, queries will abort if the given mapping cannot find a single document. Else, the query will continue and set this cell to a default value. By default this is property is set to false.

Same definition as required

Type: enum (of string) Default: "none"

Setting this property marks a column as key.

Key columns are used as foreign keys from ToTableMappings for nested lists.

A key can either be local or global. A global key must be unique over all rows of the table. A local key must only be unique in the scope of the nested list.

Same definition as key

Type: object

Maps the selected document property to an Exasol DATE column.

No Additional Properties

Type: enum (of string) Default: "CONVERT_OR_ABORT"

Behaviour to apply in case a value is not the expected type:
- NULL: use NULL instead
- ABORT: abort whole query
- CONVERT_OR_NULL: try to convert the value. If not possible use NULL.
- CONVERT_OR_ABORT: try to convert the value. If not possible abort the whole query.

Same definition as nonStringBehaviour

Type: string

Name of the Exasol column.

Default: name of the document property

Same definition as destinationName

Type: string

Using this property you can provide documentation.

Same definition as description

Type: boolean Default: false

If this property is set to true, queries will abort if the given mapping cannot find a single document. Else, the query will continue and set this cell to a default value. By default this is property is set to false.

Same definition as required

Type: enum (of string) Default: "none"

Setting this property marks a column as key.

Key columns are used as foreign keys from ToTableMappings for nested lists.

A key can either be local or global. A global key must be unique over all rows of the table. A local key must only be unique in the scope of the nested list.

Same definition as key

Type: object

Maps the selected document property to an Exasol TIMESTAMP or TIMESTAMP WITH LOCAL TIMEZONE column.

No Additional Properties

Type: enum (of string) Default: "CONVERT_OR_ABORT"

Behaviour to apply in case a value is not the expected type:
- NULL: use NULL instead
- ABORT: abort whole query
- CONVERT_OR_NULL: try to convert the value. If not possible use NULL.
- CONVERT_OR_ABORT: try to convert the value. If not possible abort the whole query.

Same definition as nonStringBehaviour

Type: boolean Default: true

If set to true the adapter will use a TIMESTAMP WITH LOCAL TIMEZONE Exasol column instead of a TIMEZONE column.

Type: string

Name of the Exasol column.

Default: name of the document property

Same definition as destinationName

Type: string

Using this property you can provide documentation.

Same definition as description

Type: boolean Default: false

If this property is set to true, queries will abort if the given mapping cannot find a single document. Else, the query will continue and set this cell to a default value. By default this is property is set to false.

Same definition as required

Type: enum (of string) Default: "none"

Setting this property marks a column as key.

Key columns are used as foreign keys from ToTableMappings for nested lists.

A key can either be local or global. A global key must be unique over all rows of the table. A local key must only be unique in the scope of the nested list.

Same definition as key

Type: object

This mapping is used for normalizing documents to table structures. It creates a new table in the resulting virtual schema named: <NAMEOFPARENT><GIVENNAME>.

You can define the columns of this table using the mapping property. If the parent table defines a key using one or more toVarcharMappings for a key or secondary index in the document database, this will be used as foreign key.

No Additional Properties

Type: string

The name of the resulting table in Exasol.

Same definition as destinationTable

Type: object

Defines the mapping for the columns of the new table. If the document list contains non-objects (like strings) here, you can directly use toVarcharMapping here. Otherwise, if the list contains objects, you can define mappings for the nested properties using fields.

Same definition as mapping

Type: string

Using this property you can provide documentation.

Same definition as description

Type: boolean Default: false

If set to true, this adapter adds the source reference as a column named SOURCE_REFERENCE to the Exasol table.

This feature is mainly useful if multiple sources are used (not supported by all dialects). In that case you can filter on the source name.