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"

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 VARCHAR column

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)

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"

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. Required if used at root level. Else the name of the document property is used.

Type: string

Using this property you can provide documentation.

Same definition as description

Type: enum (of string)

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: "ABORT"

Behaviour to apply in case a value is not a number
- 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

Type: string

Using this property you can provide documentation.

Same definition as description

Type: enum (of string)

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